使用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));
}
}
我找到了这个解决方案https://github.com/eric-b/DSN-Parser
MailDeliveryInfo。TryCreate(字符串rawMessage)
计算MailDeliveryInfo.IsDsn(rawMessage)并尝试解析报告。如果失败或者不是报表,则返回null。
信息解析
基本上,每个MailDeliveryInfo实例定义:
约会,原始报告(Content-Type: message/delivery-status),状态列表,每个状态与一个电子邮件相关联(见下文);任意Uid属性(不是由助手方法填充的):调用者可以使用它来存储报告标识符(例如来自POP3)。原始(未传递)消息的报头也可以访问。
每个状态基本定义:
一个动作(如"失败","延迟","交付","中继"或"扩展"),状态码(如:5.1.1)分类字符串(例如:"PermanentFailure/AddressingStatus/BadDestinationMailboxAddress"),诊断代码(如"smtp;