Кажется, MailKit не включает вложения EML и XML в список «message.Attachments».C#

Место общения программистов C#
Ответить
Anonymous
 Кажется, MailKit не включает вложения EML и XML в список «message.Attachments».

Сообщение Anonymous »

Я разрабатываю простое консольное приложение Dot Net8 для проверки MailKit у местного сертифицированного провайдера электронной почты PEC с использованием протокола IMAP
(Сертифицированная электронная почта / PEC — это электронная почта система, в которой отправка и доставка сообщений в почтовый ящик получателя отслеживаются и сертифицируются.)
Сертифицированное сообщение похоже на «простое» сообщение электронной почты, которое должно содержать текст и/или тело HTML. и по крайней мере три вложения:
  • smime.p7s с цифровой подписью
  • ан Файл EML «postacert.EML», содержащий сообщение пользователя.
  • файл XML «daticert.XML», содержащий информацию о передаче почты, такую ​​как отправитель, получатели, тема письма, эмитент ПИК, день, время и др. информация
Я могу прочитать весь список сообщений на удаленном сервере, и каждое электронное письмо содержит все ожидаемые компоненты (от: до: тема: текстовое тело , тело HTML и т. д.)
Странное поведение MailKit заключается в том, что каждое сообщение имеет только одно вложение, файл подписи "smime.p7s" и Я не вижу тела EML и информации отслеживания передачи XML.
Список вложений, содержащий только один элемент
Детали списка вложений
Используя интерфейс веб-почты провайдера, я вижу, что эти два вложения на самом деле присутствуют и имеют правильное имя.
Подробности о вложениях веб-почты
Во время отладки простого кода я вижу, что каждое прочитанное сообщение имеет расширение «.Attachments». Список, содержащий только один элемент в позиции [0], указывающий на файл подписи «smime.p7s».
Знаете ли вы, почему список вложений не содержит XM и файл EML? ?
Есть ли в MailKit ограничение или условие исключения для этих двух типов частей mime?
И в этом случае можете ли вы предложить другой способ правильно получить все вложения к сообщению?
Заранее спасибо за ваше внимание и поддержку.
Марко.
using System;
using MailKit.Net.Imap;
using MailKit;
using MimeKit;
using System.Reflection.Metadata.Ecma335;
class Program
{

static void Main(string[] args)
{
var client = new ImapClient();
try
{
client.Connect("imaps.pec.aruba.it", 993, true);
client.Authenticate("*********@pec.it", "*******");
client.Inbox.Open(FolderAccess.ReadOnly);

for (int i = 0; i < Math.Min(10, client.Inbox.Count); i++)
{
var message = client.Inbox.GetMessage(i);
Console.WriteLine($"Message {i} - Subject: {message.Subject}");
Console.WriteLine($"From: {message.From}");
Console.WriteLine($"Date: {message.Date}");
Console.WriteLine($"Body: {message.TextBody}");

Console.WriteLine($"Body: {message.HtmlBody}");
Console.WriteLine(new string('-', 30));

foreach (MimeEntity attachment in message.Attachments)
{
var fileName = attachment.ContentDisposition?.FileName ?? attachment.ContentType.Name;
Console.WriteLine($"Filename: {fileName}");

}

Console.WriteLine(new string('=', 50));

}
client.Disconnect(true);
}
catch (Exception excp)
{
Console.WriteLine($"Exception: {excp.Message}");
}
finally
{
client.Dispose();
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... hments-lis
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»