Apex APIで電子メールを送信
by Shinichi Tomita on 5月 28, 2007 at 06:37 午後
Spring'07からApex APIのバージョンは9.0になりましたが、9.0で追加されたAPIの新機能に「電子メール送信(sendEmail)」というものがあります。これによって、アプリケーションは電子メール送信サーバ(SMTPサーバ)を介することなく、Salesforceから直接指定した宛先に対してメールを送信することが可能になります。
この新機能はAJAX Toolkitを使ってSコントロールから利用することもできます。以下にAJAX Toolkitからの利用例を示します。
var message = new sforce.SingleEmailMessage();
message.toAddresses = [ 'abc@example.com', 'def@example.org']; // 送信先メールアドレス(複数可)
message.subject = 'Hello, World';
message.plainTextBody = 'Hello World from '+sforce.connection.getUserInfo().userFullName;
var result = sforce.connection.sendEmail([ message ]);
Salesforceのデータベースにメールの宛先に指定したいレコード情報(e.g. リード、取引先責任者など)が格納されている場合は、IDによって宛先を指定することも可能です。
var message = new sforce.SingleEmailMessage();
message.targetObjectId = '00Q5000000HHUaw'; // リードのID
message.subject = 'Hello, World';
message.plainTextBody = 'Hello World from '+sforce.connection.getUserInfo().userFullName;
var result = sforce.connection.sendEmail([ message ]);
SingleEmailMessageのほかにMassEmailMessageを利用することで、Salesforceに保存されている電子メールテンプレートを利用して、一括メール送信を行うことも可能です。
var message = new sforce.MassEmailMessage();
message.targetObjectIds = [ '00Q5000000HHUaw', '00Q5000000HHUYQ' ]; // メールを一括送信するリードをIDの配列で指定
message.templateId = '00X50000000o1Gk'; // 使用する電子メールテンプレートのID
var result = sforce.connection.sendEmail([ message ]);
なお、メール送信者の名前およびメールアドレスには、APIにログインしているユーザの情報が用いられることに注意してください。
こちらのAPIについての詳細はApex Web Services API Developers Guideに記載されています。
また、ADN英語版のApex WikiにはSコントロールで電子メール送信を実装したサンプルがあがっていますので、ぜひ参考にしてみてください。
http://wiki.developerforce.com/index.php/Send_Emails_Through_SControls
トラックバック
このページのトラックバックURL: http://www.typepad.jp/t/trackback/7240/6988710
このページへのトラックバック一覧 Apex APIで電子メールを送信:

