Я пытаюсь загрузить вложение электронной почты из электронного письма, хранящегося в моем почтовом ящике Gmail. Используя S22.Imap lib (https://github.com/smiley22/S22.Imap) Я получаю список сообщений, а затем перебираю их для загрузки вложений. Проблема у меня в том, что MailMessage.Attachments.Count всегда 0, даже если файл определен. Вот мой код для загрузки вложений.S22.Imap Attachment Count Always Return 0
foreach (MailMessage m in messages)
{
if(m.Subject.Contains("Activity Statement") && (m.Attachments.Count > 0))
{
foreach (Attachment a in m.Attachments)
{
var fileStream = File.Create(Properties.Settings.Default.ETL_ATTACHMENT_PROCESSING_DIR + a.Name);
a.ContentStream.Seek(0, SeekOrigin.Begin);
a.ContentStream.CopyTo(fileStream);
fileStream.Close();
}
}
}
message.Attachments всегда пуст, поэтому код сохранения вложений никогда не запускается. Даже когда есть определенная привязанность в сообщении, похоже, она не забирает ее. Возможно, я не совсем понимаю состав IMAP-сообщения? –
Возможно, вы захотите дать [MailKit] (https://github.com/jstedfast/MailKit) попытку. – jstedfast
Относительно статуса прикрепления: некоторые части тела считаются вложениями, некоторые из них объявлены не такими, но многие (возможно, большинство) не объявлены, а классификация зависит от читателя. S22, и вы вполне можете не согласиться с тем, как классифицировать что-то. Если S22 делает попытку. Я подозреваю, что Mailkit согласится с вами больше. – arnt