处理反弹电子邮件(只有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)
}
我只是好奇是否有更好的解决方案。
-
如果您计划使用IMAP协议,我宁愿使用电子邮件UID而不是日期。
-
如果消息是发送失败报告,仅检查主题并不是最基本的检查方法。有些邮件会有不同的主题(不同的语言)。例如Gmail使用额外的标题。然而,大多数交付失败的电子邮件遵循RFC3464规范,并使用交付状态通知(DSN)格式。
-
您可以尝试使用Mail.dll组件:
请注意,这是我创建的一个商业产品。
我知道这是一个老问题,但它在搜索结果中显示很高,所以这里希望它能帮助别人。
我找到了这个开源的解决方案:
https://mailsystem.codeplex.com/到目前为止,似乎对我们很有效。文档几乎不存在,尽管Visual Studio智能感知非常详细。