2011-07-18 7 views
0

バウンスバックメール(IMAPを使用しないサーバー、POP3のみ、マシンにOutlookを使用しないサーバー)についてはお答えしたいと思います。 私は毎回サーバーからすべての電子メールを読んでいません。バウンスバックメールの処理(IMAPのないPOP3のみ)

だから私は思った:最初に: 1.バウンスバックがあるかどうかをチェックして、最も古いものから最新のものまで電子メールを読んでください。 3:変数に最新の電子メールの日付保存 2.「TempDataを」 //このプロセスは、最初

そして(別のスレッドで)タイマーループ内で、一度だけ実行されます。メールを「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) 
} 

いくつかのよりよい解決策がある場合、私はちょうど好奇心が強いです。

答えて

0
  1. IMAPプロトコルを使用する予定がある場合は、むしろdateよりもメールUIDを使用したいと思います。

  2. メッセージが配信失敗のレポートである場合、件名のみを確認することは有効な方法ではありません。 電子メールによっては、異なる主題(別の言語)があります。 Gmailは、たとえば、追加のヘッダーを使用します。 しかし、ほとんどの配信失敗のメールはRFC3464仕様に準拠しており、配信ステータス通知(DSN)形式を使用しています。

  3. あなたはこのためMail.dll componentを使用して試すことができます:

http://www.lesnikowski.com/blog/index.php/bounce-handling/

これは私が作成した商用製品であることに注意してください。

+0

ありがとうございますが、私はオープンソースのソリューションを探しています – Marshall

0

これは古い質問ですが、検索結果が高く表示されるため、他の人に役立つことを期待しています。

私はこのオープンソースソリューションを見つけました:

https://mailsystem.codeplex.com/

は、これまで私たちのためにうまく動作しているようです。 Visual Studioインテリセンスはかなり詳細ですが、ドキュメントはほとんど存在しません。

関連する問題