如何使用OpenPop保存电子邮件“消息”附件

时间:2014-02-21 04:49:09

标签: c# console-application openpop

我正在开发一个控制台应用程序,我想从邮件下载邮件(只有一个帐户)。我可以下载附件,如果附件直接附加到邮件,我正在使用OpenPop library.Below是下载/保存附件的代码。

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();它不起作用。

1 个答案:

答案 0 :(得分:0)

检查this网站。它有完整的代码,解释如何获取和阅读带附件的电子邮件。希望这会有所帮助。