我编写了发送电子邮件的代码。它工作正常,但我的目标是:
当有人发送到不存在的电子邮件地址时,我想将结果记录为“错误”或“失败”等(当电子邮件地址有效时,只需说“成功”)
我用下面的代码尝试了两件事。
提供了非电子邮件字符串 'foo@!'
提供了不存在的电子邮件地址“thisdoesnotexistignsdfkjsdf@gmail.com”
结果:
执行案例 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();
}