phpbar.de logo

Mailinglisten-Archive

Probleme mit mail() und popen(..sendmail..)
Archiv Mailingliste php_(at)_infosoc.uni-koeln.de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Probleme mit mail() und popen(..sendmail..)



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

Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive