当我使用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
属性也可以从系统道具中查找。