Bitte verschieben, wenn es eine bessere Rubrik gibt.
Keine Frage, sondern eine Beobachtung, die für den einen oder anderen vielleicht auch hilfreich ist:
Ich habe seit der Umstellung auf PHPmailer 5.0 Probleme mit verschiedenen Mailinglisten. Zu beobachten ist beim Versand folgende Fehlermeldung:
[emailadresse] - You must provide at least one recipient email address.
Die angemotzten Emailadressen haben alle eins gemeinsam: Sie haben einen Punkt genau vor dem @-Zeichen: foo.@example.org
Die Fehlermeldung wird erzeugt durch diesen Code im PHPmailer:
Zeile 464:
PHP-Code:
public static function ValidateAddress($address) {
if (function_exists('filter_var')) { //Introduced in PHP 5.2
if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) {
return false;
Der PHP-Filter sortiert diese Emailadressen deshalb aus, weil sie tatsächlich nicht RFC-kompatibel sind. Punkte vor dem @ sind tatsächlich per RFC ausgeschlossen.
Tatsache ist aber, dass viele Mailprovider das offensichtlich zulassen oder zugelassen haben. Die Adressen in der Liste sind DOI-geprüft und müssen daher auch existieren. Die Regex, mit der die Adressen damals vorgeprüft wurden, hat das durchgelassen. Die alte PHP-Mailer-Version hat die FILTER-Funktion anscheinend nicht genutzt, es war mir da jedenfalls niemals aufgefallen.
Ich habe mir dadurch geholfen, dass ich den PHPmailer gepatcht habe und keine
Prüfung mehr beim Mailversand mache.
Es stellt sich zugleich auch die Frage, ob man hier sogar von einem Bug in PHP ausgehen kann. Zwar wird das Email-RFC korrekt abgebildet, doch entspricht das Verhalten eben nicht der Realität.