OpenPop知道交付状态是否成功

时间:2015-08-31 13:31:40

标签: c# email-integration openpop

无论如何都要知道使用openpop交付状态是成功还是失败?

ContentType {multipart/report; report-type=delivery-status;
boundary=24a0c351-fefd-4069-ac9e-a140c0e98b78}  
System.Net.Mime.ContentType


using (Pop3Client client = new Pop3Client())
{
    client.Connect(server, 110, false);
    client.Authenticate(Usuario, Password, AuthenticationMethod.Auto);

    int messageCount = client.GetMessageCount();

    List<Message> allMessages = new List<Message>(messageCount);

    for (int i = messageCount; i > 0; i--)
    {
    allMessages.Add(client.GetMessage(i));
    }
}

1 个答案:

答案 0 :(得分:0)

我找到了这个解决方案 https://github.com/eric-b/DSN-Parser

MailDeliveryInfo.TryCreate(string rawMessage)

评估MailDeliveryInfo.IsDsn(rawMessage)并尝试解析报告。如果失败或者它不是报告,则返回null。

解析的信息

基本上,MailDeliveryInfo的每个实例都定义:

约会, 原始报告(包含Content-Type:message / delivery-status), 状态列表,每个状态都与电子邮件相关联(见下文), 任意Uid属性(未由辅助方法填充):调用者可以使用它来存储报告标识符(例如,来自POP3)。 还可以访问原始(未传递)消息的标题。

每个状态基本上定义:

一个动作(即&#34;失败&#34;,&#34;延迟&#34;,&#34;交付&#34;,&#34; Relayed&#34;或&#34; Expanded&#34 ), 状态代码(即&#34; 5.1.1&#34;), 分类字符串(即&#34; PermanentFailure / AddressingStatus / BadDestinationMailboxAddress&#34;), 诊断代码(即&#34; smtp; 550-5.1.1您尝试访问的电子邮件帐户不存在。&#34;)。