javax.mail不包括电子邮件中的发件人名称
问题描述:
无论我尝试什么,我都无法让发件人名称显示在通过javax.mail Session类发送的传出邮件中。javax.mail不包括电子邮件中的发件人名称
请注意,我正在使用Rhino,因此这里有javascript和java的混合,但代码问题也存在于纯java中。
var _java = JavaImporter(javax.mail, javax.mail.internet, java.util);
var props = new _java.Properties();
props.put("mail.smtp.host", myHost);
props.put("mail.smtp.port", "465");
props.put("mail.smtp.user", myUserName);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.port", 465);
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.ssl", "true");
var session = _java.Session.getInstance(props);
var message = _java.MimeMessage(session);
message.setSender(
new _java.InternetAddress("myEmailAddress", "My Full Name")
);
message.setRecipients(
_java.Message.RecipientType.TO,
[new _java.InternetAddress("[email protected]", true)]
);
message.setText("Testing");
message.setSubject("Test");
message.setSentDate(new Date());
var t = session.getTransport("smtp");
t.connect(myUserName, myPassword);
t.sendMessage(message, message.getAllRecipients());
由于透过电子邮件有:
Sender: Personal Name <[email protected]>
但是从总:
From: [email protected]
因此,邮件客户端如Outlook和Gmail不拔毛出了名。
我已经尝试添加
props.put("mail.smtp.from", "Full Name <[email protected]>")
但是这并没有什么差别。
任何人都有这个bug的经验?
谢谢。
答
真是痛苦。
错误是我使用message.setSender而不是message.setFrom。
改变,解决了它。
答
我想清楚了它,因为我有同样的问题
// sender the email string example [email protected]
message.setFrom(new InternetAddress(sender));
显示完整自立的例子。 – 2013-05-01 20:49:05
你用什么SMTP服务器?它支持“个人名字”吗? – 2013-05-01 20:53:11
我可以通过命令行发送,所以服务器支持它。问题出在javax库的某处。 – Scott 2013-05-01 20:58:47