我正在开发一个控制台应用程序,我想从进入邮件的邮件中下载附件(只有一个帐户)。我可以下载附件,如果附件直接附加到邮件中,我正在使用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()
;它不起作用。
检查这个网站。它有完整的代码,解释如何获取和阅读带有附件的电子邮件。希望这有帮助。