2010-11-16 4 views
0

Я написал код для отправки электронной почты. Он отлично работает, но моя цель:Как обрабатывать ошибки в Messaging.sendEmail()?

Когда кто-то отправляется на несуществующий адрес электронной почты, я хочу зарегистрировать результат как «ложь» или «сбой» и т. Д. (И когда адрес электронной почты действителен, просто скажите «успех»,)

Я пробовал 2 вещи с помощью кода ниже.

  1. предоставляется не по электронной почте строка 'foo @!'

  2. при условии несуществующего адреса электронной почты '' [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(); 
} 

ответ

2

Email (SMTP) является магазин и вперед протокола, во время отправки, вы не можете сказать, что адресат адрес электронной почты несуществующие, вы можете обнаружить, что только после того, как сообщение на самом деле получает на конечный сервер назначения.

+0

Я также прочитал документацию и кажется, что немедленная регистрация не поддерживается для этой цели :(Спасибо за информацию. –

0

если есть способ, чтобы найти адрес электронной почты действительно ли она существует, или нет, спамер мог бы попытаться грубой сила атаки - пытаются все возможные комбинации электронной почты и отправки бесконечных спам :)

славы бога, что не возможное.

Смежные вопросы