Denny Geschrieben 1. März 2013 Teilen Geschrieben 1. März 2013 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
uenetz Geschrieben 1. März 2013 Teilen Geschrieben 1. März 2013 (bearbeitet) 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 2013 von uenetz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Denny Geschrieben 1. März 2013 Autor Teilen Geschrieben 1. März 2013 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
uenetz Geschrieben 1. März 2013 Teilen Geschrieben 1. März 2013 Eine Möglichkeit wäre diese Informationen zusätzlich in den Body zu schreiben vor dem Weiterleiten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Denny Geschrieben 1. März 2013 Autor Teilen Geschrieben 1. März 2013 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
uenetz Geschrieben 1. März 2013 Teilen Geschrieben 1. März 2013 Genau ... Wie es ausschaut, werden auch nur From, Subject, Body und die Attachments vom Pop-Conn. ausgelesen. Von Envelop steht da nix. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Denny Geschrieben 1. März 2013 Autor Teilen Geschrieben 1. März 2013 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Denny Geschrieben 1. März 2013 Autor Teilen Geschrieben 1. März 2013 Nachtrag: Den C#-Code aus dem zweiten Link kann man problemlos in VB.NET umwandeln, z.B. hier Code Converter | Provided by Telerik Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.