在javax.mail.MimeMessage中设置from名字?

目前,我们的应用程序使用javax.mail发送电子邮件,使用javax.mail.MailMessage。 我们这样设置电子邮件的From标题:

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

这工作得很好,但我们想让“From”部分更方便用户。 目前,收到电子邮件的用户将在收件箱的“发件人”部分看到“mail@companyxyz.com”。 相反,我们希望他们在那里看到“XYZ公司”。 我想这可能是用addHeader()方法完成的,但是我不确定头部名称是什么。

好的,阅读有关所有课程的文档将会有所帮助。 正确的语法应该是

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

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

如果要将电子邮件+名称存储在一个string中(比保留两个string更容易):

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

如果我使用本地化的文本特殊字符像\ u00FA我有问题编码电子邮件地址别名的一些POP3客户端,如果我只是用

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

它可以通过调用单独的电子邮件地址和别名来解决:

 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)