- リンクを取得
- ×
- メール
- 他のアプリ
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組織で許可された送信元アドレスを指定できます。
設定手順
- 設定 → 「組織全体のメールアドレス」を検索。
- 新しいメールアドレスを追加:
- アドレスを入力。
- 確認メールが送信され、承認後に有効になります。
- アドレスが有効になると、Apexコードで
OrgWideEmailAddress
レコードとして取得可能。
3. 他の方法:送信者アドレスの指定
3.1 デフォルトユーザーのメールアドレスを使用
送信者のデフォルトメールアドレス(ユーザーのメールアドレス)が使用されます。この場合、`setOrgWideEmailAddressId`は不要です。
3.2 ユーザー特有の送信元アドレスを使用
特定の送信元アドレスを許可するには、送信者リストに追加する必要があります。
4. 注意点
送信者リストの確認: Salesforceで許可された送信者アドレスのみ使用可能です。無許可のアドレスを指定するとエラーが発生します。
制限事項: 一度の呼び出しで送信できるメールの数は`sendEmail`メソッドで10件、組織全体で24時間内に送信可能なメール数には制限があります。
テスト環境での制限: Sandboxでは、特定の制限により外部メールアドレスへの送信がブロックされる場合があります。`@test.salesforce.com`ドメインのアドレスをテストに使用してください。
コメント
コメントを投稿