Mailinglisten-Archive |
Hallo! Vor einiger Zeit gab es schon einmal einen Thread zu Problemen mit Mail- Verschickerei unter PHP, damals kam der für mich schon wirklich weiterbringende Tip mit folgender Programm-Lösung: #--------------------------------------- function Mail_It($LocationOfSendmail, $ToAddress, $FromAddress, $AdditionalHeaders, $Subject, $MailText) { # Stand: 17.6.99 # verschickt die Mail über eine Process-Pipe an Sendmail. # # Rückgabe: wohl immer 1... # Leider gibt nämlich popen() IMMER einen $fp zurück, auch wenn es das # Programm unter dem angegebenen Pfad garnicht gibt... if (($fp = popen($LocationOfSendmail . " -t -f\"" . $FromAddress . "\"" ,"w"))!=0) { $out = "From: " . $FromAddress . "\n"; $out .= "To: " . $ToAddress ."\n"; $out .= "Subject: " . $Subject . "\n"; if ($AdditionalHeaders != "") { $out .= $AdditionalHeaders ."\n"; } $out .= "\n"; $out .= $MailText ."\n"; fputs($fp,$out); pclose($fp); return 1; } else { return 0; } } #--------------------------------------- Nun habe ich 2 Probleme: 1.) wenn auf meinem Internet-Server das Sendmail eben mal nicht tut, dann liefert popen() trotzdem nicht false, z.B. wenn der Pfad zu sendmail völlig falsch ist. Die Mail landet im Nirvana, keiner weiß davon. Weiß jemand eine Lösung, wie man zumindest das korrekte Piping an sendmail kontrollieren kann? 2.) Mit einer lösung via mail()-Aufruf war ich aus zwei Günden nicht glücklich geworden: - mail() kehrte auf dem Server meines Internet-Providers erst extrem spät zurück, teilweise fast 1 Minute Wartezeit! Dabei wurde die Mail eigentlich wohl recht schnell verschickt, denn selbst wenn man die Sanduhr der Bestätigungs-Seite (hing wegen mail()..) relativ schnell abbrach, war die Mail draußen! Der Provider fährt fast diesselbe Konfig. wie ich hier (Linux 2.0.x, Apache 1.3.x, PHP 3.07, sendmail 8.8.x) bei mir läufts prima! - mit mail() verschickte Mails tragen als Absender "nobody_(at)_mein.rechner.domain.com" oder sowas, irgendwo beim Transport im Internet hat dann meistens ein Sendmail wohl die MX-Einträge des Absenders gecheckt, mein Rechner hier hat natürlich keinen, die Mails verschwanden. Mit sendmail() kann ich immerhin den Absneder auch im Envelope modifizieren (über den -f-Switch, s.o.). Frage: habe ich die Problematik richtig gedeutet? ___________________________________________________ Uwe Renner <urenner_(at)_r-plex.com> r-plex GmbH, http://www.r-plex.com Danziger Str. 14 71093 Weil im Schönbuch Tel. 07157-520820 Fax 07157-520821 Amtsgericht Böblingen, HRB 4599
php::bar PHP Wiki - Listenarchive