1、設置郵件的pop3
以163網易郵箱為例:
https://jingyan.baidu.com/article/adc81513804be9f722bf7350.html
2、下載OpenPop.dll
官網下載地址:http://sourceforge.net/projects/hpop/
3、讀取設置pop3郵箱的所有郵件內容:
public class Pop3Helper { public static void ReadPop3() { using (Pop3Client client = new Pop3Client()) { if (client.Connected) { client.Disconnect(); } // Connect to the server, false means don't use ssl
client.Connect("pop3.163.com", 110, false); // Authenticate ourselves towards the server by email account and password
client.Authenticate("xxx@163.com", "pop3授權碼"); //email count
int messageCount = client.GetMessageCount(); for (int i = 1; i <= messageCount; i++) { Message message = client.GetMessage(i); NameValueCollection customHeaders = message.Headers.UnknownHeaders; string sender = message.Headers.From.DisplayName; string from = message.Headers.From.Address; string subject = message.Headers.Subject; DateTime Datesent = message.Headers.DateSent; MessagePart messagePart = message.MessagePart; GetCustomInfo(customHeaders); //email body
string body = " "; if (messagePart.IsText) { body = messagePart.GetBodyAsText(); } else if (messagePart.IsMultiPart) { MessagePart plainTextPart = message.FindFirstPlainTextVersion(); MessagePart htmlTextPart = message.FindFirstHtmlVersion(); if (htmlTextPart != null) { body = htmlTextPart.GetBodyAsText(); } if (plainTextPart != null) { body = plainTextPart.GetBodyAsText(); } else { List<MessagePart> textVersions = message.FindAllTextVersions(); if (textVersions.Count >= 1) body = textVersions[0].GetBodyAsText(); else body = "<<OpenPop>> Cannot find a text version body in this message."; } } } } } //獲取自定義字段內容
private static void GetCustomInfo(NameValueCollection col) { if (col != null && col.Count > 0) { foreach (var cHeaderKey in col.AllKeys) { switch (cHeaderKey) { case "X-CamId": Console.WriteLine(string.Format("CamId:{0}", col[cHeaderKey])); break; case "X-SubId": Console.WriteLine(string.Format("SubId:{0}", col[cHeaderKey])); break; case "X-UserId": Console.WriteLine(string.Format("UserId:{0}", col[cHeaderKey])); break; default: break; } } } } }