0

无论如何要知道使用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));
    }
}
4

1 回答 1

0

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

MailDeliveryInfo.TryCreate(string rawMessage)

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

解析的信息

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

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

每个状态基本上定义:

一个动作(即“Failed”、“Delayed”、“Delivered”、“Relayed”或“Expanded”)、状态码(即“5.1.1”)、分类字符串(即“PermanentFailure/AddressingStatus/BadDestinationMailboxAddress” "),诊断代码(即“smtp; 550-5.1.1 您尝试访问的电子邮件帐户不存在。”)。

于 2015-09-01T14:28:48.587 回答