この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

sendEmail()

メールメッセージをただちに送信します。

構文

単一のメールメッセージでは、次のようになります。

1SendEmailResult = connection.sendEmail(SingleEmailMessage emails[]);

一括メールメッセージに関して、次のようになります。

1SendEmailResult = connection.sendEmail(MassEmailMessage emails[]);

使用方法

このコールは、Force.com AppExchange アプリケーション、カスタムアプリケーションなどの、Salesforce 以外のアプリケーションで、メールの個別送信や一括送信を行う場合に使用します。メールでは標準的なメール属性 (件名行、BCC など) を含めることができ、Salesforce のメールテンプレートを使用することが可能です。平文テキストのほか HTML 形式もサポートされています。HTML メールの状況は、Salesforce を使って追跡できます。送信日、メールが最初に開かれた日、最後に開かれた日、開かれた回数などを確認できます (詳細は、Salesforce オンラインヘルプの「HTML メールの追跡」を参照してください)。

ログインユーザのメールアドレスは、メールヘッダーの [送信元アドレス] 項目に挿入されます。不在の返信も含め、返ってきたメールはすべてログインユーザに送信されます。不達管理が有効で、SingleEmailMessage.targetObjectId または MassEmailMessage.targetObjectIds が設定されている場合、不達は Salesforce によって自動的に処理され、該当するレコードが更新されます。それ以外の場合は、ログインユーザに送信されます。不達管理は取引先責任者とリードにのみ機能します。

  • このコールで送信される単一メールメッセージは、送信側組織の 1 日の単一メール送信の制限にカウントされます。この制限に達すると、SingleEmailMessage を使用する sendEmail() コールは拒否され、ユーザには SINGLE_EMAIL_LIMIT_EXCEEDED エラーコードが返されます。ただし、Salesforce アプリケーションを通して送られた単一メールは許可されます。
  • このコールで送信される一括メールメッセージは、送信側組織の 1 日の一括メール送信の制限にカウントされます。この制限に達すると、MassEmailMessage を使用する sendEmail() コールは拒否され、ユーザには MASS_MAIL_LIMIT_EXCEEDED エラーコードが返されます。
  • API バージョン 35.0 以降、SingleEmailMessageoptOutPolicy 項目を使用して、取引先責任者またはリードの [メール送信除外] 設定を適用または無視できます。optOutPolicy 項目は、メールの To、CC、および BCC リストの受信者に適用されます。以前のバージョンでは、デフォルトで SingleEmailMessage で受信者の [メール送信除外] 設定が無視され、メールがすべての受信者に送信されます。MassEmailMessage を使用すると、受信者の [メール送信除外] 設定が常に適用され、メールは除外した受信者には送信されず、その他のすべての受信者に送信されます。

メモ

SingleEmailMessage には、OrgWideEmailAddressId という省略可能な項目があります。これは、OrgWideEmailAddress オブジェクトのオブジェクト ID です。OrgWideEmailAddressId が設定されている場合、OrgWideEmailAddress.DisplayName 項目が、ログインユーザの [表示名] の代わりにメールヘッダーに使用されます。ヘッダーの送信メールアドレスも、OrgWideEmailAddress.Address で定義された項目に設定されます。

OrgWideEmailAddress の DisplayName および senderDisplayName の両方が定義されると、DUPLICATE_SENDER_DISPLAY_NAME エラーが発生します。

メモ

サンプルコード —Java

このサンプルでは、メールメッセージを作成して、宛先、CC、BCC の各受信者、件名、本文テキストを含む項目を設定します。また、setTargetObjectId メソッドを使用して、ログインユーザの ID を受信者として設定します。これにより、指定されたユーザのメールアドレスにメールが送信されます。このサンプルでは、添付ファイルを作成し、添付ファイルを含むメールメッセージを送信します。最後に、状況メッセージまたはエラーメッセージがある場合はコンソールに書き込みます。

