Domanda

Attualmente, la nostra applicazione utilizza un javax.mail per inviare e-mail, utilizzando javax.mail.MailMessage. Abbiamo impostato la dalle intestazioni delle email in questo modo:

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

Questo funziona bene, ma vorremmo fare la sezione di un po 'più user-friendly "Da". Attualmente, chi riceve una e-mail vedrà "mail@companyxyz.com" nella sezione della loro casella di posta "Da". Invece, vorremmo loro di vedere "Società XYZ" lì. Immagino questo è probabilmente fatto con il metodo AddHeader (), ma non sono sicuro di quello che il nome di intestazione sarebbe.

È stato utile?

Soluzione

OK, leggere la documentazione di tutte le classi coinvolte sarebbe stato utile. La sintassi corretta dovrebbe essere

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

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

Altri suggerimenti

Se si desidera memorizzare l'e-mail + il nome in una stringa (più facile che mantenere due stringhe):

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

Nel caso in cui ho usato il testo localizzato con caratteri speciali come \ u00FA Ho avuto problemi con l'indirizzo e-mail codifica alias per alcuni client POP3 se avessi usato solo

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

Si può essere risolto indirizzo e-mail separato e alias Invoke:

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top