使用 Mailkit 通过 IMAP 保存附件
Using Mailkit to save attachments using IMAP
我需要在 Google IMAP 服务器上找到一封特定的电子邮件,然后保存电子邮件中的附件。我想我已经弄清楚了,除了确定附件的文件名的部分。
下面是我到目前为止的代码,我希望有人能指出正确的方向来确定文件名。
我有 Googled 和 SO'd 但无法使用附件方法找到一些东西。
internal class MailKitHelper
{
private void SaveAttachementsForMessage(string aMessageId)
{
ImapClient imapClient = new ImapClient();
imapClient.Connect("imap.google.com", 993, SecureSocketOptions.Auto);
imapClient.Authenticate("xxxx", "xxxx");
HeaderSearchQuery searchCondition = SearchQuery.HeaderContains("Message-Id", aMessageId);
imapClient.Inbox.Open(FolderAccess.ReadOnly);
IList<UniqueId> ids = imapClient.Inbox.Search(searchCondition);
foreach (UniqueId uniqueId in ids)
{
MimeMessage message = imapClient.Inbox.GetMessage(uniqueId);
foreach (MimeEntity attachment in message.Attachments)
{
attachment.WriteTo("WhatIsTheFileName"); //How do I determine the file name
}
}
}
}
获胜者是......
attachment.ContentDisposition.FileName
我需要在 Google IMAP 服务器上找到一封特定的电子邮件,然后保存电子邮件中的附件。我想我已经弄清楚了,除了确定附件的文件名的部分。
下面是我到目前为止的代码,我希望有人能指出正确的方向来确定文件名。
我有 Googled 和 SO'd 但无法使用附件方法找到一些东西。
internal class MailKitHelper
{
private void SaveAttachementsForMessage(string aMessageId)
{
ImapClient imapClient = new ImapClient();
imapClient.Connect("imap.google.com", 993, SecureSocketOptions.Auto);
imapClient.Authenticate("xxxx", "xxxx");
HeaderSearchQuery searchCondition = SearchQuery.HeaderContains("Message-Id", aMessageId);
imapClient.Inbox.Open(FolderAccess.ReadOnly);
IList<UniqueId> ids = imapClient.Inbox.Search(searchCondition);
foreach (UniqueId uniqueId in ids)
{
MimeMessage message = imapClient.Inbox.GetMessage(uniqueId);
foreach (MimeEntity attachment in message.Attachments)
{
attachment.WriteTo("WhatIsTheFileName"); //How do I determine the file name
}
}
}
}
获胜者是......
attachment.ContentDisposition.FileName