util template mimemessage mail formato enviar correo content con java email javax.mail mime-message

template - Establecer el nombre de from en javax.mail.MimeMessage?



mimemessage java (4)

De acuerdo, leer la documentación sobre TODAS las clases involucradas hubiera sido útil. La sintaxis correcta debe ser

Message msg = new MimeMessage(mailSession); msg.setFrom(new InternetAddress("[email protected]", "Company XYZ"));

Fuente: https://javamail.java.net/nonav/docs/api/javax/mail/internet/InternetAddress.html

Actualmente, nuestra aplicación usa javax.mail para enviar correos electrónicos, utilizando javax.mail.MailMessage. Establecemos los encabezados De del correo electrónico de esta manera:

Message msg = new MimeMessage(mailSession); msg.setFrom(new InternetAddress("[email protected]"));

Esto funciona bien, pero nos gustaría que la sección "De" sea un poco más fácil de usar. Actualmente, alguien que recibe un correo electrónico verá "[email protected]" en la sección "De" de su bandeja de entrada. En su lugar, nos gustaría que vean "Company XYZ" allí. Me imagino que esto probablemente se haga con el método addHeader (), pero no estoy seguro de cuál será el nombre del encabezado.


En el caso cuando utilicé texto localizado con caracteres especiales como / u00FA, tuve problemas con la codificación del alias de la dirección de correo electrónico para algunos clientes pop3 si hubiera utilizado solo

MimeMessage m = new MimeMessage(session); m.setFrom();

Se puede resolver por medio de una dirección de correo electrónico y alias por invocación:

MimeMessage m = new MimeMessage(session); m.setFrom(new InternetAddress(session.getProperty("mail.from"), session.getProperty("mail.from.alias"),"UTF8"));

ref: https://javamail.java.net/nonav/docs/api/javax/mail/internet/InternetAddress.html#InternetAddress(java.lang.String,%20java.lang.String,%20java.lang.String)


Si desea almacenar el correo electrónico + el nombre en una cadena (más fácil que mantener dos cadenas):

Message msg = new MimeMessage(mailSession); msg.setFrom(new InternetAddress("Company XYZ <[email protected]>"));


ic = new InitialContext(); final Session session = (Session) ic.lookupLink(snName); final Properties props = session.getProperties(); props.put("mail.from", mailFrom); //[email protected] props.put("mail.from.alias", mailName);//"joao Ninguem" // Create a message with the specified information. final MimeMessage msg = new MimeMessage(session); msg.setSubject(subject); msg.setSentDate(new Date()); msg.setFrom(new InternetAddress(session.getProperty("mail.from"), session.getProperty("mail.from.alias"), "UTF8")); msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailTo, false)); msg.setContent(body, "text/html"); // Create a transport. Transport.send(msg);