Messaging.sendEmailで、メールアドレスの形式が不正だった場合、System.EmailExceptionが発生する。

戻り値のList<Messaging.SendEmailResult> にてisSuccessで確認できない。もし、例外を発生させたくなければ、Messaging.sendEmailの第2引数allOrNothingにfalseを指定する。

https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_classes_email_outbound_messaging.htm

<TODO:コードサンプルをここに埋め込みたい>

Messaging.reserveSingleEmailCapacity実行時に、「組織の 1 日あたりのメール送信量の制限を超えてる」場合、System.HandledExceptionが発生する。

そもそも制限越えはどうしようもない。せめて単体テストケース作成時は制限超えないように、Test.isRunningTestなどを利用して、Messaging.sendEmailを実施しないようなロジックを意識する。

なお、単体テストケース時にスタブを作成してあげるような書き方はした方が良い。

<TODO:コードサンプルをここに埋め込みたい>

Messaging.reserveSingleEmailCapacity実行時に、「組織に API の送信またはメール送信の権限がない」場合、System.NoAccessExceptionが発生する。

本番組織をコピーしてSandbox組織を生成する際Partial Copy/Full Sandbox だと、実際の顧客の生データもコピーされるため、間違って取引先にメールが送信されないよう、アクセス権限が絞り込まれた状態で生成される。

参考:Sandbox の設定に関する考慮事項

参考:Sandbox の種別およびテンプレート

[設定]-[メール]-[送信]を開き、 メールを送信するためのアクセス権 (すべてのメールサービス)にて、プルダウンから「すべてのメール」を選択し保存する。

<TODO:画面イメージをここに埋め込みたい>

この記事へのコメント

コメントはまだありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA