Pregunta

En la actualidad, nuestra aplicación utiliza un javax.mail para enviar correo electrónico, utilizando javax.mail.MailMessage. Hemos establecido el A partir de las cabeceras del correo electrónico de esta manera:

Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress("mail@companyxyz.com"));

Esto funciona muy bien, pero nos gustaría hacer la sección "De" un poco más fácil de usar. Actualmente, alguien que recibe un correo electrónico verá "mail@companyxyz.com" en el campo "De" de su bandeja de entrada. En su lugar, nos gustaría que vieran "Compañía XYZ" allí. Calculo que esto probablemente se realiza con el método addHeader (), pero no estoy seguro de lo que sería el nombre de la cabecera.

¿Fue útil?

Solución

Aceptar, la lectura de la documentación de todas las clases involucradas hubiera sido útil. La sintaxis correcta debería ser

Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress("mail@companyxyz.com", "Company XYZ"));

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

Otros consejos

Si desea almacenar el correo + el nombre en una cadena (más fácil de mantener dos cuerdas):

Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress("Company XYZ <mail@companyxyz.com>"));

En el caso en que yo solía texto localizado con caracteres especiales como \ u00FA que tenía problemas con la codificación de correo electrónico dirección de alias para algunos clientes POP3 si hubiera usado solo

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

Puede ser resuelto por dirección de correo electrónico separada y alias de 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)

ic = new InitialContext();

final Session session = (Session) ic.lookupLink(snName);
final Properties props = session.getProperties();

props.put("mail.from", mailFrom); //blabla@mail.com
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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top