【问题标题】:javax.mail not including Sender Name in emailsjavax.mail 在电子邮件中不包括发件人姓名
【发布时间】: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


【解决方案1】:

好痛。

错误是我使用的是 message.setSender 而不是 message.setFrom。

改变它解决了它。

【讨论】:

  • 我正在使用 setFrom。标头在邮件源中,但是,thunderbird 没有在发件人名称中显示它。苹果邮件可以。不知道有什么区别。
【解决方案2】:

我也有同样的问题想解决

// sender the email string example test@test.com

message.setFrom(new InternetAddress(sender));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-21
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2017-07-18
    • 1970-01-01
    • 2019-09-06
    相关资源
    最近更新 更多