首先,问候!
我即将使用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无论如何都不会对这些自定义头执行任何操作。)