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