2014-02-21 83 views
2

我正在開發一個控制檯應用程序,我想從郵件中下載附件(只有一個帳戶)。我可以下載附件,如果附件直接附加到郵件,我正在使用OpenPop庫。下面是下載/保存附件的代碼。如何使用OpenPop保存電子郵件「消息」附件

Pop3Client client = new Pop3Client();  
client.Connect("MailServer", PortNumber,UseSSL,receiveTimeout, sendTimeout,certificateValidator); 
client.Authenticate(username, password); 
List<Message> _messages = new List<Message>(); 
int messageCount = client.GetMessageCount();    
for (int i = messageCount; i > 0; i--) 
{ 
    _messages .Add(client.GetMessage(i));      
} 
string _path = @"D:\Attachments"; 
foreach (Message message in _messages) 
{     
    foreach (MessagePart attachment in message.FindAllAttachments()) 
    { 
     string filePath = Path.Combine(_path, attachment.FileName); 
     if (Path.GetExtension(filePath) == ".xlsx") 
     { 
      FileStream Stream = new FileStream(filePath, FileMode.Create); 
      BinaryWriter BinaryStream = new BinaryWriter(Stream); 
      BinaryStream.Write(attachment.Body); 
      Stream.Close(); 
      BinaryStream.Close();             
     } 
    } 
} 

但我得到的郵件就像每個郵件是一個消息的集合,每個消息都有一個附件。 例如:來自abc @ example.com的郵件,這封郵件包含郵件列表,每條郵件都有一個附件,如何獲取此附件。 我試過var mailbody = message.MessagePart.MessageParts.FirstOrDefault();它不工作。

+0

請不要在標題中包含languge標籤,除非在沒有標籤的情況下才有意義。標籤用於此目的。 –

+0

@OndrejJanacek我不知道你指的是什麼標籤? – NullReferenceException

+0

我在2小時前刪除了標題中的'C#'部分。沒有必要在標題中包含該標題,因爲自動列入的語言標籤會自動包含在搜索中。 –

回答

0

檢查this網站。它具有完整的代碼,解釋如何獲取和閱讀帶有附件的電子郵件。希望這可以幫助。

相關問題