sendEmail()
構文
単一のメールメッセージでは、次のようになります。
一括メールメッセージに関して、次のようになります。
使用方法
このコールは、Lightning プラットフォーム AppExchange アプリケーション、カスタムアプリケーションなどの、Salesforce 以外のアプリケーションで、メールの個別送信や一括送信を行う場合に使用します。メールでは標準的なメール属性 (件名行、BCC など) を含めることができ、Salesforce のメールテンプレートを使用することが可能です。平文テキストのほか HTML 形式もサポートされています。HTML メールの状況は、Salesforce を使って追跡できます。送信日、メールが最初に開かれた日、最後に開かれた日、開かれた回数などを確認できます。(詳細は、Salesforce ヘルプの「HTML メールの追跡」を参照してください)。
ログインユーザのメールアドレスは、メールヘッダーの [送信元アドレス] 項目に挿入されます。不在の返信も含め、返ってきたメールはすべてログインユーザに送信されます。不達管理が有効で、SingleEmailMessage.targetObjectId または MassEmailMessage.targetObjectIds が設定されている場合、不達は Salesforce によって自動的に処理され、該当するレコードが更新されます。それ以外の場合は、ログインユーザに送信されます。不達管理は取引先責任者とリードにのみ機能します。
サンプルコード — Java
このサンプルでは、メールメッセージを作成して、宛先、CC、BCC の各受信者、件名、本文テキストを含む項目を設定します。また、setTargetObjectId メソッドを使用して、ログインユーザの ID を受信者として設定します。これにより、指定されたユーザのメールアドレスにメールが送信されます。このサンプルでは、添付ファイルを作成し、添付ファイルを含むメールメッセージを送信します。最後に、状況メッセージまたはエラーメッセージがある場合はコンソールに書き込みます。
この例では、送信除外設定を適用してメールを送信する方法を示します。受信者は、その ID で指定されます。SendEmailOptOutPolicy.FILTER オプションにより、メール送信を除外していない受信者にのみメールが送信されます。
サンプルコード — C#
このサンプルでは、メールメッセージを作成して、宛先、CC、BCC の各受信者、件名、本文テキストを含む項目を設定します。また、setTargetObjectId メソッドを使用して、ログインユーザの ID を受信者として設定します。これにより、指定されたユーザのメールアドレスにメールが送信されます。このサンプルでは、添付ファイルを作成し、添付ファイルを含むメールメッセージを送信します。最後に、状況メッセージまたはエラーメッセージがある場合はコンソールに書き込みます。
この例では、送信除外設定を適用してメールを送信する方法を示します。受信者は、その ID で指定されます。SendEmailOptOutPolicy.FILTER オプションにより、メール送信を除外していない受信者にのみメールが送信されます。
BaseEmail
SingleEmailMessage
次の行には、基本のメール引数に加えて、単一メールが使用する引数が含まれます。
| 名前 | 型 | 説明 |
|---|---|---|
| bccAddresses | string[] | 省略可能。ブラインドカーボンコピー (BCC) アドレス、またはメールの送信先となる取引先責任者、リード、ユーザのオブジェクト ID の配列。テンプレートを使用していない場合のみこの引数を使用できます。この項目の最大サイズは 4,000 バイトです。メールあたりの toAddresses、ccAddresses、および bccAddresses の最大合計数は、150 です。これら 3 つの項目のすべての受信者は、Apex または API を使用して送信されるメールの制限に含まれます。 ID で追加された受信者の optOutPolicy 項目でのみメールの送信除外オプションを指定できます。 メールアドレスは検証されて、形式が正しく、これまで不達としてマークされていないことが確認されます。 BCC コンプライアンスオプションが組織レベルで設定されている場合、ユーザは BCC アドレスを標準のメッセージに追加することができません。次のエラーコードが返されます。BCC_NOT_ALLOWED_IF_BCC_COMPLIANCE_ENABLED。 すべてのメールで、次のいずれかの項目の少なくとも 1 つに受信者の値を割り当てる必要があります。
|
| ccAddresses | string[] | 省略可能。カーボンコピー (CC) アドレス、またはメールの送信先となる取引先責任者、リード、ユーザのオブジェクト ID の配列。テンプレートを使用していない場合のみこの引数を使用できます。この項目の最大サイズは 4,000 バイトです。メールあたりの toAddresses、ccAddresses、および bccAddresses の最大合計数は、150 です。これら 3 つの項目のすべての受信者は、Apex または API を使用して送信されるメールの制限に含まれます。 ID で追加された受信者の optOutPolicy 項目でのみメールの送信除外オプションを指定できます。 メールアドレスは検証されて、形式が正しく、これまで不達としてマークされていないことが確認されます。 すべてのメールで、次のいずれかの項目の少なくとも 1 つに受信者の値を割り当てる必要があります。
|
| charset | string | 省略可能。メール用の文字セット。この値が null の場合、ユーザのデフォルト値が使われます。テンプレートには文字セットが指定されるため、templateId を指定した場合は使用できません。 |
| documentAttachments | ID[] | 非推奨。代わりに entityAttachments を使用します。省略可能。メールに添付する各 Document の ID をリストした配列。 |
| entityAttachments | ID[] | 省略可能。メールに添付する Document、ContentVersion、または Attachment 項目の ID の配列。 |
| fileAttachments | EmailFileAttachment[] | 省略可能。メールに添付するバイナリとテキストファイルのファイル名をリストした配列。添付ファイルの合計が 10 MB を超えない限り、いくつでもファイルを追加できます。 |
| htmlBody | string | 省略可能。メールの HTML 版 (送信者による指定)。組織に関連付けられた仕様に従って、値は符号化されます。 |
| inReplyTo | string | 省略可能���送信メールの In-Reply-To 項目。このメールが返信しているメール (親メール) を識別します。親メールのメッセージ ID が含まれています。「RFC2822 - Internet Message Format」を参照してください。 |
| optOutPolicy | SendEmailOptOutPolicy (string 型の列挙) |
省略可能。取引先責任者、リード、または個人取引先の受信者をメールアドレスではなく ID で追加する場合、この項目によって sendEmail() コールの動作が決まります。デフォルトでは、メールアドレスで追加された受信者は、送信除外設定がオフになり、常にメールを受信します。SendEmailOptOutPolicy 列挙値の有効な値は次のとおりです。
この項目は、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 | string[] | 省略可能。メールアドレス、またはメールの送信先となる取引先責任者、リード、ユーザのオブジェクト ID の配列。テンプレートを使用していない場合のみこの引数を使用できます。この項目の最大サイズは 4,000 バイトです。メールあたりの toAddresses、ccAddresses、および bccAddresses の最大合計数は、150 です。これら 3 つの項目のすべての受信者は、Apex または API を使用して送信されるメールの制限に含まれます。 ID で追加された受信者の optOutPolicy 項目でのみメールの送信除外オプションを指定できます。 |
| 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 も指定することができます。この項目により、テンプレート内の差し込み項目が適切なデータを含んでいることが確実に保証されるようになります。値は、次の型のいずれかです。
|
MassEmailMessage
次の表には、基本のメール引数のほか、一括メール送信で使用される引数が含まれます。
| 名前 | 型 | 説明 |
|---|---|---|
| description | string | 一括メールキューでオブジェクトを識別するために内部で使用する値。 |
| targetObjectIds | ID[] | 取引先責任者、リード、またはメールの送信先ユーザのオブジェクト ID の配列。入力するオブジェクト ID によりコンテキストが設定され、テンプレート内の差し込み項目が適切なデータを含んでいることが保証されます。オブジェクトは同じタイプ (すべての取引先責任者、すべてのリード、またはすべてのユーザ) である必要があります。1 回のメール送信で最大 250 まで ID をリストすることができます。targetObjectIds 項目の値を指定した場合、必要に応じて、メールのコンテキストを規定する whatId を、ユーザ、取引先責任者、またはリードに設定することが可能です。これにより、テンプレート内の差し込み項目が適切なデータを含んでいることが保証されます。 |
| whatIds | ID[] | 省略可能。targetObjectIds 項目に取引先責任者の配列を指定する場合、whatIds の配列も指定可能です。これにより、テンプレート内の差し込み項目が適切なデータを含んでいることが確実に保証されるようになります。値は、次の型のいずれかです。
|
EmailFileAttachment
次の表は、EmailFileAttachment が、要求の一部として渡す添付ファイルを指定するために SingleEmailMessage オブジェクトで使用する引数を示しています。なお、Document を渡す場合には documentAttachments を使用します。
障害
次の API 状況コードが返される可能性があります。また、sendEmail() では、メールテンプレートの表示時に他のエラーが返される場合もあります。「renderEmailTemplate() の障害」を参照してください。
BCC_NOT_ALLOWED_IF_BCC_COMPLIANCE_ENABLED
BCC_SELF_NOT_ALLOWED_IF_BCC_COMPLIANCE_ENABLED
EMAIL_NOT_PROCESSED_DUE_TO_PRIOR_ERROR