私は他の例をオンラインで見ましたが、MimeMessageオブジェクトからすべての添付ファイルをダウンロードして保存する方法がわかりません。 私はWriteTo()を調べましたが、動作させることができませんでした。 添付ファイルが元のファイル名に従って保存されるかどうか、電子メールの中に入力するかどうかも疑問です。ここ は、私がこれまで持っているものです。MailKit:MimeMessageからすべての添付ファイルをローカルにダウンロードする方法
using (var client = new ImapClient())
{
client.Connect(Constant.GoogleImapHost, Constant.ImapPort, SecureSocketOptions.SslOnConnect);
client.AuthenticationMechanisms.Remove(Constant.GoogleOAuth);
client.Authenticate(Constant.GoogleUserName, Constant.GenericPassword);
if (client.IsConnected == true)
{
FolderAccess inboxAccess = client.Inbox.Open(FolderAccess.ReadWrite);
IMailFolder inboxFolder = client.GetFolder(Constant.InboxFolder);
IList<UniqueId> uids = client.Inbox.Search(SearchQuery.All);
if (inboxFolder != null & inboxFolder.Unread > 0)
{
foreach (UniqueId msgId in uids)
{
MimeMessage message = inboxFolder.GetMessage(msgId);
foreach (MimeEntity attachment in message.Attachments)
{
//need to save all the attachments locally
}
}
}
}
}
ファイル名にはいくつかのサニタイズを行う必要があります。ダストを確認し、不正な文字を削除する... – Max