"List:; syntax illegal for recipient addresses"

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Lucas1510
Mitglied
Beiträge: 823
Registriert: 04.07.2003 13:59

"List:; syntax illegal for recipient addresses"

Beitrag von Lucas1510 »

Hallo,

seit einiger Zeit bekomme ich immer wieder eMails von meinem Forum, wenn jemand über Antworten auf einen Beitrag unterrichtet werden möchte, so auch wieder heute:
The original message was received at Fri, 13 Feb 2004 10:22:14 +0100
from nobody@localhost

----- The following addresses had permanent fatal errors -----
Undisclosed-recipients:;

----- Transcript of session follows -----
553 5.1.3 Undisclosed-recipients:;... List:; syntax illegal for recipient addresses
Als Anhang ist zum einen eine Datei namens Att00006.dat mit folgendem Inhalt dabei:
Reporting-MTA: dns; serverXXX.webpack.hosteurope.de
Arrival-Date: Fri, 13 Feb 2004 10:22:14 +0100

Final-Recipient: RFC822; "553 List:; syntax illegal for recipient addresses"@serverXXX.webpack.hosteurope.de
X-Actual-Recipient: rfc822; "553 List:; syntax illegal for recipient addresses"@serverXXX.webpack.hosteurope.de
Action: failed
Status: 5.1.3
Last-Attempt-Date: Fri, 13 Feb 2004 10:22:14 +0100
sowie die eigentliche eMail:
Hallo!

