У меня есть этот код, который действительно работает во всех случаях, кроме случаев, когда изображение отправляется устройством IOS, в этом случае вложения отображаются пустыми.
Я подключаюсь через IMAP и беру UIDS, затем извлекаю информацию об электронной почте, сохраняю вложения и сохраняю всю электронную почту.
Все в порядке, кроме случаев, когда отправитель прикрепляет документы или изображения с помощью IOS, в этом случае код не может найти никаких документов.
Что мне делать?
Спасибо
try {
IMailFolder mailFolder = imapClient.GetFolder(Folder);
mailFolder.Open(FolderAccess.ReadOnly);
MimeMessage m = mailFolder.GetMessage(new UniqueId(Decimal.ToUInt32(UID)));
//MailMessage m = imapClient.GetMessage(UID, false, false);
Subject = m.Subject;
From_Name = (m.Sender != null) ? m.Sender.ToString() : "";//m.Sender.DisplayName;
From_Address = (m.From != null) ? m.From.ToString() : "";
Cc_Address = (m.Cc != null) ? m.Cc.ToString() : "";
Date_Sent = m.Date.DateTime;
MessageID = m.MessageId;
Body = m.TextBody;
m.WriteTo (EmailName);
if ( Save_Attachments && Attachments_Path != "") {
System.IO.Directory.CreateDirectory(Attachments_Path);
DataTable dt = new DataTable();
dt.Columns.Add("Path", typeof(String));
foreach (MimeEntity attachment in m.Attachments)
{
if (attachment is MimePart)
{
MimePart part = (MimePart)attachment;
string path = System.IO.Path.Combine(Attachments_Path, removeIllegal(part.FileName));
using (var stream = File.Create(path))
{
part.Content.DecodeTo(stream);
}
DataRow dr = dt.NewRow();
dr["Path"] = path;
dt.Rows.Add(dr);
}
}
Attachments = dt;
} else {
Attachments = null;
}
}
catch (Exception ex) {
Subject = "";
From_Name = "";
From_Address = "";
Cc_Address = "";
Date_Sent = new DateTime();
MessageID = "";
Body = "";
Attachments = null;
throw ex;
}