You need to sign in to do that
Don't have an account?
yama1173
Apexトリガーでのメール送信エラーの起こし方
Apexトリガーでのメール送信時にエラーを起こす方法はありますでしょうか?
(以下のデバックログが正しく表示されることを確認したい)
Messaging.SendEmailResult[] mailResults = Messaging.sendEmail(messages);
//メール送信結果更新
for(Messaging.SendEmailResult result : mailResults)
if(result.isSuccess()){
//送信結果更新処理
}else{
system.debug('エラーメッセージ' + result.getErrors()[0].getMessage()); ←★意図的にエラーを出し、この処理を確認したい。
}
}
よろしくお願いします。
Messaging.sendEmail(new Messaging.Email[] {mail},false)
これで先ほどの不正なアドレスで実行するとエラー判定の処理を実行できると思います。
All Answers
ご回答ありがとうございます。
(説明不足ですみません。)
送信先にはユーザのTargetObjectIdを指定していますので
ご回答いただいた方法(不正な値を入力する)ができません。
ほかに手はないでしょうか?
あと他の方法ですが件名あたりに255文字?以上の大量の文字をセットして実行したら、もしかするとエラーを発生させられるかもしれません。
ご回答ありがとうございます!
ちょっと試してみます!
試してみました。
っがエラーの結果をもらうことができませんでした。
①メール送信先に不正な文字をいれる
→setToAddressにメールアドレスでない文字列をいれるとセットしたタイミングでエラーとなってしまいました。
(メール送信のメソッド(sendEmail)を実行する前にシステムエラーで落ちてしまった。
ので確認したかった条件分岐に到達できていない。)
②件名に10000文字を設定する
→メール送信のメソッド(sendEmail)は正常に実行されました。(trueとなった)
ただメールログを確認するとメールイベントは:Pとなりメール送信事態はできていないようです。
sendEmailでエラーをもらうことはできないのでしょうか?
Messaging.sendEmail(new Messaging.Email[] {mail},false)
これで先ほどの不正なアドレスで実行するとエラー判定の処理を実行できると思います。
ご回答ありがとうございます!
試してみます!
もう大丈夫かもしれませんがサンプルコードです。
これで大体確認できると思います。
Class
Test Class
サンプルコードまでありがとうございます!
これから試してみます!
エラーコード内にはいることができました!ありがとうございました!
自分も調べてみていろいろ勉強になりました(^^)