1public void doSendEmail() {
2   try {
3      EmailFileAttachment efa = new EmailFileAttachment();
4      byte[] fileBody = new byte[1000000];
5      efa.setBody(fileBody);
6      efa.setFileName("attachment");
7      SingleEmailMessage message = new SingleEmailMessage();
8      message.setBccAddresses(new String[] {
9         "someone@salesforce.com"
10      });
11      message.setCcAddresses(new String[] {
12         "person1@salesforce.com", "person2@salesforce.com", "003xx00000a1b2cAAC"
13      });
14      message.setBccSender(true);
15      message.setEmailPriority(EmailPriority.High);
16      message.setReplyTo("person1@salesforce.com");
17      message.setSaveAsActivity(false);
18      message.setSubject("This is how you use the " + "sendEmail method.");
19      // We can also just use an id for an implicit to address
20      GetUserInfoResult guir = connection.getUserInfo();
21      message.setTargetObjectId(guir.getUserId());
22      message.setUseSignature(true);
23      message.setPlainTextBody("This is the humongous body "
24            + "of the message.");
25      EmailFileAttachment[] efas = { efa };
26      message.setFileAttachments(efas);
27      message.setToAddresses(new String[] { "person3@salesforce.com" });
28      SingleEmailMessage[] messages = { message };
29      SendEmailResult[] results = connection.sendEmail(messages);
30      if (results[0].isSuccess()) {
31         System.out.println("The email was sent successfully.");
32      } else {
33         System.out.println("The email failed to send: "
34               + results[0].getErrors()[0].getMessage());
35      }
36   } catch (ConnectionException ce) {
37      ce.printStackTrace();
38   }
39}

この例では、送信除外設定を適用してメールを送信する方法を示します。受信者は、その ID で指定されます。SendEmailOptOutPolicy.FILTER オプションにより、メール送信を除外していない受信者にのみメールが送信されます。

1SingleEmailMessage message = new SingleEmailMessage();
2// Set recipients to two contact IDs.
3// Replace IDs with valid record IDs in your org.
4message.setToAddresses(new String[] { "003D000000QDexS", "003D000000QDfW5" });
5message.setOptOutPolicy(SendEmailOptOutPolicy.FILTER);
6message.setSubject("Opt Out Test Message");
7message.setPlainTextBody("This is the message body.");
8SingleEmailMessage[] messages = { message };
9SendEmailResult[] results = connection.sendEmail(messages);
10if (results[0].isSuccess()) {
11    System.out.println("The email was sent successfully.");
12} else {
13    System.out.println("The email failed to send: "
14          + results[0].getErrors()[0].getMessage());
15}

サンプルコード —C#

このサンプルでは、メールメッセージを作成して、宛先、CC、BCC の各受信者、件名、本文テキストを含む項目を設定します。また、setTargetObjectId メソッドを使用して、ログインユーザの ID を受信者として設定します。これにより、指定されたユーザのメールアドレスにメールが送信されます。このサンプルでは、添付ファイルを作成し、添付ファイルを含むメールメッセージを送信します。最後に、状況メッセージまたはエラーメッセージがある場合はコンソールに書き込みます。

1public void doSendEmail()
2{
3   try
4   {
5      EmailFileAttachment efa = new EmailFileAttachment();
6      byte[] fileBody = new byte[1000000];
7      efa.body = fileBody;
8      efa.fileName = "attachment";
9      SingleEmailMessage message = new SingleEmailMessage();
10      message.setBccAddresses(new String[] {
11         "someone@salesforce.com"
12      });
13      message.setCcAddresses(new String[] {
14         "person1@salesforce.com", "person2@salesforce.com", "003xx00000a1b2cAAC"
15      });
16      message.bccSender = true;
17      message.emailPriority = EmailPriority.High;
18      message.replyTo = "person1@salesforce.com";
19      message.saveAsActivity = false;
20      message.subject = "This is how you use the " + "sendEmail method.";
21      // We can also just use an id for an implicit to address
22      GetUserInfoResult guir = binding.getUserInfo();
23      message.targetObjectId = guir.userId;
24      message.useSignature = true;
25      message.plainTextBody = "This is the humongous body "
26            + "of the message.";
27      EmailFileAttachment[] efas = { efa };
28      message.fileAttachments = efas;
29      message.toAddresses = new String[] { "person3@salesforce.com" };
30      SingleEmailMessage[] messages = { message };
31      SendEmailResult[] results = binding.sendEmail(messages);
32      if (results[0].success)
33      {
34         Console.WriteLine("The email was sent successfully.");
35      }
36      else
37      {
38         Console.WriteLine("The email failed to send: "
39               + results[0].errors[0].message);
40      }
41   }
42   catch (SoapException e)
43   {
44      Console.WriteLine("An unexpected error has occurred: " +
45                        e.Message + "\n" + e.StackTrace);
46   }
47}

