Einstellen von Namen in einem javax.E-mail.MimeMessage?
-
21-09-2019 - |
Frage
Derzeit, unsere Anwendung verwendet eine javax.E-mail senden E-Mail, mit javax.E-mail.MailMessage.Setzen wir die Aus dem Header der E-Mail-auf diese Weise:
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress("mail@companyxyz.com"));
Das funktioniert gut, aber wir möchten die "Aus" - Abschnitt ein wenig mehr Benutzer-freundliche.Derzeit, die jemand Erhalt einer E-Mail sehen "mail@companyxyz.com" in der "Aus" - Abschnitt, der Ihrem Posteingang.Stattdessen, wir möchten, dass Sie finden Sie unter "Firma XYZ" gibt.Ich vermute, dies ist wahrscheinlich fertig mit der addHeader () - Methode, aber ich bin mir nicht sicher, was der header-name wäre.
Lösung
OK, das Lesen der Dokumentation über alle beteiligten Klassen wäre hilfreich gewesen. Die richtige Syntax sollte
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress("mail@companyxyz.com", "Company XYZ"));
Quelle: https://javamail.java. net / nonav / docs / api / javax / mail / Internet / InternetAddress.html
Andere Tipps
Wenn Sie die E-Mail speichern möchten + den Namen in eine Zeichenfolge (einfacher als zu halten zwei string):
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress("Company XYZ <mail@companyxyz.com>"));
Im Fall wenn ich in den lokalisierten text mit Sonderzeichen wie \u00FA ich hatte Probleme mit der Kodierung E-Mail-Adresse ein alias für einige pop3-clients, wenn ich nur
MimeMessage m = new MimeMessage(session);
m.setFrom();
Es können gelöst werden durch separate E-Mail-Adresse und die alias-Namen aufrufen:
MimeMessage m = new MimeMessage(session);
m.setFrom(new InternetAddress(session.getProperty("mail.from"), session.getProperty("mail.from.alias"),"UTF8"));
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);