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

sendEmail()

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

構文

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

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

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

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

使用方法

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

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

  • このコールで送信される単一メールメッセージは、送信側組織の 1 日の単一メール送信の制限にカウントされます。この制限に達すると、SingleEmailMessage を使用する sendEmail() コールは拒否され、ユーザには SINGLE_EMAIL_LIMIT_EXCEEDED エラーコードが返されます。ただし、Salesforce アプリケーションを通して送られた単一メールは許可されます。
  • このコールで送信される一括メールメッセージは、送信側組織の 1 日の一括メール送信の制限にカウントされます。この制限に達すると、MassEmailMessage を使用する sendEmail() コールは拒否され、ユーザには MASS_MAIL_LIMIT_EXCEEDED エラーコードが返されます。
  • このコールを、[メール送信除外] のオプションが選択されている 1 人以上の受信者に宛てたメールの送信で使用した場合、UNKNOWN_EXCEPTION が返されます。そのような場合は、エラーを報告しないでください。代わりに、受信者を削除するか、管理者にその受信者のオプション選択を外してもらってください。

メモ

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

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

メモ

サンプルコード —Java

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

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

サンプルコード —C#

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

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

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 行に表示される名前。SingleEmailMessageOrgWideEmailAddressId に関連するオブジェクトが DisplayName 項目を定義している場合、設定できません。

SingleEmailMessage

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

名前 説明
bccAddresses string[] 省略可能。ブラインドカーボンコピー (BCC) アドレスの配列。最大値は 25 です。テンプレートを使用していない場合のみこの引数を使用できます。

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

す��てのメールには、次に示す受信者の値を少なくとも 1 つ割り当てる必要があります。
  • toAddresses
  • ccAddresses
  • bccAddresses
  • targetObjectId
  • targetObjectIds
ccAddresses string[] 省略可能。カーボンコピー (CC) アドレスの配列。最大値は 25 です。テンプレートを使用していない場合のみこの引数を使用できます。
charset string 省略可能。メール用の文字セット。この値が null の場合、ユーザのデフォルト値が使われます。テンプレートには文字セットが指定されるため、templateId を指定した場合は使用できません。
documentAttachments ID[] 省略可能。メールに添付する各 Document の ID をリストした配列。添付ファイルの合計が 10 MB を超えない限り、いくつでもドキュメントを追加できます。
fileAttachments EmailFileAttachment[] 省略可能。メールに添付するバイナリとテキストファイルのファイル名をリストした配列。添付ファイルの合計が 10 MB を超えない限り、いくつでもファイルを追加できます。
htmlBody string 省略可能。メールの HTML 版 (送信者による指定)。組織に関連付けられた仕様に従って、値は符号化されます。
inReplyTo string 省略可能。送信メールの In-Reply-To 項目。このメールが返信しているメール (親メール) を識別します。親メールのメッセージ ID が含まれています。RFC2822 - Internet Message Format を参照してください。
orgWideEmailAddressId ID 省略可能。送信メールに関連付けられている OrgWideEmailAddress のオブジェクト ID。OrgWideEmailAddressDisplayName は、senderDisplayName 項目がすでに設定されている場合は設定できません。
plainTextBody string 省略可能。メールのテキスト版 (送信者による指定)。
references string 省略可能。送信メールの References 項目。メールスレッドを示します。親メールのメッセージ ID 項目および References 項目、および場合によっては In-Reply-To 項目が含まれています。RFC2822 - Internet Message Format を参照してください。
targetObjectId ID 省略可能。取引先責任者、リード、またはメールの送信先ユーザのオブジェクト ID。入力するオブジェクト ID によりコンテキストが設定され、テンプレート内の差し込み項目が適切なデータを含んでいることが保証されます。

[メール送信除外] のオプションが選択されたレコードのオブジェクト ID は入力しないでください。

すべてのメールには、次に示す受信者の値を少なくとも 1 つ割り当てる必要があります。
  • toAddresses
  • ccAddresses
  • bccAddresses
  • targetObjectId
  • targetObjectIds
toAddresses string[] 省略可能。あなたがメールを送信するメールアドレスの配列。最大値は 100 です。テンプレートを使用していない場合のみこの引数を使用できます。
すべてのメールには、次に示す受信者の値を少なくとも 1 つ割り当てる必要があります。
  • toAddresses
  • ccAddresses
  • bccAddresses
  • targetObjectId
  • targetObjectIds
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 を、ユーザ、取引先責任者、またはリードに設定することが可能です。これにより、テンプレート内の差し込み項目が適切なデータを含んでいることが保証されます。

[メール送信除外] のオプションが選択されたレコードのオブジェクト ID は入力しないでください。

すべてのメールには、次に示す受信者の値を少なくとも 1 つ割り当てる必要があります。
  • toAddresses
  • ccAddresses
  • bccAddresses
  • targetObjectId
  • targetObjectIds
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) を示します。多くの場合、インラインコンテンツは、メッセージ表示時にユーザに表示されます。添付ファイルコンテンツは、ユーザのアクションに基づいて表示されます。