tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Salesforceユーザのメールアドレス未検証エラーに関する対処の話

個人的にあまり使わない運用だったので意識しておらずエラー調査でハマった話です。確か今年の2月に適用されたSpring'25 のバージョンから、メールの設定のセキュリティチェックが厳しくなりました。ユーザーのメールアドレスで未検証状態のものはSalesforceからメール送信できないという点です。


Salesforceユーザーのメールアドレスの未検証という状況自体普通は発生しないと考えていましたが、私の設定でメールアドレスをユーザーが個別に変更するときにも未検証という状況が発生します。


正しくはユーザーのメールアドレスとは別で管理できるそのユーザーの送信時のアドレス情報です。


ここで元々のアドレスとは別のアドレスや送信者名を設定していて、かつ 未検証状態になっているとSalesforceからメール送信できないエラーが発生します。


ここでやっかいなのが、システム管理者が普段良く見るSalesforceのユーザーの設定ページ上には表示されないことです。きちんと検証済みとなっているので勘違いが発生します。


次に問題となるポイントが影響を受けるメール送信処理の対象です。まず当然ながら、活動のメール送信処理はエラーになります。ただ、これでエラーになる分にはユーザーから問い合わせが来てすぐに解決くらいで済むイメージを持っていたくらいでした。(もともと未検証状態自体がレアケース)


ですが以下の場面でもエラーになることがわかりました。

① レコード更新時に実行するフローメール送信
② 従来の承認プロセスで承認ステップ進行時の承認者への通知メール


最初に①についてはエラーとなりデータの更新自体が実行できなくなる挙動であることがわかりました。やるべき操作がストップしてしまうため、発生を防止する必要があります。


②については正しくはエラーにはなりませんでした。ただし、承認者宛のメールが送信されないという挙動となり、こちらも運用に影響を及ぼしてしまいます。


①と②のどちらもユーザー側での設定変更なので済ませられる話ではないのでできる限りの対応が必要となります。

対処方法について

一つ幸いなことに Spring'25 からの適用ということで、普段メール送信の処理が実行されるような利用をされているユーザーはほぼ未検証状態となっていることはないと思います。


そのため、直近で未検証状態となっているメンバーはかなり限られている、かつ 現状ではメール送信業務自体は行っていないとほぼほぼ判断できると思います。その前提を持って対象ユーザーの方に説明ができると思います。



もう一つ、明確にメール送信していないユーザーに対して以下の方法で未検証状態のメールをリセットしてユーザー本来のアドレスに変更することができます。

開発者コンソールをつかった送信メール設定の確認とリセット

以下のクエリで私の設定でメールアドレス上書きしていることをチェックできます。

SELECT Id,Name,Email,SenderName,SenderEmail FROM User WHERE SenderEmail != null

SenderNameとSenderEmailの2項目が先程の上書き設定されていると値がセットされる項目です。上書きしていないと殻に表示されます。


ここの値を空にします。そして開発者コンソールのSaveボタンをクリックしてユーザーの送信アドレスをリセットする形で更新できます。


この操作でシステム管理者側で一括でメールアドレスの上書き状況の確認と、リセットの操作が可能です。ここも幸いなことに別のアドレスの登録は検証等の操作が必要になりますが、元々のアドレスに戻す分には特に確認操作などは発生しないみたいです。そのため、必要であれば対象ユーザーへの負担なく修正することも可能となっているようでした。


未検証アドレスの状態のまま放置されているとフローメール送信や承認プロセスなど、自動メール送信系への影響が出てシステムが想定どおりの処理をしてくれない状態となり、また、管理者側でもパッと見の原因特定が難しい状況が発生します。未検証状態のアドレスとなっているに対して上記のような対応が必要になると思います。

補足

今回は開発者コンソールで対応しましたが、当初Salesforceサポートの方に相談したところ、データローダーのやり方を案内いただけました。件数が多い場合はデータローダーを使った方法での対応のほうが早いと思います。数が少ない場合は今回の開発者コンソールを使った方法もけっこう楽だと思います。