Veröffentlicht 1. März 201312 j Moin! Da mir die rückständige Oberfläche und unübersichtliche Bedienung von diversen POP-Connectoren auf die Nerven geht, habe ich mich entschlossen, meinen eigenen zu schreiben. Ziel ist, eingehende Mails vom Provider abzuholen und an den internen Exchange Server (2007 bzw. 2010) weiterzuleiten. Mit dem pop3-Receiver von openpop (OpenPop.NET - Robust POP3 client and MIME parser written in C#) funktioniert das Abholen schon mal ganz gut, doch beim Weiterleiten hapert's dann. Es gibt zwar die Methode Message.ToMailMessage (Message.ToMailMessage Method), mit der man das ganze dann über die SMTP-Funktionen von .NET weiterleiten kann - aber, wie hier schon richtig aufgeführt wird, erhält jeder, der im To und Cc aufgeführt ist, die Mail nochmal: You should be aware of the following about this method: All sender and receiver mail addresses are set. If you send this email using a SmtpClient then all receivers in To, From, Cc and Bcc will receive the email once again. If you view the source code of this Message and looks at the source code of the forwarded MailMessage returned by this method, you will notice that the source codes are not the same. The content that is presented by a mail client reading the forwarded MailMessage should be the same as the original, though. Content-Disposition headers will not be copied to the MailMessage. It is simply not possible to set these on Attachments. HTML content will be treated as the preferred view for the Body. Plain text content will be used for the Body when HTML is not available. Das bedeutet, dass ich bei einer Mail von extern, die beispielsweise an zwei interne Empfänger in meiner Organisation gerichtet ist, die Mail von beiden Postfächern beim Provider abhole und dann beim SmtpClient.send ungklücklicherweise jeweils an beide versende. D.h. jeder würde die Mail zwei Mal bekommen. Gewünscht ist allerdings, dass nur dem Empfänger, der im "Envelope-To" steht, sie auch zugestellt bekommt. Wie machen das die gängigen POP-Connectoren? Oder gibt es eine andere lib, die das kann? Wäre über Antworten sehr dankbar Grüße, Den
1. März 201312 j Servus, vielleicht solltest Du mal die Methode posten, die für die Weiterleitung der Mails verantwortlich ist. Am POP-Connector kann das wohl nicht liegen. Im POP-Connector habe ich gelesen, dass Du auch den Header auslesen kannst. Dann dürfte es doch kein Problem sein, Envelope-To auszulesen und diese Adresse in Mail-To zu schreiben. ... denke ich mir mal so Bearbeitet 1. März 201312 j von uenetz
1. März 201312 j Autor Hm? Hab ich doch -> SmtpClient.send Das ist die .NET-Methode für den SMTP-Versand aus System.Net.Mail - SmtpClient-Klasse (System.Net.Mail) Aber vielleicht bin ich auch auf dem komplett falschen Weg, das zu erreichen? Wenn ich allerdings MailMessage.To.clear mache und den To aus dem envelope-to einfüge, sieht der Empfänger nicht mehr, an wen die Mail ursprünglich alles gerichtet war. Z.B. um ein "Antworten an alle" zu starten.
1. März 201312 j Eine Möglichkeit wäre diese Informationen zusätzlich in den Body zu schreiben vor dem Weiterleiten.
1. März 201312 j Autor Aber die Zustellung über SmtpClient.send funktioniert doch über die To, Cc und Bcc-Properties, oder? Hab' mir auch gerade mal die .eml angeschaut, die OpenPop nach dem Konvertieren in die MailMessage-Klasse erzeugt... Ist auf jeden Fall keine 1:1-Kopie mehr und der envelope-to wird auch rausgeschmissen. Gibt's vielleicht noch andere Möglichkeiten, das zu bewerkstelligen?
1. März 201312 j Genau ... Wie es ausschaut, werden auch nur From, Subject, Body und die Attachments vom Pop-Conn. ausgelesen. Von Envelop steht da nix.
1. März 201312 j Autor Sodala... Problem behoben! Benutze jetzt einen anderen POP-Receiver, und zwar den hier: Send (SMTP) and Receive (POP3) Email with Ease under VB.NET by David Ross Goben Astrein dokumentiert und liefert die komplette Mail als POP3Message.Message, die man per SMTP an den Empfänger leitet. Und zwar hiermit: SMTP with .NET Micro Framework - Netduino Plus and Netduino Plus 2 - Netduino Forums Im Grunde simple SMTP-Kommandos, die man dem Server mitsamt der runtergeladenen Message schickt. Damit kann sich nun jedermann einen eigenen POP-Connector basteln und Lizenzkosten sparen Wer noch Infos möchte, kann sich ja gerne melden. Danke auch für die Denkanstöße
1. März 201312 j Autor Nachtrag: Den C#-Code aus dem zweiten Link kann man problemlos in VB.NET umwandeln, z.B. hier Code Converter | Provided by Telerik
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.