【问题标题】:How to set hostname used in JavaMail or Apache James Message-Id header?如何设置 JavaMail 或 Apache James Message-Id 标头中使用的主机名?
【发布时间】:2021-10-21 01:08:23
【问题描述】:

当我使用 JavaMail 从我自己的服务器发送邮件到我自己的活动雅虎帐户时,我遇到了邮件退回问题。根据接收被雅虎退回的相同邮件的谷歌邮件,邮件正在通过 SPF、DKIM 和 DMARC。我可以毫无问题地从其他帐户向我的雅虎帐户发送消息。

邮件从我的服务器发送到 ZMail、GMail、Microsoft 邮件。查看电子邮件,我唯一注意到的是 Message-Id 的消息标题。我的消息有以下标题:

Message-ID: <923936395.17.1634776639078@[internally visible hostname]>

我想知道这个标头是否可能是问题,以及在 JavaMail 或 Apache James 中是否有办法设置在此消息中使用的主机名或 IP 地址,而不是使用“内部可见的主机名” ,我可以获得外部可见的主机名。我一直在搜索 Apache James 和 JavaMail 的可用文档,但没有找到任何参数来尝试解决这个问题。

【问题讨论】:

    标签: email-client mail-server email-headers email-bounces james


    【解决方案1】:

    根据 Sun mail 的 Decompiled SRC,应该可以通过为会话设置一些属性来实现。

    props.setProperty("mail.from", user);
    props.setProperty("mail.host", host);
    //props.setProperty("mail.user", user);
    

    ID 将通过保存方法 (saveChanges()) 更新,并将触发新的 ID 生成 (updateHeaders() -> updateMessageID())。 (在反编译的MimeMessage.class中查找)
    通向在javax.mail.internet.InternetAddress 中调用的HostPart。
    相关方法为_getLocalAddress。

    在这里您可以看到这些值是从属性中提取的,或者将回退到您的本地计算机。

    使用领域:

    • 用户名
    • mail.from
    • mail.user
    • mail.host

    user.name属性也可以从系统props中查到。

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 1970-01-01
      • 2013-03-19
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      相关资源
      最近更新 更多