Pregunta

Me escribió código para enviar correo electrónico. Funciona bien, pero mi objetivo es:

Cuando alguien envía a la dirección de correo electrónico no existente, quiero registrar el resultado como 'falso' o 'fracaso', etc (y cuando la dirección de correo electrónico es válida, sólo decir 'éxito')

He intentado 2 cosas con el código de abajo.

  1. proporcionado no de correo electrónico cadena 'foo @!'

  2. proporcionado dirección de correo electrónico que no existe 'thisdoesnotexistignsdfkjsdf@gmail.com'

resultado:

Ejecutar el caso 1 causada código para entrar en catch block dar salida tanto mensaje de error en la página HTML que se espera.

Ejecutar el caso 2 causado código para volver 'ok sent!'

Y después de unos minutos he recibido correo electrónico que la entrega no.

Mi conjetura es IsSuccess del objeto SendEmailResult () no es realmente responsable de la verificación de dirección de correo electrónico que no existe. Sólo le importa si el correo electrónico se dispara ???

¿Hay alguna forma de registro si no existe la cuenta de correo electrónico para que pueda registrar dicha ocasión, en mi código 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();
}
¿Fue útil?

Solución

Correo electrónico (SMTP) es un protocolo de almacenamiento y hacia adelante, en el momento del envío, no se puede decir que la dirección de correo electrónico de destino es inexistente, sólo se puede encontrar que una vez que el mensaje realmente llegue a su destino final servidor.

Otros consejos

si había una manera de encontrar la dirección de correo electrónico si realmente existe o no, un spammer podría haber tratado ataque de fuerza bruta - intentar todas las combinaciones posibles de correo electrónico y enviar mensajes de spam infinitas:)

Gracias a Dios, eso no es posible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top