MailMessage-Objekte als EML- oder MSG-Dateien beibehalten
Die .NET MailMessage
-Klasse bietet keine direkte Methode zum Speichern auf der Festplatte. Abhängig von Ihren Anforderungen gibt es jedoch Problemumgehungen, um dies zu erreichen.
Ein Ansatz besteht darin, die E-Mail-Zustellung mithilfe von SmtpClient
an das Dateisystem umzuleiten. Bei dieser Methode werden EML- oder MSG-Dateien nicht direkt erstellt, sondern Dateien, die später verarbeitet werden können.
Methode 1: Programmatische Konfiguration
Dieser Ansatz konfiguriert SmtpClient
so, dass E-Mails in ein bestimmtes Verzeichnis geschrieben werden:
<code class="language-csharp">SmtpClient client = new SmtpClient("mysmtphost"); client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; client.PickupDirectoryLocation = @"C:\somedirectory"; client.Send(message);</code>
Dadurch werden E-Mail-Dateien im angegebenen Verzeichnis erstellt. Ein separater Prozess kann dann die Weiterleitung dieser Dateien übernehmen.
Methode 2: App-Konfiguration
Alternativ können Sie die Zustellungsmethode über die Konfigurationsdatei Ihrer Anwendung konfigurieren:
<code class="language-xml"><configuration> <system.net> <mailSettings> <smtp deliveryMethod="SpecifiedPickupDirectory"> <specifiedPickupDirectory pickupDirectoryLocation="C:\somedirectory" /> </smtp> </mailSettings> </system.net> </configuration></code>
Damit wird das gleiche Ergebnis erzielt wie mit dem programmatischen Ansatz. Die E-Mail-Dateien werden im angegebenen Verzeichnis gespeichert und können anschließend verarbeitet werden.
Denken Sie daran, ein geeignetes Verzeichnis auszuwählen und sicherzustellen, dass Ihre Anwendung über die erforderlichen Berechtigungen zum Schreiben an diesen Speicherort verfügt. Diese Methode eignet sich für die Stapelverarbeitung oder für Szenarien, in denen keine sofortige Netzwerkübertragung erforderlich ist. Für die direkte EML/MSG-Dateierstellung müssten Sie Bibliotheken von Drittanbietern erkunden oder benutzerdefinierte Dateien basierend auf dem Inhalt der E-Mail-Nachricht schreiben.
Das obige ist der detaillierte Inhalt vonWie kann ich ein MailMessage-Objekt als EML- oder MSG-Datei auf der Festplatte speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!