Du erhältst diese E-Mail, weil du über Antworten zum Thema "CRANGER KIRMES!!!!!!!!!!" auf Zu den vier Winden benachrichtigt werden wolltest. Dieses Thema hat Antworten seit deinem letzten Besuch bekommen. Du kannst den folgenden Link benutzen, um direkt zum Thema zu gelanden[...]
Ich habe nicht die allerkleinste Ahnung wo das her kommt :(

Die Nachricht wird vom MAILER-DAEMON@serverXXX.webpack.hosteurope.de versendet, der Betreff lautet Returned mail: see transcript for details. Heisst das, daß jemand inzwischen seine im Forum angegebene eMail-Adresse geändert hat und somit nicht erreichbar ist?

Habt Ihr einen Tip für mich?

Danke,

viele Grüße,

Lucas
"Nein, Schatz, Du bist nicht dumm. Du bist sogar sehr hübsch!"
Benutzeravatar
Lucas1510
Mitglied
Beiträge: 823
Registriert: 04.07.2003 13:59

Beitrag von Lucas1510 »

Habt Ihr ´ne Idee?

Die eMail-Adressen, an die die Benachrichtigungen gehen, scheinen alle in Ordnung zu sein.

Gruß,

Lucas
"Nein, Schatz, Du bist nicht dumm. Du bist sogar sehr hübsch!"
larsk
Mitglied
Beiträge: 5
Registriert: 17.02.2004 00:43
Wohnort: Paderborn

Hatte ich auch

Beitrag von larsk »

Bin auch bei Hosteurope...

Hatte das auch und habe es wie folgt weg bekommen:

Ich habe dann "Nutze einen SMTP Server zum Mailen" aktiviert. Dann noch die passenden Einstellunegn (habe eine extra Mailaccount dafür angelegt) Damit läuft es dann wunderbar...

Gruss Lars.
Benutzeravatar
Lucas1510
Mitglied
Beiträge: 823
Registriert: 04.07.2003 13:59

Beitrag von Lucas1510 »

Hi,

danke, habe vorhin mal umgestellt auf SMTP und werde mal abwarten, ob ich wieder so eine Meldung bekomme, bis jetzt scheint´s aber zu klappen, es kam noch kein Fehler *freu*

Danke!! :grin:

Viele Grüße,

Lucas
"Nein, Schatz, Du bist nicht dumm. Du bist sogar sehr hübsch!"
at
Mitglied
Beiträge: 2
Registriert: 03.03.2004 17:45

Re: "List:; syntax illegal for recipient addresses"

Beitrag von at »

Hej!

> ----- The following addresses had permanent fatal errors -----
>Undisclosed-recipients:;
> ----- Transcript of session follows -----
>553 5.1.3 Undisclosed-recipients:;... List:; syntax illegal for recipient addresses[/quote]

Ich habe zum zweiten Mal in meinem Leben Kontakt mit PHP und zum ersten Mal mit phpBB und komme nur dadurch in die glückliche Lage, mich damit auseinanderzusetzen, weil ein User sich das installiert hat. Nachdem ich viel Raetselraten und einige lustige Meinungen zu dieser Fehlermeldung gelesen habe, möchte ich noch meine 2 Öre einwerfen.


Erstens:

Die Fehlermeldung ist berechtigt, soweit sie den sendmail oder sonstigen MTA betrifft und kein Fehler des Admins. Im To:-Header ist ein undisclosed-recipient:; nicht nur legal, sondern der RFC-konforme Weg, auszudruecken, dass man nicht verraet, wer aller die Nachricht erhalten hat. Als tatsaechlicher Empfaenger (Envelope-Recipient) darf undisclosed-recipient:; (oder sonst eine group gemaess RFC 2822 "3.4. Address Specification") aber nicht auftauchen.

Das Problem hier ist, dass der Undisclosed-recipient:; tatsaechlich in die Recipientliste geraet.


Zweitens:

So kommt es zu dem Fehler und deshalb funktioniert der "Verwende SMTP"-Trick:

phpBB hat offenbar zwei Methoden, mails zu versenden:

if ( $this->use_smtp )
{
... mache eine smtp-connection und schicke es so
}
else
{
...
$result = @mail($to, $this->subject, preg_replace("#(?<!\r)\n#s", "\n", $this->msg), $this->extra_headers);
...
}

Wenn man ein Bisserl weiter in include/smtp.php schaut, steht da:

if (preg_match('#[^ ]+\@[^ ]+#', $mail_to))
{
fputs($socket, "RCPT TO: <$mail_to>\r\n");
server_parse($socket, "250", __LINE__);
}

Nachdem ein Undisclosed-Recipients:; kein @ enthaelt, kommt diese Adresse nicht in die Envelope, daher ist alles in Ordnung und kein Fehler tritt auf. Der einzige Nachteil: Wenn der lokale SMTP-Server tot ist, etwa weil er wegen zu hohem Load keine Connections entgegennimmt, sterben auch die php-Scripts, die User hauen dadurch nur noch oefter auf ihre Maustasten, und der Load wird noch hoeher.

Prinzipiell ist es sinnvoll, statt Mail lokal per SMTP zu submitten, gleich den lokalen Mailer aufzurufen und seine Queueingmethoden zu verwenden. Genau das passiert, wenn...

... Wenn aber use smtp nicht eingeschaltet ist, verwendet phpBB die @mail-Funktion. Ich habe in der Dokumentation auf php.net keinen Pieps davon gesehen, aber das php.ini, das ich auf unserer Kiste gefunden habe, zeigt Erhellendes:

; For Unix only. You may supply arguments as well (default: 'sendmail -t -i').
;sendmail_path =

Die Katastrophe liegt im default. Der -t switch sagt naemlich dem sendmail, dass er die Adressen, die im Header stehen, als Recipients nehmen soll. Damit kommt, voellig gleich, was in den Parametern von @mail steht, durch die prinzipiell richtige "To: Undisclosed-recipients:;"-Headerzeile auch der undisclosed recipient in die Envelope-Recipients, und das ist nunmal nicht erlaubt.


Drittens daher:

Offensichtlich sind die defaults von php ein Griff in den Gatsch.

Nicht zufaellig wird beim Mailing (real life ebenso wie email) zwischen envelope und mail unterschieden. Mit @mail, soweit ich das in meinem kurzen Ausflug in die PHP-Welt nachvollziehen konnte, kann man zum Beispiel keine eMail-Weiterleitung machen, ohne dass der/die urspruengliche/n Empfänger nochmal eine Kopie bekommen würde.

Einfach die defaults in der Installation zu ändern, wird aber sicher einige Anwendungen ins Grab bringen.


Fazit: SMTP aktivieren und nie wieder an @mail denken.

Ciao

Alexander
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

Naja es liegt doch somit an einer Fehlkonfiguration der Server, die die Mail zurück schicken oder?
Also sollte man, wenn man den Fehler gemeldet bekommt, den Absender-Hoster/Provider drauf aufmerksam machen oder?

Grüße
Dennis
at
Mitglied
Beiträge: 2
Registriert: 03.03.2004 17:45

Beitrag von at »

Hej!
Dennis Böge hat geschrieben:Naja es liegt doch somit an einer Fehlkonfiguration der Server, die die Mail zurück schicken oder?
Kommt drauf an, was mit "dem Server" gemeint ist, und welche Massstaebe man ansetzt.

Man koennte dem sendmail -t vorwerfen, dass es nicht intelligent genug ist, die List-Syntax zu verstehen. Das ist aber dann auch keine Konfigurationssache, sondern eher ein Feature-Request (den ich, nicht daß das was bedeuten würde, unterstützen würde) an die sendmail-Leute und möglicherweise andere MTA-Schreiberlinge. Ich habe im google jedenfalls keinen Kommentar finden können, daß die sendmail-Leute das nicht machen würden oder warum.

Das grundlegende Problem ist m.E., dass @mail nicht zwischen Envelope Recipient und Recipient Headern unterscheiden kann. Empfänger und das was im Header steht, müssen ja nicht identisch sein.

Reallife-Analogie: Wenn ich vom Finanzamt einen Schrieb bekomme, dann stecke ich ihn in ein Couvert, schreibe die Adresse von meinem Steuerberater drauf und werfe es (mit Briefmarke) in den Briefkasten. Daran ist nichts Unnatürliches - dennoch: Am Umschlag steht als Empfänger mein Scheuerberater, im Brief am Briefkopf stehe als Empfänger immer noch ich.

Dasselbe hier: Empfangen soll's der Benachrichtigte, im Briefkopf soll aber "Undisclosed-recipients:;" stehen.

Mit Bcc: kann man sich ein wenig helfen. Aber auch das hilft nicht mehr sobald

a) der Undisclosed-Recipients:;-Unfall passiert, der sich durch mehr Funktionalität in sendmail beheben ließe oder

