Salesforce にはメールを送信する機能がたくさんあります。
Chatter 通知のメール、メールアラート、Apexによるメール送信機能、そしてシステム標準のパスワードメール等、様々です。
しかし、開発中にも「なぜかメールが届かない」というケースがしばしば生じます。
この記事では、メールが届かない際の確認点を備忘録として記載します。
確認ポイント① : メール送信のアクセス権
開発時に発生する際の原因として多いのがこのケースです。
[設定] - [メール] - [送信] を開き、「メールを送信するためのアクセス権」を確認します。
「アクセス権」が「すべてのメール」になっていない場合は、一部のメール送信が制限されている可能性があります。
この「アクセス権」オプションは以下の3種類があります。
オプション | 概要 |
---|---|
アクセス権限なし | ユーザのパスワードリセットメールしか届かない設定です。 ユーザへの送信メールやユーザからの送信メールはすべてブロックされてしまいます。 |
システムメールのみ | 新規ユーザやパスワードのリセット等の、システム自動生成メールのみが許可されます。 ここでは、エクスペリエンスサイト(旧コミュニティ)の招待メール等も許可されないので、注意が必要です。 |
すべてのメール | すべてのメールが許可されます。 |
Sandboxでは、意図せぬメール送信事故を防ぐために「システムメールのみ」設定になっている場合が多いです。
既存のメール送信機能への影響を十分考慮した上で切り替えが必要です。
確認ポイント② : メールログの確認
[設定] - [環境] - [ログ] - [メールログファイル] から、Salesforce のメール送信履歴を確認できます。
メールログのリクエストは、いくつか制限があります。
- 検索対象の期間は7日間しか設定できない。例えば上記画像の場合は、2022/12/08 を開始日とすると、終了日は 2022/12/14 までしか設定できない。
- 検索可能な期間は、過去30日間のみである。それより前のメール送信の履歴は確認できない。
この制限事項のもと、指定した期間のメールログを確認できます。
メールログの処理が終わると指定したメールアドレスに結果が届きます。
上記のようなメールが届き、リンク先からログをダウンロードできます。
メールログの確認方法は次の公式ヘルプに記載があります。
特に確認すべきは「メールイベント」の項目です。
ここが「D」であれば、少なくとも Salesforce からは正常に送信されています。
そのため、Salesforce 側の原因かメール受信側の原因かの切り分けに役立ちます。
確認ポイント③: メール送信のガバナ制限
Salesforce には様々なガバナ制限があり、メール送信にも制限があります。
ライセンスを取得した各 Salesforce 組織は、グリニッジ標準時 (GMT) に基づいて、1 日あたり最大 5,000 の外部メールアドレスに単一のメールを送信できます。Spring ’19 以前に作成された組織の場合、この制限の適用は、メールの送信元によって異なります。
https://help.salesforce.com/s/articleView?id=000381534&type=1
この制約に抵触するケースは多くないかもしれません。
しかし、システムで大量にメール送信される仕組みがないか確認は必要です。
おわりに
Salesforce 開発を行う際は、知らないとハマってしまう設定があるので注意したいです。
メールが送信されないという事象一つにも、さまざまな原因の可能性があります。
この記事が少しでもお役にたてれば幸いです。
コメント