prosch
Goto Top

PHP Installation auf WIndows Server 2003 64 bit?

Wir haben einen Windows Server 2003 64 Bit, mein Problem besteht nun darin PHP darauf korrekt zu installieren, ich habe PHP schon installiert nun kommt bei unserem Kontaktformular folgende Fehlermeldung beim abschicken des Formulars:


„Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\uebersetzung-englisch-deutsch\uebersetzungsbuero\kontaktabschicken.php on line 8“  


Bei dem Captcha auf dem Formular gab es auch noch ein "rotes Kreuz".

Die Fehlermeldungen, wenn ein Feld nicht korrekt ausgefüllt wird wie z. B. die E-Mail funktionieren sehr gut.

Ich würde mich auf eine schnelle Hilfe freuen.

Content-ID: 145270

Url: https://administrator.de/contentid/145270

Ausgedruckt am: 25.11.2024 um 07:11 Uhr

RedEye
RedEye 21.06.2010 um 15:14:42 Uhr
Goto Top
"Auch" Hallo,

das hat nichts mit der Installation von PHP zu tun, sondern mit der Konfiguration.
Die Warnmeldung sagt das die php.ini nicht richtig konfiguriert ist, siehe Manual: http://php.net/manual/en/function.mail.php

--
LG
RedEye
prosch
prosch 30.06.2010 um 16:11:05 Uhr
Goto Top
Vielen Dank für deine Hilfe

Das funktioniert leider nicht mit der o. g. Seite.

hier nun weitere Fehlermeldungen und das komplette Script

Warning: fread(): supplied argument is not a valid stream resource in C:\xxx on line 251 

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xxx on line 268   

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xxx 269   
Ich habe im sendmail_from die E-Mailadresse eingegeben.

<?php 
echo '<head>   
<title>KONTAKTFORMULAR</title> 

</head>';   
//Fehlerbehandlung 
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$_POST[Mail])){$fehler=1;   
echo'<center><font class=text>Die von Ihnen angegebene Mailadresse ist ung&uuml;ltig.</font><br>';}   

if($_POST[Nachname]==''){$fehler=1;   
echo'<center><font class=text>Sie haben keinen Nachnamen eingegeben.</font><br></center>';}   

if($_POST[Telefon]==''){$fehler=1;   
echo'<center><font class=text>Sie haben keinen Telefon eingegeben.</font><br></center>';}   
/* 
if($Ausgangssprache==''){$fehler=1;  
echo'<center><font class=text>Sie haben keine Ausgangssprache eingegeben.</font><br></center>';}  


if($Zielsprache==''){$fehler=1;  
echo'<center><font class=text>Sie haben keine Zielsprache eingegeben.</font><br></center>';}  

if($Liefertermin==''){$fehler=1;  
echo'<center><font class=text>Sie haben keine Liefertermin eingegeben.</font><br></center>';}  
*/ 
if($fehler==1){echo '<br><a class=link href=javascript:history.back()>Zurück</a>';}   

// Erstelle Nachricht 
$Nachricht = "$_POST[FormularName] aus dem Formular der Webseite:\r   
******************************************* \r 
Filiale: $_POST[Filiale] \r 
******************************************* \r 
Stammdaten des Kunden \r 
Anrede: $_POST[Anrede] \r 
Name : $_POST[Vorname] $_POST[Nachname] \r 
Firma: $_POST[Firma] \r 
$_POST[Strasse] $Hausnummer \r 
$_POST[PLZ] $_POST[Ort] \r 
Telefon: $_POST[Telefon] \r 
Telefax: $_POST[Fax] \r 
E-Mail: $_POST[Mail] \r 
******************************************* \r 
$_POST[FormularName]: \r 
Fachbereich: $_POST[Fachbereich] \r 
Fachkenntnis: $_POST[Fachkenntnis] \r 
Ausgangssprache: $_POST[Ausgangssprache] \r 
Zielsprache: $_POST[Zielsprache] \r 
Liefertermin: $_POST[Liefertermin] gewünschte Uhrzeit: $_POST[Uhrzeit] \r 
Dolmetschort: $_POST[DolOrt] \r 
******************************************* \r 
Firmenunterricht: \r 
Firma, Ort: $_POST[FirmenOrt] \r 
Datum: $_POST[Datum] \r 
Anz. Teilnehmer: $_POST[Teilnehmerzahl] \r 
Dauer: $_POST[Dauer] \r 
Sprache: $_POST[Sprache] \r 
******************************************* \r 
Weitere Informationen des Kunden (Beschreibung / Kommentar:) \r 
$_POST[Beschreibung] \r 
******************************************* \r 
\r 
+++ Ende der Daten +++ \r ";   



