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で電子メールを送信:

コメントを投稿

コメントは記事の投稿者が承認するまで表示されません。