处理反弹电子邮件(只有POP3,没有IMAP)

本文关键字:没有 IMAP POP3 只有 电子邮件 处理 | 更新日期: 2023-09-27 18:02:52

我想问一下如何处理反弹电子邮件(但是在没有IMAP的服务器上,只有POP3,并且在我的机器上没有Outlook)。我不想每次都看服务器发来的所有邮件。

所以我想,起初:1. 阅读从最老的到最新的电子邮件,检查是否有回复。2. 将最新电子邮件的日期保存到变量"TEMPDATA"中。//该进程将只执行一次,在开始

然后在计时器循环中(在另一个线程中):3.阅读从"TEMPDATA"到最新的电子邮件,检查是否有反弹(检查是否有主题"未投递邮件退回发件人")

我想法的伪代码:

TIMER( Tick every 5minutes )
{
    (LOCK)
    loop(on inbox from the "TEMPDATA" to the newest)
    {
        // Read single email
        if (the subject is "Undelivered Mail Returned to Sender")
        {
            // Here I will parse message so that I will know the addresse
            // And removie that addresse from my list.
        }
    }
    (UNLOCK)
}

我只是好奇是否有更好的解决方案。

处理反弹电子邮件(只有POP3,没有IMAP)

  1. 如果您计划使用IMAP协议,我宁愿使用电子邮件UID而不是日期。

  2. 如果消息是发送失败报告,仅检查主题并不是最基本的检查方法。有些邮件会有不同的主题(不同的语言)。例如Gmail使用额外的标题。然而,大多数交付失败的电子邮件遵循RFC3464规范,并使用交付状态通知(DSN)格式。

  3. 您可以尝试使用Mail.dll组件:

http://www.lesnikowski.com/blog/index.php/bounce-handling/

请注意,这是我创建的一个商业产品。

我知道这是一个老问题,但它在搜索结果中显示很高,所以这里希望它能帮助别人。

我找到了这个开源的解决方案:

https://mailsystem.codeplex.com/

到目前为止,

似乎对我们很有效。文档几乎不存在,尽管Visual Studio智能感知非常详细。