この例では、送信除外設定を適用してメールを送信する方法を示します。受信者は、その ID で指定されます。SendEmailOptOutPolicy.FILTER オプションにより、メール送信を除外していない受信者にのみメールが送信されます。

1SingleEmailMessage message = new SingleEmailMessage();
2// Set recipients to two contact IDs.
3// Replace IDs with valid record IDs in your org.
4message.toAddresses = new String[] { "003D000000QDexS", "003D000000QDfW5" };
5message.optOutPolicy = SendEmailOptOutPolicy.FILTER;
6message.subject = "Opt Out Test Message";
7message.plainTextBody = "This is the message body.";
8SingleEmailMessage[] messages = { message };
9SendEmailResult[] results = binding.sendEmail(messages);
10if (results[0].success) 
11{
12    Console.WriteLine("The email was sent successfully.");
13} else {
14    Console.WriteLine("The email failed to send: "
15          + results[0].errors[0].message);
16}

BaseEmail

次の表は、単一と一括メールの両方で使用される引数を含んでいます。

テンプレートが使用されていない場合、すべてのメールコンテンツは平文テキスト、HTML、またはその両方で書かれている必要があります。

メモ

名前 説明
bccSender boolean 送られるメールのコピーを、メール送信者が受け取るかどうかを示します。一括メール送信では、送信者は最初に送られるメールにのみコピーされます。

BCC コンプライアンスオプションが組織レベルで設定されている場合、ユーザは BCC アドレスを標準のメッセージに追加することができません。次のエラーコードが返されます: BCC_NOT_ALLOWED_IF_BCC_ COMPLIANCE_​ENABLED。 ​BCC コンプライアンスについては、Salesforce の担当者にお問い合わせください。

メモ

saveAsActivity boolean 省略可能。デフォルト値は true で、メールが活動として保存されます。この引数は、受信者リストが targetObjectId または targetObjectIds に基づいている場合のみ適用されます。HTML メールの追跡が組織で有効になっている場合は、メールが開かれた確率を追跡することが可能です。
useSignature boolean そのユーザが設定された署名を持っている場合、メールがメール署名を含むかどうか示します。デフォルトは、true で、false を指定しない限り、ユーザはメールに署名が含まれます。
emailPriority picklist 省略可能。メールの優先度。
  • Highest
  • High
  • Normal
  • Low
  • Lowest
デフォルト値は Normal です。
replyTo string 省略可能。受信者が返信した場合に、メッセージを受け取るメールアドレス。Visualforce メールテンプレートを使用して replyTo 値を指定している場合は、設定できません。
subject string 省略可能。メールの件名行。メールテンプレートを使用していて、件名行を上書きしようすると、エラーメッセージが返されます。
templateId ID このメールを作成するためにマージされるテンプレートの ID。
senderDisplayName string 省略可能。メールの From 行に表示される名前。SingleEmailMessage の OrgWideEmailAddressId に関連���るオブジェクトが DisplayName 項目を定義している場合、設定できません。

SingleEmailMessage

次の行には、基本のメール引数に加えて、単一メールが使用する引数が含まれます。

名前 説明
bccAddresses string[] 省略可能。ブラインドカーボンコピー (BCC) アドレス、またはメールの送信先となる取引先責任者、リード、ユーザのオブジェクト ID の配列。bccAddresses の最大数は 25 です。テンプレートを使用していない場合のみこの引数を使用できます。

