Код: Выделить всё
public async Task GetFileAsync(string messageId, string fileId, string fileName, string folderId = null)
{
using var client = await ConnectToImapServerAsync();
var currentFolder = await GetFolderAsync(client, folderId);
await currentFolder.OpenAsync(FolderAccess.ReadWrite);
if (!int.TryParse(messageId, out int parsedMessageId))
{
return null;
}
var message = await currentFolder.GetMessageAsync(parsedMessageId);
var mimePart = GetMessageAttachmentFilter(message, fileId, fileName);
if (mimePart is null)
{
return null;
}
using MemoryStream memoryStream = new MemoryStream();
await mimePart.Content.DecodeToAsync(memoryStream);
return new EmailFileInfo { Name = mimePart.FileName, ContentType = mimePart.ContentType.MimeType, Stream = memoryStream };
}
private MimePart GetMessageAttachmentFilter(MimeMessage message, string fileId, string fileName)
{
foreach (var attachment in message.Attachments)
{
var mimePart = (MimePart)attachment;
if (mimePart.ContentId == fileId || mimePart.FileName == fileName)
{
return mimePart;
}
}
foreach (var part in message.BodyParts)
{
var mimePart = (MimePart)part;
if (mimePart.ContentId == fileId || mimePart.FileName == fileName)
{
return mimePart;
}
}
return null;
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... a-pdf-file
Мобильная версия