style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

HOTMAIL SPAM JAVAMAIL

Saludos compañeros, tengo problemas al enviar correos a Hotmail ya que los detecta como spam, estos correos son enviados desde una aplicación web desarrollada con JSF2 y Primefaces.

Espero me puedan orientar o dar alguna solución.

He estado investigando sobre lo que podría causar esta detección de spam, pero a ciencia cierta no hay una forma exacta de determinarlo ya que puede ser por que el correo con el que se envían los mail posiblemente ha sido agregado a una lista negra, o hotmail detecta demasiado HTML en el correo, o no se ha establecido el estándar SFP(Sender Policy Framework), en fin.

He verificado en algunas listas el mail, me he comunicado con el servicio de hosting para que habiliten el SPF, y he reducido la cantidad de HTML en los mails que envío, incluso envie correos en texto plano y los detecto como spam.

En cuanto a GMAIL y en YAHOO se envian correctamente y no son detectados como spam.

Por lo tanto mi caso en general es solo con HOTMAIL.

Aquí les muestro la forma en la que envío los emails:

//Clase EmailService
public class EmailService {
        //log4j
        private static final Logger logger = Logger.getLogger("service.mailing.EmailService");

        private transient Session mailSession;
        private Transport transport;
        private Configuration config;
        private String mensajeHTML;
        private final Properties props;

       // constructor de la clase EmailService
        public EmailService () {
               // Se carga la configuracion de email
                try {
                        config = new PropertiesConfiguration("mailing.properties");
                } catch (ConfigurationException e) {
                        logger.error("\n***************Error ******************\n"
                                                + "Problema en el constructor:  EmailService \n"
                                                + "no se pudo cargar la configuracion de Email\n"
                                                + "Excepcion: " + e +"\n"
                                                + "Message: " + e.getMessage()
                                                + "\n***************Fin Error ***************\n");
                }
               
                props = new Properties();
       
        props.put("mail.smtp.host", config.getString("host"));
        props.put("mail.smtp.port", config.getString("port"));
        props.put("mail.smtp.mail.sender", config.getString("from"));
        props.put("mail.smtp.password", config.getString("password"));
        props.put("mail.smtp.user", config.getString("user"));
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtps.ssl.trust", config.getString("host"));
               
        mailSession = Session.getDefaultInstance(props);
        mailSession.setDebug(false);
    }

    *Metodo main del los mensajes
     *@param subject asunto del mensaje
     *@param to destinatario
     *@content contendio del mensaje
     *@metodo nombre del metodo que invoca
     * */
    public void sendMensaje(String subject, String to, String content, String metodo) {
           try {
                       
            MimeMessage message = new MimeMessage(mailSession);
            message.setSender(new InternetAddress((String)props.get("mail.smtp.mail.sender")));
            message.setSubject(subject, "UTF-8");
            message.setFrom(new InternetAddress((String) props.get("mail.smtp.mail.sender")));
            message.setContent(content, "text/html; charset=UTF-8");
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setReplyTo(InternetAddress.parse("no-reply@dominio.com", false));
            transport = mailSession.getTransport("smtps");
            transport.connect((String) props.get("mail.smtp.host"),
            Integer.valueOf((String)props.get("mail.smtp.port")), (String) props.get("mail.smtp.user"),
            (String) props.get("mail.smtp.password"));
            transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
                       
        } catch (AddressException  e) {
         logger.error("\n************************Inicio de Error***********************************"
                                                   + "\nProblema al enviar correo en el metodo: "+metodo+"\n"
                                                   + "\nEntro en catch AddressException\n"
                                                   + "\nExcepcion: " + e
                                                   + "\nMessage: "+ e.getMessage()
                                                   + "\nEmail contacto: " + to
            + "\n************************Fin Error *****************************************\n");
        } catch (MessagingException e) {
        logger.error("\n************************Inicio de Error***********************************"
                                           + "\nProblema al enviar correo en el metodo: "+metodo+"\n"
                                           + "\nEntro en catch MessagingException\n"
                                           + "\nExcepcion: " + e
                                           + "\nMessage: "+ e.getMessage()
                                           + "\nEmail contacto: " + to
                + "\n************************Fin Error *****************************************\n");
        } finally {
                        if (transport != null) {
                                try {
                                        transport.close();
                                } catch (MessagingException e) {
                                logger.error("\n************************Inicio de Error***********************************"
                                                           + "\nProblema al enviar correo en el metodo: "+metodo+"\n"
                                                           + "\nEntro en catch MessagingException\n"
                                                           + "\nExcepcion: " + e
                                                           + "\nMessage: "+ e.getMessage()
                                                           + "\nEmail contacto: " + to
                           + "\n************************Fin Error *****************************************\n");
                              }
                          }
       }
}//fin metodo send

//Metodo que envia email
public void notificacion(){
 
   //Cuerpo del mensaje html
  mensajeHTML = "  ....html....";

  //Se invoca al metodo para enviar el mail
  sendMensaje("Notificaciòn", "mail@gmail.com", mensajeHTML, "notificacion"); // Se envia el correo

 }

}//fin clase

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Cid

Quiza te ayude checalo

Una pregunta sobre el mismo tema en stackoverflow

Imagen de RubensTen

Realizar pruebas

Gracias por el dato ya había observado algunas cosas sobre las directivas de micro, echare nuevamente un vistazo para ver si encuentro algo nuevo gracias

Imagen de Cid

Junk Mail

Te quería proponer que hicieras el envio de los correos desde una cuenta de hotmail pero parece ser que si envias muchos correos en un tiempo relativamente corto por política de hotmail tus correos serían enviados al junk mail.

hotmail-smtp-not-working-with-javamail

Imagen de RubensTen

Verificación

Gracias por tus sugerencias, me he comunicado con el servicio de hosting levantando tickets para que verifiquen si el problema es directamente con ellos, de acuerdo a lo me menciona es que si depende de ellos y me dicen que lo solucionaran, pero tambien pienso que tienes razón en cuanto a las políticas de hotmail, ya que como los mails que se envían son de una tienda virtual, se llegan a enviar bastantes correos en pequeños lapsos de tiempo :(

Esperare la solución del servicio de Hosting, para realizar pruebas nuevamente.

Gracias

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">