ID で追加された受信者の optOutPolicy 項目でのみメールの送信除外オプションを指定できます。

メールアドレスは検証されて、形式が正しく、これまで不達としてマークされていないことが確認されます。

BCC コンプライアンスオプションが組織レベルで設定されている場合、ユーザは BCC アドレスを標準のメッセージに追加することができません。次のエラーコードが返されます。BCC_NOT_ALLOWED_IF_BCC_COMPLIANCE_ENABLED

すべてのメールで、次のいずれかの項目の少なくとも 1 つに受信者の値を割り当てる必要があります。
  • toAddresses
  • ccAddresses
  • bccAddresses
  • targetObjectId
ccAddresses string[] 省略可能。カーボンコピー (CC) アドレス、またはメールの送信先となる取引先責任者、リード、ユーザのオブジェクト ID の配列。ccAddresses の最大数は 25 です。テンプレートを使用していない場合のみこの引数を使用できます。

ID で追加された受信者の optOutPolicy 項目でのみメールの送信除外オプションを指定できます。

メールアドレスは検証されて、形式が正しく、これまで不達としてマークされていないことが確認されます。

すべてのメールで、次のいずれかの項目の少なくとも 1 つに受信者の値を割り当てる必要があります。
  • toAddresses
  • ccAddresses
  • bccAddresses
  • targetObjectId
charset string 省略可能。メール用の文字セット。この値が null の場合、ユーザのデフォルト値が使われます。テンプレートには文字セットが指定されるため、templateId を指定した場合は使用できません。
documentAttachments ID[] 非推奨。代わりに entityAttachments を使用します。省略可能。メールに添付する各 Document の ID をリストした配列。
fileAttachments EmailFileAttachment[] 省略可能。メールに添付するバイナリとテキストファイルのファイル名をリストした配列。添付ファイルの合計が 10 MB を超えない限り、いくつでもファイルを追加できます。
entityAttachments ID[] 省略可能。メールに添付する Document または ContentVersion 項目の ID の配列。

この項目は API バージョン 35.0 以降で使用できます。

htmlBody string 省略可能。メールの HTML 版 (送信者による指定)。組織に関連付けられた仕様に従って、値は符号化されます。
inReplyTo string 省略可能。送信メールの In-Reply-To 項目。このメールが返信しているメール (親メール) を識別します。親メールのメッセージ ID が含まれています。RFC2822 - Internet Message Format を参照してください。
optOutPolicy SendEmailOptOutPolicy (string 型の列挙) 省略可能。受信者をメールアドレスではなく ID で追加し、[メール送信除外] オプションが設定されている場合、この項目によって sendEmail() コールの動作が��まります。メールアドレスで追加された受信者は、送信除外設定がオフになり、常にメールを受信します。SendEmailOptOutPolicy 列挙値の有効な値は次のとおりです。
  • SEND (デフォルト) — メールはすべての受信者に送信され、受信者の [メー���送信除外] オプションは無視されます。
  • FILTER[メール送信除外] オプションが設定された受信者にはメールは送信されず、それ以外の受信者にはメールが送信されます。
  • REJECT[メール送信除外] オプションが設定された受信者がいる場合、sendEmail() がエラーを発生させ、メールは送信されません。

この項目は、API バージョン 35.0 以降で使用できます。

orgWideEmailAddressId ID 省略可能。送信メールに関連付けられている OrgWideEmailAddress のオブジェクト ID。OrgWideEmailAddress、DisplayName は、senderDisplayName 項目がすでに設定されている場合は設定できません。
plainTextBody string 省略可能。メールのテキスト版 (送信者による指定)。
references string 省略可能。送信メールの References 項目。メールスレッドを示します。親メールのメッセージ ID 項目および References 項目、および場合によっては In-Reply-To 項目が含まれています。RFC2822 - Internet Message Format を参照してください。
targetObjectId ID 省略可能。取引先責任者、リード、またはメールの送信先ユーザのオブジェクト ID。入力するオブジェクト ID によりコンテキストが設定され、テンプレート内の差し込み項目が適切なデータを含んでいることが保証されます。
すべてのメールで、次のいずれかの項目の少なくとも 1 つに受信者の値を割り当てる必要があります。
  • toAddresses
  • ccAddresses
  • bccAddresses
  • targetObjectId
