Hallo Frank,
sorry, ich hab' Dich wahrscheinlich ein wenig in die Irre geleitet (hab' selber lange nicht mehr mit eMail-Handling gearbeitet
).
Wenn Du Dir den Rest des Protokolls anschaust, wirst Du sehen, das die eigentliche Nachricht nach dem
Zitat:
354 Start mail input; end with <CRLF>.<CRLF>
erscheint.
Dies ist die Originalnachricht wie sie vom Client übermittelt wird. Bis dahin hat Dein Server nichts an dieser Nachricht geändert!
Zum Ablauf:
Im Part RCPT TO ist es Deine Aufgabe die übermittelten Adressen zu prüfen und entweder zu zulassen oder abzulehnen (bzw. mitteilen, das sie weitergeleitet werden). Da Dir in diesem Schritt (also bei OnRcptTo) ALLE Adressen der Nachricht übermittelt werden, mußt Du sie hier sammeln! Nach Übermittlung der eigentlichen Nachricht kannst Du sie (die Nachricht) speichern (Platte, Datenbank, Memory; völlig egal). I.d.R. liest Du sie in ein IdMessage ein. Hier sind jetzt die Adressen die alle Empfänger sehen dürfen (To und
CC Inhalte). Es fehlen, wie Du richtig erkannst, hast die BCC-Adressen. Jetzt brauchst Du "nur noch" die bei OnRcptTo gesammelten Adressen mit denen aus To und
CC vergleichen. Die die dort fehlen sind die gesuchten und nun können die benötigten BlindCarbonCopies erstellt werden (Für jeden Empfänger in BCC eine eigene OHNE die Angabe der Anderen !).
Den grundsätzlichen Ablauf kannst Du in den weiter oben verlinkten
RFC's nachlesen.
Ich hoffe ich habe das ganze einigermaßen verständlich dargestellt, wenn nicht frag' ruhig...