我寫了代碼發送電子郵件。它的工作正常,但我的目標是:如何處理Messaging.sendEmail()中的錯誤?
當有人發送到不存在的電子郵件地址,我想記錄結果爲'假'或'失敗'等等(當電子郵件地址是有效的,只要說'成功' )
我已經用下面的代碼試過2件東西。
提供了非電子郵件字符串'foo @!'
提供非現有的電子郵件地址 '[email protected]'
結果:
執行殼1而引起的代碼進入catch block
從而html頁面上輸出錯誤消息這是預期的。
執行情況2導致代碼返回'ok sent!'
而幾分鐘後,我收到的電子郵件是傳遞失敗。
我的猜測是SendEmailResult對象的isSuccess()沒有真正負責不存在的電子郵件地址檢查。它只關心電子郵件是否被解僱?
有沒有辦法記錄電子郵件帳戶是否不存在,所以我可以在我的Apex代碼中記錄這種情況?
try {
Messaging.SendEmailResult[] resultMail = Messaging.sendEmail(new
Messaging.SingleEmailMessage[] { mail });
resultMail[0].getErrors();
//display success or error message
if (resultMail[0].isSuccess()) {
response = 'ok sent!';
} else {
response = resultMail[0].getErrors().get(0).getMessage();
}
//log
boolean isSuccess = resultMail[0].isSuccess();
Integer out = EmailLogger.logEmailSent(this, isSuccess);
} catch (System.EmailException ex) {
system.debug('============== email exception caught!!!=============');
response = ex.getMessage();
}
我也閱讀文檔,似乎不支持即時日誌記錄:(感謝信息。 – 2010-11-16 08:54:27