通过 POP3 自动检查退回的电子邮件? [关闭]

Posted

技术标签:

【中文标题】通过 POP3 自动检查退回的电子邮件? [关闭]【英文标题】:Automatically check bounced emails via POP3? [closed] 【发布时间】:2010-09-05 15:41:26 【问题描述】:

任何人都可以推荐用于检查退回电子邮件和退回原因的软件或 .NET 库吗?我收到退回的电子邮件到我可以阅读的 pop3 帐户。

我需要它来保持我的用户数据库免受无效电子邮件地址的影响,并希望自动执行此操作(将用户标记为无效电子邮件)。

【问题讨论】:

我发现 Github 上的这个工具非常好用,它很轻巧,正好能胜任 github.com/rgl/MailBounceDetector 【参考方案1】:

使用 TcpClient 很容易做到。打开服务器:

TcpClient tcpClient = new TcpClient();
tcpClient.Connect(POP3Server, POP3Port);
NetworkStream stream = tcpClient.GetStream();

阅读欢迎信息:

int read = stream.Read(inBuffer, 0, inBuffer.Length);
string response = Encoding.ASCII.GetString(inBuffer, 0, read);
if (response.IndexOf("+OK") != 0) throw new ...;

写回服务器:

byte[] outBuffer = Encoding.ASCII.GetBytes("USER " + account + "\r\n");
stream.Write(outBuffer, 0, outBuffer.Length);

发送 USER 命令。您需要登录,然后才能开始获取消息 - 请参阅 POP3 RFC 以获取完整的命令列表。如果您不想自己动手,请查看此CodeProject article。

【讨论】:

【参考方案2】:

作为abfo says,POP3 协议超级简单,获取消息是轻而易举的事。解析消息以获取故障更加困难,并且可靠地解析出导致失败的电子邮件以及失败的原因非常困难。问题是退回邮件没有标准格式,默认格式因 MTA 而异。然后,站点管理员可以调整故障原因,使其更难识别,并且站点管理员可以修改故障消息模板,这几乎是不可能的。

看看你是否可以找到一个 .NET 邮件列表管理器,以及你是否可以重新利用退回处理代码。如果做不到这一点,请查看您是否可以更改发送消息的工具,以从唯一(且可逆)的信封发件人(我认为它被称为VERP?)发送每封电子邮件。这样您就无需扫描邮件正文,通过检查失败邮件的收件人地址即可判断是哪个收件人失败了。

【讨论】:

【参考方案3】:

我在处理退回邮件以及不同类型的邮件方面做了大量工作。如果您想绝对确定您查看的电子邮件确实是特定类型的退回邮件,我强烈建议您使用一个好的过滤器。我与Boogie Tools 合作过,效果很好。它可以让您知道它是什么类型的反弹,硬的、软的、瞬态的,或者是否有人试图取消订阅。它有多个 API,包括 .Net,我发现它很容易上手。

【讨论】:

我发现 Github 上的这个工具很好用,它很轻巧,能胜任 github.com/rgl/MailBounceDetector【参考方案4】:

感谢您的回答,太好了! 我自己做了一些研究,发现ListNanny - 使用起来也超级简单,并告诉你反弹的类型。会写一些概念证明,看看我更喜欢哪一个......

【讨论】:

【参考方案5】:

你的问题让我意识到我将要使用的 Wordpress Newsletter 插件没有退信管理,我也需要一些东西。

我环顾了一会儿,最终选择了免费和开源的phplist newsletter manager。

他们详细描述了their settings for handling bounces,并且他们确实有一个实验性的advanced bounce handling feature,可以让您完全按照您想要的方式自定义退回处理。

Evem 如果您决定不使用 PHPlist,阅读他们的做法对您来说将是有用的信息。

【讨论】:

以上是关于通过 POP3 自动检查退回的电子邮件? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Python发送QQ邮件

C# 自动发送邮件被系统当做垃圾邮件退回的处理方法

通过 Return-Path 标头检测退回的邮件

通过 cPanel 和 PHP 传送电子邮件 [关闭]

发送电子邮件并检查状态

为 MailChimp 活动或列表查找已清理/退回的电子邮件地址