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

sendEmailMessage()

最大 10 件のドラフトメールメッセージをただちに送信します。

構文

Enterprise SOAP:

1SendEmailResult[] = connection.sendEmailMessage( String[] draftEmailIds);

Partner SOAP:

1SendEmailResult[] = connection.sendEmailMessage( ID[] draftEmailIds);

使用方法

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

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

  • このコールで送信されるメールメッセージは、送信側組織の 1 日の単一メール送信の制限に含まれます。この制限に達すると、SingleEmailMessage を使用する sendEmailMessage() コールは拒否され、ユーザには SINGLE_EMAIL_LIMIT_EXCEEDED エラーコードが返されます。ただし、Salesforce アプリケーションを通して送られた単一メールは許可されます。
  • このコールで送信される一括メールメッセージは、送信側組織の 1 日の一括メール送信の制限に含まれます。この制限に達すると、MassEmailMessage を使用する sendEmail() コールは拒否され、ユーザには MASS_MAIL_LIMIT_EXCEEDED エラーコードが返されます。

AllOrNone ヘッダーはこのコールでは優先されません。sendEmailMessage() では、AllOrNone ヘッダーが true に設定されている場合でも、部分的な成功が返されます。

メモ

サンプルコード — Java

このサンプルでは、ケースおよびドラフトメールメッセージを作成して、FromToCCBCC の各受信者、件名、本文テキストを含むメッセージ項目を設定します。また、添付ファイルを作成し、添付ファイルを含むメールメッセージを送信します。最後に、状況メッセージまたはエラーメッセージがある場合はコンソールに書き込みます。

1public void doSendEmail() {
2   try {
3      //Create a case
4      Case theCase = new Case();
5      theCase.setSubject("Sample Case");
6      SaveResult[] saveResult = connection.create(new SObject[] { theCase });
7      String caseId = saveResult[0].getId();
8
9      //Create a draft EmailMessage
10      EmailMessage message = new EmailMessage();
11      message.setParentId(theCase.getId());
12      message.setBccAddress("bcc@email.com");
13      message.setCcAddress("cc1@salesforce.com; cc2@email.com");
14      message.setSubject("This is how you use the sendEmailMessage method.");
15      message.setFromAddress("from@email.com");
16      message.setFromName("Sample Code");
17      message.setTextBody("This is the text body of the message.");
18      message.setStatus("5"); //"5" means Draft
19      message.setToAddress("to@email.com");
20      saveResult = connection.create(new SObject[] { message });
21      String emailMessageId = saveResult[0].getId();
22
23      //Create an attachment for the draft EmailMessage
24      Attachment att = new Attachment();
25      byte[] fileBody = new byte[1000000];
26      att.setBody(fileBody);
27      att.setName("attachment");
28      att.setParentId(emailMessageId);
29      connection.create(new SObject[] { att });
30
31      //Send the draft EmailMessage
32      SendEmailResult[] results = connection.sendEmailMessage(messages);
33      if (results[0].isSuccess()) {
34         System.out.println("The email was sent successfully.");
35      } else {
36         System.out.println("The email failed to send: " +
37            results[0].getErrors()[0].getMessage());
38      }
39   } catch (ConnectionException ce) {
40      ce.printStackTrace();
41   }

引数

なし。

応答

SendEmailResult[]