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 = '')
Code: Alles auswählen
$mail_to = (trim($mail_to) == '') ? 'Undisclosed-recipients:;' : trim($mail_to);
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