【发布时间】:2013-05-01 20:47:19
【问题描述】:
无论我如何尝试,我都无法在通过 javax.mail Session 类发送的外发邮件中显示发件人名称。
请注意,我使用的是 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("anyAddress@anydomain.com", 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@domain.com>
但发件人始终是:
From: email@domain.com
因此,像 Outlook 和 Gmail 这样的邮件客户端并没有选择名称。
我试过添加
props.put("mail.smtp.from", "Full Name <email@domain.com>")
但这没有任何区别。
有人遇到过这个问题吗?
谢谢。
【问题讨论】:
-
显示完整的独立示例。
-
您使用什么作为 SMTP 服务器?是否支持“个人姓名”?
-
我可以通过命令行很好地发送,所以服务器支持它。问题出在某个地方的 javax 库。
-
我将发布一个完整的示例,但必须将其分开以避免混淆。
标签: java smtp jakarta-mail mail-sender