E-Mail Bugs eingegrenzt, betrifft u.a. SMTP Fehler 503

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
jleinenbach
Mitglied
Beiträge: 3
Registriert: 22.07.2006 03:40

E-Mail Bugs eingegrenzt, betrifft u.a. SMTP Fehler 503

Beitrag von jleinenbach »

Betrifft u. a. den Fehler 503 valid RCPT command must precede DATA

Bugs in include/smtp.php:

Im SMTP Protokoll ist die Angabe von RCPT TO: zwingend notwendig.
Wird in der smtp.php in der folgenden Funktion:

Code: Alles auswählen

function smtpmail($mail_to, $subject, $message, $headers = '')
eine leere Variable "$mail_to" übergeben, dann wird durch die folgende Zeile:

Code: Alles auswählen

$mail_to = (trim($mail_to) == '') ? 'Undisclosed-recipients:;' : trim($mail_to);
die Variable auf $mail_to = ''Undisclosed-recipients:;' gesetzt. Dies ist allerdings keine gültige E-Mail-Adresse. So, wie das programmiert ist, führt dies zwangsläufig dazu, dass kein RCPT TO: gesetzt wird, falls niemand auf die Idee kam, zusätzlich im Header BCC: oder CC: zu setzen.

Weiteres Problem: Auf TO: wird der übergebene Header im Gegensatz zu BCC: und CC: überhaupt nicht geprüft!

Aufmerksam wurde ich auf den Fehler durch die Option:

"Account-Freischaltung aktivieren", die ich auf "Durch den Admin" gesetzt hatte.

Der Board-Admin wird nicht benachrichtigt - und das verursacht den Fehler 503. Der User erhält dennoch seine Begrüßung.

Die Variable $mail_to wird nun offenbar leer übergeben, der Empfänger ist zwar im Header enthalten, wird aber ignoriert.

Da nun aber die Funktion smtpmail eben nicht auf "TO:" im Header überprüft, gibt es keinen RCPT TO: - und die Mailserver beschweren sich nur im günstigsten Fall.

Dass hier bei der Programmierung grundsätzlich etwas schiefgelaufen ist, sieht man an der nie verwendeten Variablen $to_header. Der ganze Abschnitt zur header-Behandlung muss neu geschrieben werden. Vielleicht setze ich mich da mal die nächste Tage mal dran.

Weitere Bugs:

Da es nun nicht der Sinn sein kann, die Fehler, die durch einen fehlerhaften Aufruf in der aufgerufenen Funktion zu beheben, ist der Fehler zudem an anderer Stelle zu suchen:

Es sollte eigentlich nie vorkommen, ein TO: im Header zu setzen, ohne gleichzeitig die Variable $mail_to zu übergeben. Aus dem gleichen Grund tritt dieser Fehler auch ohne Verwendung eines SMTP-Servers auf.

Im Quelltext habe ich mir das aber noch nicht angesehen.


Gruß
Jens Leinenbach
Feanor
Mitglied
Beiträge: 32
Registriert: 19.06.2002 19:14
Kontaktdaten:

Beitrag von Feanor »

Dass hier bei der Programmierung grundsätzlich etwas schiefgelaufen ist, sieht man an der nie verwendeten Variablen $to_header. Der ganze Abschnitt zur header-Behandlung muss neu geschrieben werden. Vielleicht setze ich mich da mal die nächste Tage mal dran.
Das wäre nett, wenn du dich darum kümmern würdest. Ich hab's noch nicht gebacken bekommen meinen fast 3000 Mitgliedern einen Newsletter zu schicken über das ACP.
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

phpbb.de ist die deutsche Supportseite.


Bugmeldungen bitte an die Hersteller des phpBB's melden:

http://www.phpbb.com/bugs/


Grüße
Dennis
jleinenbach
Mitglied
Beiträge: 3
Registriert: 22.07.2006 03:40

Beitrag von jleinenbach »

@ Dennis: Ich habe das jetzt mal in den Bugtracker eingegeben. Danke für den Hinweis. Meine umprogrammierte smtp.php konnte ich dort leider nicht gleich hochladen, habe dafür aber meine E-Mail-Adresse angegeben.

@ Feanor: Ob die Änderung Probleme beim Massenversand behebt, kann ich dir leider nicht sagen. Habe dir aber eine pm geschickt, falls du die Datei testen willst.

Falls überhaupt kein Empfänger ermittelt werden konnte (auch nicht über "to" im Header), so lasse ich an die board email-Adresse eine Fehlermeldung mit der nicht zustellbaren Mail verschicken. Falls auch die Board-E-Mail-Adresse nicht konfiguriert sein sollte, wird jetzt eine spezifische Fehlermeldung ausgegeben, statt die Fehlerbehandlung dem Mailserver zu überlassen.


Schönen Gruß
Jens Leinenbach
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
was ist denn aus der Sache geworden?

Ich kämpfe auch gerade mit einer Meldung
503 bad sequence of commands
. Diese kommt, wenn ich folgendes laufen lasse:

Code: Alles auswählen

				$sql = "SELECT user_email, user_lang 
					FROM " . USERS_TABLE . "
					WHERE user_level = " . ADMIN;
				
				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, 'Could not select Administrators', '', __LINE__, __FILE__, $sql);
				}
				
				while ($row = $db->sql_fetchrow($result))
				{
					$emailer->from($board_config['board_email']);
					$emailer->replyto($board_config['board_email']);
					$emailer->email_address(trim($row['user_email']));
					$emailer->use_template('user_activate_passwd_webmaster', $row['user_lang']);
					$emailer->set_subject($lang['New_password_activation']);
					$emailer->assign_vars(array(
						'SITENAME' => $board_config['sitename'], 
						'USERNAME' => $username,
						'PASSWORD' => $user_password,
						'EMAIL_SIG' => (!empty($board_config['board_email_sig'])) ? str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']) : '', 
						'U_ACTIVATE' => $server_url . '?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey
					));
					$emailer->send();
					$emailer->reset();
				}
				$db->sql_freeresult($result);
Danke und Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Benutzeravatar
Martin Truckenbrodt
Mitglied
Beiträge: 1143
Registriert: 15.08.2003 23:16
Wohnort: Südthüringen
Kontaktdaten:

Beitrag von Martin Truckenbrodt »

Hallo,
ich habe mein Problem gelöst.
Der open gepostete Code ist i.O.
Im Anschluß an die Mails an die Administratoren wird noch eine Mail an den Benutzer verschickt. Hier gab es eine Überschneidung mit den Variablennamen. :oops:

Gruß Martin
Advanced Block MOD 1.1.4 ist released! - Verhindere Spam auf Deinem phpBB3 Board mit Stop Forum Spam, BotScout, Akismet, Project Honey Pot und verschiedenen IP-RBL und Domain-RBL DNS Blacklisten! - Meine MODs - phpBB Complete Core
Antworten

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