MailKit scheint EML- und XML-Anhänge nicht in die Liste „message.Attachments“ aufzunehmenC#

Ein Treffpunkt für C#-Programmierer
Guest
 MailKit scheint EML- und XML-Anhänge nicht in die Liste „message.Attachments“ aufzunehmen

Post by Guest »

Ich entwickle eine einfache Dot Net8-Konsolenanwendung, um MailKit mit einem lokalen zertifizierten E-Mail-PEC-Anbieter mithilfe des IMAP-Protokolls zu überprüfen
(Zertifizierte E-Mail / PEC ist eine E-Mail System, in dem der Nachrichtenversand und die Zustellung an das Postfach des Empfängers verfolgt und zertifiziert werden.)
Eine zertifizierte Nachricht ist wie eine „einfache“ E-Mail-Nachricht, die einen Text und/oder einen HTML-Text enthalten sollte und mindestens drei Anhänge:
  • ein „smime.p7s“ mit der digitalen Signatur
  • eine EML-Datei „postacert.EML“, die enthält die Benutzernachricht
  • eine XML-Datei „daticert.XML“, die Informationen über die Übertragung der E-Mail enthält, wie z. B. Absender, Empfänger, Betreff der E-Mail, Aussteller des PEC, Tag, Uhrzeit und andere Informationen
Ich kann die gesamte Nachrichtenliste auf dem Remote-Server lesen und jede einzelne E-Mail enthält alle erwarteten Komponenten (von: bis: Betreff: Textkörper, HTML-Hauptteil usw.)
Das seltsame Verhalten von MailKit besteht darin, dass jede Nachricht nur einen Anhang zu haben scheint, die Signaturdatei „smime.p7s“, und ich den EML-Text und die XML-Übertragungsverfolgungsinformationen nicht sehen kann.
Anhangsliste, die nur ein Element enthält
Details zur Anhangsliste
Anhand des Webmail-Frontends des Anbieters kann ich sehen, dass diese beiden Anhänge tatsächlich vorhanden sind und den richtigen Namen haben.
Details zu Webmail-Anhängen
Beim Debuggen des einfachen Codes kann ich sehen, dass jede gelesene Nachricht die Liste „.Attachments“ enthält, die nur ein Element an Position [0] enthält. und zeigt auf die Signaturdatei "smime.p7s".
Wissen Sie, warum die Anhangsliste nicht die XM-Land-EML-Datei enthält?
Gibt es in MailKit eine Beschränkung oder eine Ausschlussbedingung für Diese beiden Arten von MIME-Teilen?
Und können Sie in diesem Fall eine andere Möglichkeit vorschlagen, alle Nachrichtenanhänge korrekt abzurufen?
Vielen Dank im Voraus für Ihre Aufmerksamkeit und Ihre Unterstützung.
Marco.

Code: Select all

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();
}
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post