VERP与JavaMail和Postfix,如何操作



首先,问候!

我即将使用Javax.mail API开发一个自定义的Java时事通讯应用程序。所以我需要开发一种Verp技术来追踪反弹。

到目前为止,我已经覆盖了javax.mail.internet.MimeMessage,只是为了处理我自己的邮件头。

class CustomMailMessage extends MimeMessage
...
public void setCustomHeader(key, value)
{
    setHeader(key, value);
    updateHeaders();
}
...

因此,这似乎适用于我设置的除返回路径之外的任何标头。

...
setCustomHeader("Return-Path",verpAddr);
...

导致VERP失败。我已经跟踪了这个标题的值,就在我调用之前和之后

...
Transport.send(message);
...

这个值似乎和我设置的一样。然而,在收到的邮件中,返回路径被更改为发件人地址(From:)。与其他标头不同的是,它们是按设置的。因此,反弹通知将发送给发件人,而不是我的反弹+用户邮件=host@mydomain.com。

我认为这个故障是在修复后的网站上。

请注意,服务器由Plesk设置,我的domain.com在我的服务器上共享。

所以我请任何可以帮助我的人。或者可以为我提供更多关于如何以不同方式实现Verp技术的信息。

Thx提前&干杯

Return Path标头由接收方设置,而不是由发送方设置。

您要设置"信封发件人"地址。请参阅com.sun.mail.smtp包的javadocs以获取要设置的属性,并将SMTPMessage类作为设置此信息的另一种方式。

还需要注意的是,您不需要仅为设置自定义标头而对MimeMessage进行子类化。您可以直接调用setHeader方法,并在发送消息之前调用updateHeaders。(而且updateHeaders无论如何都不会对这些自定义头执行任何操作。)

相关内容

  • 没有找到相关文章

最新更新