SalesforceにおけるWebサービスコールアウトのテスト完全ガイド

SingleEmailMessageで送信元アドレスを設定する方法


Salesforce ApexでSingleEmailMessageの送信元アドレスを設定する方法

SingleEmailMessageを使用してメールを送信する際、送信元アドレスを設定するには、Salesforce組織で許可されたアドレスや組織の「送信者リスト」に設定されたアドレスを利用する必要があります。ここでは、送信元アドレスの設定方法と関連する注意点について説明します。


1. 基本設定:送信元アドレスを設定

ApexコードでSingleEmailMessageの送信元アドレスを設定するには、`setOrgWideEmailAddressId()`メソッドを使用します。このメソッドには、組織全体のメールアドレスのIDを指定します。

サンプルコード

public class EmailSender {
    public static void sendEmail(String recipient, String subject, String body) {
        // 組織全体のメールアドレスIDを取得
        OrgWideEmailAddress[] orgWideEmailAddresses = [SELECT Id, Address FROM OrgWideEmailAddress];
        if (orgWideEmailAddresses.isEmpty()) {
            throw new EmailException('組織全体のメールアドレスが設定されていません');
        }

        // メール送信設定
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        mail.setToAddresses(new String[] { recipient });
        mail.setSubject(subject);
        mail.setPlainTextBody(body);

        // 送信元アドレスを設定
        mail.setOrgWideEmailAddressId(orgWideEmailAddresses[0].Id);

        // メール送信
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
    }
}

2. 組織全体のメールアドレス(Org-Wide Email Address)の設定

OrgWideEmailAddressを使用すると、Salesforce組織で許可された送信元アドレスを指定できます。

設定手順

  1. 設定 → 「組織全体のメールアドレス」を検索。
  2. 新しいメールアドレスを追加:
    • アドレスを入力。
    • 確認メールが送信され、承認後に有効になります。
  3. アドレスが有効になると、ApexコードでOrgWideEmailAddressレコードとして取得可能。

3. 他の方法:送信者アドレスの指定

3.1 デフォルトユーザーのメールアドレスを使用

送信者のデフォルトメールアドレス(ユーザーのメールアドレス)が使用されます。この場合、`setOrgWideEmailAddressId`は不要です。

3.2 ユーザー特有の送信元アドレスを使用

特定の送信元アドレスを許可するには、送信者リストに追加する必要があります。


4. 注意点

  • 送信者リストの確認: Salesforceで許可された送信者アドレスのみ使用可能です。無許可のアドレスを指定するとエラーが発生します。

  • 制限事項: 一度の呼び出しで送信できるメールの数は`sendEmail`メソッドで10件、組織全体で24時間内に送信可能なメール数には制限があります。

  • テスト環境での制限: Sandboxでは、特定の制限により外部メールアドレスへの送信がブロックされる場合があります。`@test.salesforce.com`ドメインのアドレスをテストに使用してください。

コメント