Question

À l'heure actuelle, notre application utilise un javax.mail pour envoyer des e-mail, en utilisant javax.mail.MailMessage. Nous avons mis les en-têtes de De l'e-mail ainsi:

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

Cela fonctionne très bien, mais nous aimerions faire le « De » section un peu plus convivial. À l'heure actuelle, une personne qui reçoit un e-mail verra « mail@companyxyz.com » dans la section « From » de leur boîte de réception. Au lieu de cela, nous aimerions qu'ils voir « Société XYZ » là-bas. Je figure cela est probablement fait avec la méthode addHeader (), mais je ne suis pas sûr de ce que le nom d'en-tête serait.

Était-ce utile?

La solution

OK, la lecture de la documentation sur toutes les classes concernées aurait été utile. La syntaxe correcte doit être

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

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

Autres conseils

Si vous souhaitez enregistrer l'e-mail + le nom dans une chaîne (plus facile que de garder deux cordes):

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

Dans le cas où je le texte localisé avec des caractères spéciaux comme \ u00FA j'ai eu des problèmes avec l'alias d'adresse e-mail de codage pour certains clients pop3 si je l'avais utilisé juste

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

Il peut être résolu par adresse e-mail séparé et alias par 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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top