Я написал код для отправки электронной почты. Он отлично работает, но моя цель:Как обрабатывать ошибки в Messaging.sendEmail()?
Когда кто-то отправляется на несуществующий адрес электронной почты, я хочу зарегистрировать результат как «ложь» или «сбой» и т. Д. (И когда адрес электронной почты действителен, просто скажите «успех»,)
Я пробовал 2 вещи с помощью кода ниже.
предоставляется не по электронной почте строка 'foo @!'
при условии несуществующего адреса электронной почты '' [email protected]
результата:
Execute случай 1 вызывается код, чтобы войти в catch block
, таким образом, выводит сообщение об ошибке на странице HTML что ожидается.
Execute случай 2 вызывается код возврата 'ok sent!'
И через несколько минут я получил письмо, что доставка не удалась.
Моя догадка isSuccess() на SendEmailResult не несет ответственности за проверку несуществующего адреса электронной почты. Это только заботится, если электронная почта уволена ???
Можно ли зарегистрировать журнал, если учетная запись электронной почты не существует, поэтому я могу зарегистрировать такой случай в моем коде 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();
}
Я также прочитал документацию и кажется, что немедленная регистрация не поддерживается для этой цели :(Спасибо за информацию. –