web-dev-qa-db-fra.com

Définir le nom à partir d'un javax.mail.MimeMessage?

Actuellement, notre application utilise un fichier javax.mail pour envoyer un courrier électronique, en utilisant javax.mail.MailMessage. Nous définissons les en-têtes de l'e-mail de cette manière:

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

Cela fonctionne très bien, mais nous aimerions rendre la section "De" un peu plus conviviale. Actuellement, une personne recevant un courrier électronique verra "[email protected]" dans la section "De" de sa boîte de réception. Au lieu de cela, nous aimerions qu'ils y voient "Société XYZ". Je suppose que cela est probablement fait avec la méthode addHeader (), mais je ne suis pas sûr du nom de l'en-tête. 

42
abeger

OK, lire la documentation sur TOUTES les classes impliquées aurait été utile. La syntaxe correcte devrait être 

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

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

99
abeger

Si vous souhaitez stocker l'email + le nom dans une chaîne (plus facile que de conserver deux chaînes):

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

Dans le cas où j’utilisais du texte localisé avec des caractères spéciaux tels que\u00FA, j’avais des problèmes d’encodage des alias d’adresses électroniques pour certains clients pop3 si j’avais déjà utilisé 

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

Il peut être résolu par une adresse électronique distincte et un alias en appelant:

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. Chaîne)

0
Adrian Adzik
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);
0
Rodrigo Turassa