Dot-Net

通過 POP3 自動檢查退回的電子郵件?

  • August 22, 2021

任何人都可以推薦用於檢查退回電子郵件和退回原因的軟體或 .NET 庫嗎?我收到退回的電子郵件到我可以閱讀的 pop3 帳戶。

我需要它來保持我的使用者數據庫免受無效電子郵件地址的影響,並希望自動執行此操作(將使用者標記為無效電子郵件)。

我做了很多工作來處理退回郵件和不同類型的郵件。如果您想絕對確定您查看的電子郵件確實是特定類型的退回郵件,我強烈建議您使用一個好的過濾器。我曾與Boogie Tools合作過,而且效果很好。它可以讓您知道它是什麼類型的反彈,硬的、軟的、瞬態的,或者是否有人試圖取消訂閱。它有多個 API,包括 .Net,我發現它很容易上手。

使用 TcpClient 很容易做到。打開伺服器:

TcpClient tcpClient = new TcpClient();
tcpClient.Connect(POP3Server, POP3Port);
NetworkStream stream = tcpClient.GetStream();

閱讀歡迎資訊:

int read = stream.Read(inBuffer, 0, inBuffer.Length);
string response = Encoding.ASCII.GetString(inBuffer, 0, read);
if (response.IndexOf("+OK") != 0) throw new ...;

寫回伺服器:

byte[] outBuffer = Encoding.ASCII.GetBytes("USER " + account + "\r\n");
stream.Write(outBuffer, 0, outBuffer.Length);

發送 USER 命令。您需要登錄,然後才能開始獲取消息 - 請參閱 POP3 RFC以獲取完整的命令列表。如果您不想自己動手,請查看這篇CodeProject 文章

引用自:https://stackoverflow.com/questions/7231