Mit dem SmtpClient
und MailMessage
classes in. NET, um E-Mails über einen lokalen Mail-Server (hMailServer) zu senden, habe ich derzeit keine Möglichkeit gefunden, den Message-ID
Header-Wert einer gesendeten Nachricht zu erhalten.Kann die "Message-ID" einer mit SmtpClient gesendeten E-Mail-Nachricht erfasst werden?
Die Idee hinter
Ich versuche programmatisch Nachrichten zu verfolgen, die nicht zustellbar sind, so habe ich einen Weg finden, die Antworten des Ziel-SMTP-Server, der eine bestimmte Nachricht ablehnt zu identifizieren.
Jetzt dachte ich einfach daran, den SMTP-Header-Wert Message-ID
zu erinnern und eingehende Mails für diese ID zu analysieren.
Ich habe versucht, die Headers
collection nach dem Senden der Nachricht zu überprüfen, aber ich habe keine Message-ID
gefunden.
Meine Frage
Ist es möglich, den Message-ID
Header-Wert zu erhalten, die meine SMTP-Server beim Senden eines MailMessage
Instanz hinzufügt?
-Update 2012-05-27
Per this example ich erfolgreich manuell versucht haben, einen Message-ID
auf meinem eigenen zu erzeugen, gerade vor dem Senden.
Alle meine Beispiele arbeiten so weit, so dass es scheint , dass dies eine Lösung für meine Frage ist.
Ich bin ziemlich sicher, dass die ID vom SMTP-Server zugewiesen wird, und das SMTP-Protokoll nicht angibt, diesen Wert zurück an den Client zu senden. Eine Möglichkeit wäre, die gleiche Nachricht an ein Konto zu senden, das Sie steuern, und die Nachrichten-ID aus dieser Nachricht zu extrahieren. Angenommen, die Nachrichten-ID wird beim ersten SMTP-Server einmal generiert. Eine andere Möglichkeit besteht darin, der E-Mail ein benutzerdefiniertes "X-Tag" hinzuzufügen. –
Danke, @ JeremyHolovacs - Ich habe bereits versucht, ein benutzerdefiniertes Tag hinzuzufügen (nicht mit "X-" Präfix, aber es scheint, dass dieses Tag beim Weiterleiten oder Beantworten der Nachricht verloren geht). –
Leider per http://stackoverflow.com/questions/7095104/how-to-confirm-that-mail-has-been-de- oder nicht gibt es keine kugelsichere Methode dafür. –