// Hier die eMails �berpr�fen 
if($_POST[Filiale]=='Bochum'){$Zielmail = '5@web.de'; }   
if($_POST[Filiale]=='Hamburg'){$Zielmail = '6@web.de';}   
if($_POST[Filiale]=='Kiel'){$Zielmail = '7@web.de';}   
if($_POST[Filiale]=='Bremen'){$Zielmail = '8@web.de'; }   
if($_POST[Filiale]=='Frankfurt'){$Zielmail = '9@web.de';}   
if($_POST[Filiale]=='Madrid'){$Zielmail = "4@web.de'';}   
if($_POST[Filiale]=='Muenchen'){$Zielmail = '3@web.de'';}   
if($_POST[Filiale]=='Wien'){$Zielmail = '2@web.de'';}   
if($_POST[Filiale]=='Duesseldorf'){$Zielmail = '1@web.de';}   




//var_dump($_POST); 
if($fehler!=1){ 

//$Zielmail = "4@web.de";  

//-- AB JETZT -- 
$empfaenger = $Zielmail; // Empfänger E-Mail Adresse 
$betreff = $_POST[FormularName]." aus dem Internet"; // Betreff   

$dateiname = $_FILES['datei']['tmp_name']; // Dateiname   
$dateiname_mail = $_FILES['datei']['name'];   

$id = md5(uniqid(time())); 
$dateiinhalt = fread(fopen($dateiname, "r"), filesize($dateiname));   

// Absender Name und E-Mail Adresse 
$kopf = "From: Anfrageformular <".$_POST[Nachname].">\n";   
$kopf .= "MIME-Version: 1.0\n";   
$kopf .= "Content-Type: multipart/mixed; boundary=$id\n\n";   
$kopf .= "This is a multi-part message in MIME format\n";   
$kopf .= "--$id\n";   
$kopf .= "Content-Type: text/plain\n";   
$kopf .= "Content-Transfer-Encoding: 8bit\n\n";   
$kopf .= $Nachricht; // Inhalt der E-Mail (Body) 
$kopf .= "\n--$id";   
// Content-Type: image/gif, image/jpeg, image/png » MIME-Typen - selfHtml.org 
$kopf .= "\nContent-Type: ".$_FILES['datei']['type']."; name=$dateiname_mail\n";   
$kopf .= "Content-Transfer-Encoding: base64\n";   
$kopf .= "Content-Disposition: attachment; filename=$dateiname_mail\n\n";   
$kopf .= chunk_split(base64_encode($dateiinhalt)); 
$kopf .= "\n--$id--";   
mail($empfaenger, $betreff, "", $kopf); // E-Mail versenden   
mail("anfrage@web.de", $betreff, "", $kopf); // E-Mail versenden   

//mail($Zielmail, $_POST[FormularName]." aus dem Internet", $Nachricht ,"From: Anfrageformular <$_POST[Nachname]>");  
//-- AB JETZT -- 

echo'<body>';   

echo'<br><br><center><font class=ueber1>Vielen Dank für Ihre Anfrage, wir werden Ihre Anfrage so schnell wie möglich bearbeiten. </br></br> Unternehmen gmbh</font></br></br><center><a class=link href=javascript:history.go(-2)>Zurück</a>';   
} 
?>
RedEye
RedEye 01.07.2010 um 09:41:52 Uhr
Goto Top
Hallo,

was funktioniert nicht mit der Seite????


PHP sagt Dir eigentlich eh schon alles in den Meldungen:

Warning: fread(): supplied argument is not a valid stream resource in C:\xxx on line 251
-- Da stimmt was mit der Datei nicht die Du im Form uploadest
Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xxx on line 268
-- Der Wert sendmail_from ist in Deiner php.ini nicht gesetzt, Absender fehlt einfach

Setz mal einfach einen mail()-Befehl ab, sende die mail an Dich selbst.
Und bitte benutze die Formatierungshilfe hier im Board sonst kann keiner den Code lesen.

--
LG
RedEye
RedEye
RedEye 01.07.2010 um 10:27:46 Uhr
Goto Top
<?php
$empfaenger = 'foo@example.com';  
$betreff = 'Der Betreff';  
$nachricht = 'Hallo';  
$header = 'From: webmaster@example.com' . "\r\n" .  
	'Reply-To: webmaster@example.com' . "\r\n" .  
	'X-Mailer: PHP/' . phpversion();  

mail($empfaenger, $betreff, $nachricht, $header);
?>
prosch
prosch 01.07.2010 um 12:13:41 Uhr
Goto Top
Danke Redeye bist echt eine Hilfe, also die Probleme sind nun weg allerdings kommt einfach keine E-Mail an - ich habe als Webmailer "Mailenable" aktiv laufen (empfängt nachrichten) aber der versendet irgendwie keine Nachrichten - könntet ihr mir sagen was ich machen muss damit der Server E-Mails versendet?

Vielen Dank.
RedEye
RedEye 01.07.2010 um 14:15:29 Uhr
Goto Top
Gern geschehen, mit diesem Mailserver hab ich leider keine Erfahrung.
Jedoch, bist Du sicher das die Mails mit PHP weggesendet werden?
Testmail an eine Adresse die Du abrufen kannst, GMX oder ähnliches?
prosch
prosch 01.07.2010 um 14:23:31 Uhr
Goto Top
ja, die habe ich an eine Adresse, welche ich sofort per outlook erhalte ist trotzdem komisch, warum die nicht versandt worden ist - dieses script schickt die dateien doch per PHP weg oder sehe ich das falsch - das war zu mindest auf unserem anderen Server immer so. Komisch.
RedEye
RedEye 01.07.2010 um 14:28:16 Uhr
Goto Top
Nein, da haben wir jetzt aneinander vorbeigeredet face-smile

Ich meinte ob Du überprüft hast das die Mails von Deinem Script WIRKLICH gesendet worden sind oder jetzt einfach nur keiner Fehlermeldungen mehr kommen und Du daher davon ausgehst das sie gesendet wurden.
prosch
prosch 01.07.2010 um 14:32:08 Uhr
Goto Top
ja, ich gehe davon aus - da das script auf dem anderen Server ohne Probleme funktioniert. Wie kann ich den prüfen, ob die E-Mail raus geht, also dein script funktioniert auch nicht eigenartig. Zur Info es ist ein 1&1 Webserver 2003 mit 64 bit?
RedEye
RedEye 01.07.2010 um 14:54:41 Uhr
Goto Top
Moment, Du solltest etwas deutlicher sagen was Sache ist.

Du bekommst keiner Fehlermeldung mehr beim senden via PHP?
Du erhältsts das mittels PHP versendete Email?

Jetzt mal abgesehen von Deinem Mailserver, schicke mit php ein mail an eine öffentliche Mailadresse von der Du weisst das sie ganz sicher abrufbar ist, weisst Du was ich meine?
prosch
prosch 01.07.2010 um 15:43:24 Uhr
Goto Top
Hallo Redeye,

also ich erkläre es noch mal langsamer sorry ;( also ich habe die o. g. Fehler beim versenden des Scripts behoben - also es kommt die richtige ausgabe - allerdings kommt die E-Mail nicht an mein Postfach, wie soll ich eine PHP mail versenden (außer mit deinem Script) [womit es auch nicht geklappt hat]

Thank you !!!
RedEye
RedEye 02.07.2010 um 07:50:03 Uhr
Goto Top
Hallo,

poste mal den Teil [mail function] von Deiner der php.ini und das Script.

--
LG
RedEye
prosch
prosch 02.07.2010, aktualisiert am 30.03.2023 um 01:45:57 Uhr
Goto Top
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = test@web.de

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").  
sendmail -t -i

________________________

<?php
$empfaenger = 'prosch@web.de';  
$betreff = 'Der Betreff';  
$nachricht = 'Hallo';  
$header = 'From: webmaster@example.com' . "\r\n" .  
'Reply-To: webmaster@example.com' . "\r\n" .  
'X-Mailer: PHP/' . phpversion();  

mail($empfaenger, $betreff, $nachricht, $header);
?>
RedEye
RedEye 02.07.2010, aktualisiert am 30.03.2023 um 01:46:11 Uhr
Goto Top
Zitat von @prosch:

SMTP = hier muss natürlich der SMTP Deines Providers rein! (smtp.web.de)
sendmail_from = gültige Emailadresse oder gehört dir die test@web.de?
prosch
prosch 02.07.2010, aktualisiert am 30.03.2023 um 01:46:26 Uhr
Goto Top
Wooohooo das klappt soweit also Smtp habe ich eingetragen er hatte danach eine Auth gebraucht damit er zum Smtp connecten kann allerdings kommt dann "Fatal error: Call to a member function on a non-object in" hier der neue Code

<?php
$empfaenger = 'ich@web.com';  
$betreff = 'Der Betreff';  
$nachricht = 'Hallo';  
$header = 'From: webmaster@example.com' . "\r\n" .  
'Reply-To: webmaster@example.com' . "\r\n" .  
'X-Mailer: PHP/' . phpversion();  
$smtp->setUsername("prosch@home");  
$smtp->setPassword("password");  
mail($empfaenger, $betreff, $nachricht, $header);
?>
RedEye
RedEye 02.07.2010 um 23:59:08 Uhr
Goto Top
Wer oder was hat eine Authentifizierung gebraucht bzw. in welcher Form?
Was sind denn das für Objekte und Methoden??? $smtp->setUsername()....
Welche Klasse steht denn dahinter?

Langsam hab ich das Gefühl das Du ein Quellcode/Infoverweigerer bist aber willst das Dir trotzdem geholfen wird.

Sehr wichtig:
- PHP Manuel lesen
- Sagen und posten was passiert, Quelle zeigen

Schönes Wochenende!

--
LG
RedEye
prosch
prosch 03.07.2010 um 01:25:28 Uhr
Goto Top
Sorry ich geh noch mal ein schritt zurück ....also ich habe den SMTP eingestellt und den code oben wieder bereinigt es kommt folgende Fehlermeldung:

Warning: mail(): SMTP server response: 503 This mail server requires authentication when attempting to send to a non-local e-mail address. Please check your mail client settings or contact your administrator to verify that the domain or address is defined for this server

Deshalb hatte ich die o. g. einstellungen vorgenommen ...sorry aber ich bin echt ein anfänger.
prosch
prosch 05.07.2010, aktualisiert am 30.03.2023 um 01:46:46 Uhr
Goto Top
Sorry noch mal eine Aktualisierung.

Php.ini

[mail function]
; For Win32 only.
SMTP = mail.meinedomain.com
smtp_port = 25

; For Win32 only.
sendmail_from = test@meinedomain.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").  
sendmail -t -i
Kontaktformular

<?php
$empfaenger = 'meine-mail@meinedomain.com';  
$betreff = 'Der Betreff';  
$nachricht = 'Hallo';  
$header = 'From: webmaster@example.com' . "\r\n" .  
'Reply-To: webmaster@example.com' . "\r\n" .  
'X-Mailer: PHP/' . phpversion();  

mail($empfaenger, $betreff, $nachricht, $header);
?>

Fehlermeldung:

Warning: mail(): SMTP server response: 503 This mail server requires authentication when attempting to send to a non-local e-mail address. Please check your mail client settings or contact your administrator to verify that the domain or address is defined for this server. in C:\meinedomain\kontaktabschicken1.php on line 9
RedEye
RedEye 05.07.2010 um 13:34:07 Uhr
Goto Top
Schau Dir bitte mal den PHPMailer an: http://phpmailer.worxware.com/index.php?pg=phpmailer
Hab es schon öfters genutzt und kann nicht meckern.

--
LG
RedEye
prosch
prosch 07.07.2010, aktualisiert am 30.03.2023 um 01:47:27 Uhr
Goto Top
Hallo Ihr,

danke für eure Mühe - ich erhalte nun die E-Mails auf dem "localhost" da sehen die E-Mails vom Formular auch gut aus, aber wenn ich diese "speziell" diese Mails vom Server per Outlook abrufe erhalte ich eine leere E-Mail mit dem richtigen Betreff und Absender.

Alle anderen E-Mails erhalte ich korrekt angezeigt (getestet im HTML und Textformat)

Sorry ich benutze Mailenable - das Programm erhält die E-Mails mit vollem Inhalt

Hier das Kontaktscript:

<?php
echo '<head>  
<title>KONTAKTFORMULAR</title>
 
</head>';  
//Fehlerbehandlung
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$_POST[Mail])){$fehler=1;  
  echo'<center><font class=text>Die von Ihnen angegebene Mailadresse ist ung&uuml;ltig.</font><br>';}  

if($_POST[Nachname]==''){$fehler=1;  
  echo'<center><font class=text>Sie haben keinen Nachnamen eingegeben.</font><br></center>';}  

if($_POST[Telefon]==''){$fehler=1;  
  echo'<center><font class=text>Sie haben keinen Telefon eingegeben.</font><br></center>';}  
/*
if($Ausgangssprache==''){$fehler=1; 
  echo'<center><font class=text>Sie haben keine Ausgangssprache eingegeben.</font><br></center>';} 
  

if($Zielsprache==''){$fehler=1; 
  echo'<center><font class=text>Sie haben keine Zielsprache eingegeben.</font><br></center>';} 

if($Liefertermin==''){$fehler=1; 
  echo'<center><font class=text>Sie haben keine Liefertermin eingegeben.</font><br></center>';} 
*/   
if($fehler==1){echo '<br><a class=link href=javascript:history.back()>Zurück</a>';}  

// Erstelle Nachricht
$Nachricht =  "$_POST[FormularName] aus dem Formular der Webseite:\r  
******************************************* \r
Filiale:     $_POST[Filiale] \r
******************************************* \r
Stammdaten des Kunden \r
Anrede:      $_POST[Anrede] \r
Name :       $_POST[Vorname] $_POST[Nachname] \r
Firma:       $_POST[Firma] \r
             $_POST[Strasse] $Hausnummer \r
             $_POST[PLZ] $_POST[Ort] \r
Telefon:     $_POST[Telefon] \r
Telefax:     $_POST[Fax] \r
E-Mail:      $_POST[Mail]  \r
******************************************* \r
$_POST[FormularName]: \r
Fachbereich:     $_POST[Fachbereich]  \r
Fachkenntnis:    $_POST[Fachkenntnis] \r
Ausgangssprache: $_POST[Ausgangssprache] \r
Zielsprache:     $_POST[Zielsprache] \r
Liefertermin:    $_POST[Liefertermin] gewünschte Uhrzeit: $_POST[Uhrzeit] \r
Dolmetschort:    $_POST[DolOrt] \r
******************************************* \r
Firmenunterricht: \r
Firma, Ort:      $_POST[FirmenOrt] \r
Datum:           $_POST[Datum] \r
Anz. Teilnehmer: $_POST[Teilnehmerzahl] \r
Dauer:           $_POST[Dauer] \r
Sprache:         $_POST[Sprache] \r
******************************************* \r
Weitere Informationen des Kunden (Beschreibung / Kommentar:) \r
$_POST[Beschreibung]  \r
******************************************* \r
\r
+++ Ende der Daten +++ \r ";  



// Hier die eMails �berpr�fen
if($_POST[Filiale]=='Berlin'){$Zielmail = 'berlin@web.com';}  
if($_POST[Filiale]=='Hamburg'){$Zielmail = 'hamburg@webcom';}  
if($_POST[Filiale]=='Stuttgart'){$Zielmail = 'stuttgart@web.com';}  
if($_POST[Filiale]=='Bremen'){$Zielmail = 'bremen@web.com';}  
if($_POST[Filiale]=='Frankfurt'){$Zielmail = 'frankfurt@web.com';}  
if($_POST[Filiale]=='Hannover'){$Zielmail = 'hannover@web.com';}  
if($_POST[Filiale]=='Muenchen'){$Zielmail = 'muenchen@web.com';}  
if($_POST[Filiale]=='Karlsruhe'){$Zielmail = 'karlsruhe@web.com';}  
if($_POST[Filiale]=='Duesseldorf'){$Zielmail = 'duesseldorf@web.com';}  



//var_dump($_POST);
if($fehler!=1){



//$Zielmail = "hamburg@web.com"; 
//-- AB JETZT --
$empfaenger = $Zielmail; // Empfänger E-Mail Adresse
$betreff = $_POST[FormularName]." aus dem Internet"; // Betreff  

$dateiname = $_FILES['datei']['tmp_name']; // Dateiname  
$dateiname_mail = $_FILES['datei']['name'];  
$header = 'From: test@web.com' . "\r\n" .  
$

 // Absender Name und E-Mail Adresse
$kopf = "From: Anfrageformular <".$_POST[Nachname].">\n";  
$kopf .= "Content-Type: multipart/mixed; boundary=$id\n\n";  
$kopf .= "This is a multi-part message in MIME format\n";  
$kopf .= "--$id\n";  
$kopf .= "Content-Type: text/html";  
$kopf .= "Content-Transfer-Encoding: 7bit\n\n";  
$kopf .= $Nachricht; // Inhalt der E-Mail (Body)
$kopf .= "\n--$id";  
// Content-Type: image/gif, image/jpeg, image/png » MIME-Typen - selfHtml.org
$kopf .= "\nContent-Type: ".$_FILES['datei']['type']."; name=$dateiname_mail\n";  
$kopf .= "Content-Transfer-Encoding: base64";  
$kopf .= "Content-Disposition: attachment; filename=$dateiname_mail\n\n";  
$kopf .= chunk_split(base64_encode($dateiinhalt));
$kopf .= "\n--$id--";  
mail($empfaenger, $betreff, "", $kopf); // E-Mail versenden  
mail("berlin@web.com", $betreff, "", $kopf); // E-Mail versenden  

//mail($Zielmail, $_POST[FormularName]." aus dem Internet", $Nachricht ,"From: Anfrageformular <$_POST[Nachname]>"); 
//-- AB JETZT --

echo'<body>';  
// Hier kannst du  den Text, welcher nach dem Abschicken erscheinen soll, eintragen
echo'<br><br><center><font class=ueber1>Vielen Dank für Ihre Anfrage,  wir werden Ihre Anfrage so schnell wie möglich bearbeiten. </br></br></font></br></br><center><a class=link href=javascript:history.go(-2)>Zurück</a>';  
}
?>