我必须向许多客户发送消息。但他们中的许多人都反弹了。我想要一个这些电子邮件地址的列表。如何从我的Java应用程序中获取该列表?
答案 0 :(得分:4)
制作一个特殊的电子邮件地址bounced@yourdomain.com,您将捕获所有退回的电子邮件进行分析。
将以下标题添加到您发送的电子邮件中:
Return-Path: <bounced@yourdomain.com>
现在电子邮件将反弹回该地址。
不时从您的java程序中读取该地址的电子邮件,例如通过IMAP(或通过通知界面/依赖您的服务器),当您看到电子邮件地址将其记录在您的数据库中时
请注意,如果您正在使用时事通讯应用,则不应该首次将电子邮件列入黑名单,但要计算它的反弹,并在3-4次反弹后将其列入黑名单(有些人将其电子邮件设置为在进入时反弹假期等等,所以他们需要特别照顾)。
答案 1 :(得分:1)
我使用
解决了这个问题SMTPMessage msg = new SMTPMessage(getSession());
msg.setEnvelopeFrom(bounceAddr);
请参阅javamail文档并查看:
void com.sun.mail.smtp.SMTPMessage.setEnvelopeFrom(String from)
将发件人地址设置为显示在SMTP信封中。请注意,这与消息本身中显示的“发件人”地址不同。信封发件人地址通常在报告错误时使用。有关详细信息,请参阅RFC 821。
如果设置,则覆盖mail.smtp.from
属性。
参数: 来自信封来自地址