Mar*_*cus 8 postfix domain tld
是否可以更改 postfix 中的消息 ID?如果我通过 Java 应用程序发送邮件,我会得到以下消息 ID:
message-id=<143303043.111334605578921.JavaMail.applicationanme@hostname>
Run Code Online (Sandbox Code Playgroud)
所以我希望 message-id 看起来像这样:
message-id=<143303043.111334605578921.JavaMail.applicationanme@domain.tld>
Run Code Online (Sandbox Code Playgroud)
我能理解的是,如果我用 Linux 程序发送邮件,mail
它可以工作:
message-id=<10213429251967.C2D74C1A8D@domain.tld>
Run Code Online (Sandbox Code Playgroud)
我已经在 postfix-conf 中设置了我的主机名,但是当我用 java-application 发送邮件时它不起作用。我们使用中继主机发送电子邮件,任何没有@domain.tld
在邮件 ID中发送的消息都将被检测为垃圾邮件。
你知道我该如何解决这个问题吗?
小智 11
由于没有人为您提供有关如何让postfix插入反映您的域的消息 ID的解决方案,并且我遇到了同样的问题,因此我想我会分享我如何能够让 postfix 这样做:
添加到末尾 /etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks
插入替换字符串 header_checks
/Message-Id:\s+<(.*?)@hostname>/ REPLACE Message-Id: <$1...@domain.tld>
运行 postmap
postmap /etc/postfix/header_checks
重启后缀
service postfix restart
与其尝试在 postfix 中重写消息 ID,不如让 javamail 从一开始就生成正确的 MessageID。您可以通过子类化MimeMessage
并提供新updateMessageID
方法来更改 javamail 生成 MessageID 的方式
你为什么要这样做?正如@BenPilbrow 指出的那样,消息 ID 几乎毫无意义。几乎唯一会使用它的是线程电子邮件客户端。
正如@stew 指出的那样,您可以首先发送带有正确消息 ID 的电子邮件。
最后,postfix 解决方案是更改 $ myhostname的值,因为这是 postfix 在创建消息 ID 时在 @ 符号之后使用的。
归档时间: |
|
查看次数: |
17845 次 |
最近记录: |