toAddresses string[] 省略可能。メールアドレス、またはメールの送信先となる取引先責任者、リード、ユーザのオブジェクト ID の配列。toAddresses の最大数は 100 です。テンプレートを使用していない場合のみこの引数を使用できます。

ID で追加された受信者の optOutPolicy 項目でのみメールの送信除外オプションを指定できます。

メールアドレスは検証されて、形式が正しく、これまで不達としてマークされていないことが確認されます。

すべてのメールで、次のいずれかの項目の少なくとも 1 つに受信者の値を割り当てる必要があります。
  • toAddresses
  • ccAddresses
  • bccAddresses
  • targetObjectId
treatBodiesAsTemplate boolean 省略可能。true に設定すると、メールの件名、プレーンテキスト、および HTML テキスト本文がテンプレートデータとして扱われます。差し込み項目は、renderEmailTemplate() コールを使用して解決されます。デフォルトは false です。

この項目は、API バージョン 35.0 以降で使用できます。

treatTargetObjectAsRecipient boolean 省略可能。true に設定すると、targetObjectId (取引先責任者、リード、またはユーザ) はメールの受信者になります。false に設定すると、targetObjectId は、テンプレート表示用の WhoId 項目として提供されますが、メールの受信者にはなりません。デフォルトは、true です。

この項目は API バージョン 35.0 以降で使用できます。以前のバージョンでは、targetObjectId は常にメールの受信者でした。

whatId ID 省略可能。targetObjectId 項目に取引先責任者を指定する場合、whatId も指定することができます。この項目により、テンプレート内の差し込み項目が適切なデータを含んでいることが確実に保証されるようになります。値は、次の型のいずれかです。
  • Account
  • Asset
  • Campaign
  • Case
  • Contract
  • Opportunity
  • Order
  • Product
  • Solution
  • Custom

MassEmailMessage

次の表には、基本のメール引数のほか、一括メール送信で使用される引数が含まれます。

名前 説明
description string 一括メールキューでオブジェクトを識別するために内部で使用する値。
targetObjectIds ID[] 取引先責任者、リード、またはメールの送信先ユーザのオブジェクト ID の配列。入力するオブジェクト ID によりコンテキストが設定され、テンプレート内の差し込み項目が適切なデータを含んでいることが保証されます。オブジェクトは同じタイプ (すべての取引先責任者、すべてのリード、またはすべてのユーザ) である必要があります。1 回のメール送信で最大 250 まで ID をリストすることができます。targetObjectIds 項目の値を指定した場合、必要に応じて、メールのコンテキストを規定する whatId を、ユーザ、取引先責任者、またはリードに設定することが可能です。これにより、テンプレート内の差し込み項目が適切なデータを含んでいることが保証されます。
whatIds ID[] 省略可能。targetObjectIds 項目に取引先責任者の配列を指定する場合、whatIds の配列も指定可能です。これにより、テンプレート内の差し込み項目が適切なデータを含んでいることが確実に保証されるようになります。値は、次の型のいずれかです。
  • Contract
  • Case
  • Opportunity
  • Product
whatIds を指定する場合は、targetObjectId ごとに 1 つ指定します。それ以外の場合、INVALID_ID_FIELD エラーが発生します。

EmailFileAttachment

次の表は、EmailFileAttachment が、要求の一部として渡す添付ファイルを指定するために SingleEmailMessage オブジェクトで使用する引数を示しています。なお、Document を渡す場合には documentAttachments を使用します。

プロパティ 説明
body base64 添付ファイル自体。
contentType string 省略可能。添付ファイルのコンテンツタイプ。
fileName string 添付するファイルの名前。
inline boolean 省略可能。Content-Dispositions がインラインか (true) 添付ファイルか (false) を示します。多くの場合、インラインコンテンツは、メッセージ表示時にユーザに表示されます。添付ファイルコンテンツは、ユーザのアクションに基づいて表示されます。