Bounce-Parser die Zweite
Johnny B.
- perl
Hallo geehrtes Forum,
als ich mir das Modul zur Erkennung von Bouncemails angeschaut habe, wurde klar, daß es gemacht ist, direkt eine Bounce-Back-Mailbox abzufragen.
Ich hatte irgendwann mal von einer 'Errors-To:'-Angabe im Mailheader gehört, an die dann sämtliche Delivery Status Notifications umgeleitet werden. Das ist ja aber gar nicht richtig, siehe hier.
Verschicken möchte ich die Mails mit Net::SMTP. Hier finden sich vielversprechende Parameter unter 'ESMTP OPTIONS', wobei ich nirgendwo ein Beispiel gefunden habe, wie diese anzugeben sind. Drunter steht 'The Return and Envelope parameters are used for DSN (Delivery Status Notification).'
Return => "FULL" | "HDRS"
Envelope => <ENVID> # xtext-encodes its argument
ENVID => <ENVID> # similar to Envelope, but expects argument encoded
Das sagt mir gar nichts. xtext-encodes? Wie gebe ich das richtig an?
Hier fand ich eine ganz ähnliche Frage in diesem Forum. Auch hier ein vielversprechendes Zitat:
Im RFC2821 steht:
The primary purpose of the Return-path is to designate the address to
which messages indicating non-delivery or other mail system failures
are to be sent.
Wenn ich jedoch den Return-Path ändere, gehe doch ALLE Antworten dorthin, oder nicht? Es verdichtet sich mir der Eindruck, es ist tatsächlich einfacher, wenn ich _alle_ Antworten auf meinen Mail-Client laufen lasse, dort eine Nachrichten-Regel erstelle und alle 'failure notice' wieder an eine extra Mailbox weiterleite, wo sie dann mit einem selbstgeschriebenen Script (weil ja Mail::DeliveryStatus::BounceParser nur direkte Bouncemails korrekt analysieren kann) analysiert und bearbeitet werden, als die Bounce-Mails direkt umzuleiten und Mail:DS:BP nutzen zu können. Ich finde einfach kein Beispiel, wie solche Parameter richtig gesetzt werden. Vielleicht geht es ja auch gar nicht? Dann wiederum hat Mail::DS::BP keine Daseinsberechtigung?
Grübelnde Grüße
JOhnnY
Hallo Johnny,
grundsätzlich sind für das Arbeiten mit und das Versenden von Mails die RFCs 5322 und 5321 maßgeblich.
Ich hatte irgendwann mal von einer 'Errors-To:'-Angabe im Mailheader gehört, an die dann sämtliche Delivery Status Notifications umgeleitet werden. Das ist ja aber gar nicht richtig, siehe hier.
Dieser Header ist weder im Internet Message Format noch im SMTP vorhanden. Er wird in RFC 2076 als "Non-standard, discouraged." aufgeführt. Seine Verwendung ist also, gemessen am erwarteten Ergebnis, riskant.
Verschicken möchte ich die Mails mit Net::SMTP. Hier finden sich vielversprechende Parameter unter 'ESMTP OPTIONS', wobei ich nirgendwo ein Beispiel gefunden habe, wie diese anzugeben sind. Drunter steht 'The Return and Envelope parameters are used for DSN (Delivery Status Notification).'
Return => "FULL" | "HDRS"
Envelope => <ENVID> # xtext-encodes its argument
ENVID => <ENVID> # similar to Envelope, but expects argument encodedDas sagt mir gar nichts. xtext-encodes? Wie gebe ich das richtig an?
Ein Blick in die für Delivery Status Notification maßgebliche RFC 3461 erhellt, was damit gemeint ist.
Hier fand ich eine ganz ähnliche Frage in diesem Forum. Auch hier ein vielversprechendes Zitat:
Im RFC2821 steht:
The primary purpose of the Return-path is to designate the address to
which messages indicating non-delivery or other mail system failures
are to be sent.Wenn ich jedoch den Return-Path ändere, gehe doch ALLE Antworten dorthin, oder nicht?
Obacht! RFC 2821, welche durch RFC 5321 abgelöst wurde, beschreibt das SMT-Protokoll! Return-Path-Header ist eine Trace Information (ganz interessant in dem Zusammenhang sind auch die Ausführungen unter Reliable Delivery and Replies by Email).
Es verdichtet sich mir der Eindruck...
Mails und dessen Versandt gehören wirklich zu einer der komplexisten Themengebiete. Es gibt Erweiterungen hier und da, die berücksichtigt werden wollen, und zu allem Überfluss sind die Header der Nachrichten und des Protokolls teilweise verschränkt. Egal also was Du machen willst, was ganz nebenbei nicht wirklich deutlich wurde, suche Dir einen Weg, der für Dich praktikabel ist.
Gruß aus Berlin!
eddi
Hallo eddi,
vielen Dank für Deine Antwort. RFCs sind schwere Kost...
Egal also was Du machen willst, was ganz nebenbei nicht wirklich deutlich wurde, suche Dir einen Weg, der für Dich praktikabel ist.
Ich möchte Mails verschicken und die Mail-Delivery-Status-Mails, die daraufhin zurückkommen, die sollen nicht an die Absenderadresse zurückgeschickt werden, sondern an eine andere Adresse. Das wäre schon alles...
Besten Gruß
JOhnnY
Zitat von http://www.perlmonks.org/?node_id=345530:
| The only way to control where bounce messages go is by changing the envelope
| sender in SMTP. [...] The envelope sender can be different than From: header
| but this requires more control of the sending process.
Dies erreichst du ganz leicht mittels http://p3rl.org/Email::Sender::Manual::QuickStart#envelope_information.