b) Empfänger, die in To: oder Cc: stehen, die Nachricht *nicht* bekommen sollen - bei jeder Art von Weiterleitung also (wie in meinem Finanzamtsbeispiel).

Es ist die @mail-Funktion schlichtweg zu einfach gestrickt, als dass sie der beinharten Realität gerecht werden könnte.

Letzteres ist ein fundamentaleres Problem, das sich durch keine Features in sendmail oder dessen Konfiguration beheben läßt.
Also sollte man, wenn man den Fehler gemeldet bekommt, den Absender-Hoster/Provider drauf aufmerksam machen oder?
Ich würde den Forenbetreiber aufmerksam machen, daß es dieses Problem gibt und er in der derzeitig real existierenden Welt und in diesem Fall besser SMTP verwendet.

Der Mailserver-Admin, der, aus guten oder schlechten Gründen, nicht von sendmail zu $toleranterer_mta_falls_es_sowas_gibt wechseln möchte, kann nur üble Hacks anwenden.

Ein unverfrorener Admin könnte folgerndermaßen workarounden:

Im File /etc/mail/submit.cf mache...

...aus:

Code: Alles auswählen

--8----------------------------------------------------------------------------------------------
SParse0
R<@>                    $@ <@>                  special case error msgs
R$* : $* ; <@>         $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
--8----------------------------------------------------------------------------------------------
mache:

Code: Alles auswählen

--8----------------------------------------------------------------------------------------------
SParse0
R<@>                    $@ <@>                  special case error msgs
#R$* : $* ; <@>         $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
R$* : $* ; <@>          $@ bogous@discard.
# Parse0 will eine gueltig aussehende Adresse haben, sonst gibts kein check_compat
--8----------------------------------------------------------------------------------------------
weiters bei check_compat:

Code: Alles auswählen

--8----------------------------------------------------------------------------------------------
Scheck_compat
R$* $| $*:$*;           $: $1 $| $2:$3; $(syslog "Discarding bogous: " $2:$3; $)
R$* $| $*:$*;           $#discard $: discard
--8----------------------------------------------------------------------------------------------
und, falls nicht eh schon geschehen, irgendwo bei den Maps:

Code: Alles auswählen

--8----------------------------------------------------------------------------------------------
Ksyslog syslog
--8----------------------------------------------------------------------------------------------
oder oben auf die Syslog-Zeile verzichten.

Wichtig zu wissen:

* Zwischen pattern und replacement muß ein oder mehrere Tabulatoren stehen - Blanks gehen nicht

* nachdem der Eingriff ziemlich tief in der Logik von submit.cf sitzt, geht das so nicht über submit.mc - mit der Folge, daß bei jedem Upgrade der Patch neu nachzuhupfen ist


Und all das nur, weil beim Design von @mail eine wichtige Feinheit nicht berücksichtigt wurde...


Eine Frage kommt mir da gerade in den Sinn: Was ist denn die Envelope-Senderadresse? Doch hoffentlich nicht $webserver-userid@$domain? Ich sehe in @mail jedenfalls nichts, womit ich die Absenderadresse setzen könnte, will das aber nicht vertiefen.

Ciao

Alexander, bekennender sendmail-fuzzi und php-ignorant
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“