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 に答える