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 によって自動的に処理され、該当するレコードが更新されます。それ以外の場合は、ログインユーザに送信されます。
サンプルコード —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
| 名前 | 型 | 説明 |
|---|---|---|
| bccSender | boolean | 送られるメールのコピーを、メール送信者が受け取るかどうかを示します。一括メール送信では、送信者は最初に送られるメールにのみコピーされます。 |
| saveAsActivity | boolean | 省略可能。デフォルト値は true で、メールが活動として保存されます。この引数は、受信者リストが targetObjectId または targetObjectIds に基づいている場合のみ適用されます。HTML メールの追跡が組織で有効になっている場合は、メールが開かれた確率を追跡することが可能です。 |
| useSignature | boolean | そのユーザが設定された署名を持っている場合、メールがメール署名を含むかどうか示します。デフォルトは、true で、false を指定しない限り、ユーザはメールに署名が含まれます。 |
| emailPriority | picklist | 省略可能。メールの優先度。
|
| replyTo | string | 省略可能。受信者が返信した場合に、メッセージを受け取るメールアドレス。Visualforce メールテンプレートを使用して replyTo 値を指定している場合は、設定できません。 |
| subject | string | 省略可能。メールの件名行。メールテンプレートを使用していて、件名行を上書きしようすると、エラーメッセージが返されます。 |
| templateId | ID | このメールを作成するためにマージされるテンプレートの ID。 |
| senderDisplayName | string | 省略可能。メールの From 行に表示される名前。SingleEmailMessage の OrgWideEmailAddressId に関連するオブジェクトが DisplayName 項目を定義している場合、設定できません。 |
SingleEmailMessage
次の行には、基本のメール引数に加えて、単一メールが使用する引数が含まれます。
| 名前 | 型 | 説明 |
|---|---|---|
| bccAddresses | string[] | 省略可能。ブラインドカーボンコピー (BCC) アドレスの配列。最大値は 25 です。テンプレートを使用していない場合のみこの引数を使用できます。 BCC コンプライアンスオプションが組織レベルで設定されている場合、ユーザは BCC アドレスを標準のメッセージに追加することができません。次のエラーコードが返されます。BCC_NOT_ALLOWED_IF_BCC_COMPLIANCE_ENABLED す��てのメールには、次に示す受信者の値を少なくとも 1 つ割り当てる必要があります。
|
| 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。OrgWideEmailAddress、DisplayName は、senderDisplayName 項目がすでに設定されている場合は設定できません。 |
| plainTextBody | string | 省略可能。メールのテキスト版 (送信者による指定)。 |
| references | string | 省略可能。送信メールの References 項目。メールスレッドを示します。親メールのメッセージ ID 項目および References 項目、および場合によっては In-Reply-To 項目が含まれています。「RFC2822 - Internet Message Format」 を参照してください。 |
| targetObjectId | ID | 省略可能。取引先責任者、リード、またはメールの送信先ユーザのオブジェクト ID。入力するオブジェクト ID によりコンテキストが設定され、テンプレート内の差し込み項目が適切なデータを含んでいることが保証されます。 [メール送信除外] のオプションが選択されたレコードのオブジェクト ID は入力しないでください。 すべてのメールには、次に示す受信者の値を少なくとも 1 つ割り当てる必要があります。
|
| toAddresses | string[] | 省略可能。あなたがメールを送信するメールアドレスの配列。最大値は 100 です。テンプレートを使用していない場合のみこの引数を使用できます。 |
| whatId | ID | 省略可能。targetObjectId 項目に取引先責任者を指定する場合、whatId も指定することができます。これにより、テンプレート内の差し込み項目が適切なデータを含んでいることが確実に保証されるようになります。値は、次の型のいずれかです。
|
MassEmailMessage
次の表には、基本のメール引数のほか、一括メール送信で使用される引数が含まれます。
| 名前 | 型 | 説明 |
|---|---|---|
| description | string | 一括メールキューでオブジェクトを識別するために内部で使用する値。 |
| targetObjectIds | ID[] | 取引先責任者、リード、またはメールの送信先ユーザのオブジェクト ID の配列。入力するオブジェクト ID によりコンテキストが設定され、テンプレート内の差し込み項目が適切なデータを含んでいることが保証されます。オブジェクトは同じタイプ (すべての取引先責任者、すべてのリード、またはすべてのユーザ) である必要があります。1 回のメール送信で最大 250 まで ID をリストすることができます。targetObjectIds 項目の値を指定した場合、必要に応じて、メールのコンテキストを規定する whatId を、ユーザ、取引先責任者、またはリードに設定することが可能です。これにより、テンプレート内の差し込み項目が適切なデータを含んでいることが保証されます。 [メール送信除外] のオプションが選択されたレコードのオブジェクト ID は入力しないでください。 すべてのメールには、次に示す受信者の値を少なくとも 1 つ割り当てる必要があります。
|
| whatIds | ID[] | 省略可能。targetObjectIds 項目に取引先責任者の配列を指定する場合、whatIds の配列も指定可能です。これにより、テンプレート内の差し込み項目が適切なデータを含んでいることが確実に保証されるようになります。値は、次の型のいずれかです。
|
EmailFileAttachment
次の表は、EmailFileAttachment が、要求の一部として渡す添付ファイルを指定するために SingleEmailMessage オブジェクトで使用する引数を示しています。なお、Document を渡す場合には documentAttachments を使用します。