如何设置在JavaMail或Apache James消息id头使用的主机名?



当我使用JavaMail从我自己的服务器发送到我自己的活跃雅虎帐户时,我有邮件反弹的问题。这些邮件正在通过SPF, DKIM和DMARC根据谷歌邮件接收相同的邮件被雅虎反弹。我可以从其他帐户发送消息到我的雅虎帐户没有问题。

邮件从我的服务器发送到ZMail, GMail,微软邮件。查看电子邮件,我唯一注意到的是message - id的消息头。我的消息有以下标题:

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

我想知道如果这个头可能是问题,是否有一种方式在JavaMail或在Apache詹姆斯设置在这条消息中使用的主机名或IP地址,而不是使用"内部可见的主机名",我可以得到主机名是外部可见的。我一直在搜索Apache James和JavaMail的可用文档,但没有找到任何参数来尝试解决这个问题。

根据sun mail的反编译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.

在这里,您可以看到这些值是从Properties中提取出来的,或者将回退到您的本地机器中。

使用字段:

  • user.name
  • mail.from
  • mail.user
  • mail.host

user.name属性也可以从系统道具中查找。

相关内容

  • 没有找到相关文章

最新更新