Diejenigen, die so wie ich einen speziellen Parser für die Funktion mail() angeben (definiert über sendmail_path), werden sich schon oft über die Schweigsamkeit der Funktion mail() geärgert gewundert haben. Die Jungs von php.net haben nicht bedacht, das jemand vielleicht doch eine Fehlermeldung vom Parser (respektive von sendmail) erhalten möchte. Speziell geht es mir darum, dass ich ohne großen Aufwand für bestimmte User (in bestimmten Situationen) die Funktion mail() blockieren möchte.
Aus dem Grund habe ich mich gestern und heute mal mit der Standard-Funktion mail() befasst und einen kleinen Source-Hack geschrieben, welcher überprüft, ob eine Absenderadresse (diese definiere ich über sendmail_path als Parameter bereits vor!) auch wirklich nicht blockiert ist.
Folgende Fehlermeldung gibt der Source bei blockierten Usern aus:
Warning: mail() [function.mail]: Sorry, your mail-account has been blocked because of abuse! in /www/usersites/…3/test.php on line 2
Wer an dem Source interessiert ist, der muss PHP selbst kompilieren und Hand an der Datei ext/standard/mail.c anlegen. Meine Referenzen der Zeilennummern beziehe ich auf Version 5.2.6.
mail.c, Zeile 227 – 275, original von PHP 5.2.6
mail.c, Zeile 227 – 287, modifziert
Die zu blockierende Absenderadresse kann im Prinzip frei gewählt werden, ich habe mich jedoch für „@blocked-account.sys“ entschieden. Der Suchparameter wird in Zeile 229 meines modifzierten Sources definiert.
Sollte jemand qualitativ bessere Vorschläge (betreffend meiner C-Kenntnisse :D) haben, ich habe immer ein Ohr offen, danke.
Fragt der doch ausgerechnet mich:
Muhahahaha… *abpeck*