# Formmailer funktioniert nach Umzug nicht mehr (höhere PHP-Version?)



## aherzog (29. Juli 2013)

Hallo miteinander.

Ich habe ein Problem mit meinem Formmailer.
Dieser (zugegebenermassen einfacher) Formmailer hat bis jetzt wunderbar funktioniert.

Nun habe ich diesen auf einer anderen Webseite verwendet und dort bekomme ich ihn einfach nicht zum laufen.
Alle Tests die ich mache, sehen eigentlich ok aus, das was ausgegeben werden muss, ist auch korrekt.

Wichtig zu wissen das der Anbieter der gleich ist aber der Hosting-Server ist ein anderer und die PHP-Version ist auch höher.
alte PHP-Version: 4.4.9
neue PHP-Version: 5.3.6

hier der Formailer-text

```
<!doctype html>
<html>
<head>
<?php
	include_once('connect.php')
?>
<meta charset="utf-8">
<meta name="language" content="de" />
<meta name="robots" content="INDEX,FOLLOW" />
<meta name="page-topic" content="Lady Style Svetlana Herzog - Beratung und Training für einen stillvollen und selbstsicheren Auftritt." />
<meta name="author" content="Svetlana Herzog" />
<meta name="publisher" content="Andreas Herzog - aherzog@bluewin.ch" />
<meta name="copyright" content="Svetlana Herzog" />
<meta name="audience" content="An alle die sich für Mode und Ballett interessieren" />

<meta name="viewport" content="width=device-width">
<title>Lady Style Svetlana Herzog</title>
<!-- Handy -->
<link href="css/handy.css" rel="stylesheet" type="text/css" media="only screen and (max-width:480px)">
<!-- Tablet -->
<link href="css/handy.css" rel="stylesheet" type="text/css" media="only screen and (min-width:481px) and (max-width:768px)">
<!-- Desktop -->
<link href="css/css.css" rel="stylesheet" type="text/css" media="only screen and (min-width:769px)">
</head>
<body>
	<div id="page">
	<div id="hintergrund_page"></div>
    <div id="logo"></div>
    <div id="hintergrund_menu"></div>
    <?php
		include_once('menu.php')
	?>
    <div id="titel"></div>
    <div id="text_links">
    	<?php 
			echo "<pre>";
			print_r ($_POST);
			echo "</pre>";
			
			
			//	Dieses PHP-Skript versendet alle Formular-Felder an die angegebene
			// 	Email-Adresse
			//
			//	Konfiguration-Daten
			$email_subject	=	"Anfrage Kontakt-Formular Lady Style Svetlana Herzog";
			
			$empfaenger = "aherzog@bluewin.ch";
			$absender   = $_POST[eMail];
			$betreff    = "Anfrage Kontakt-Formular Lady Style"; 
		
			$email_message 	.= "<html>";
			$email_message 	.= "<head>";
			$email_message 	.= "</head>";
			$email_message 	.= "<body>";
			$email_message 	.= "eMail-Anfrage Lady Style<br><br>";
			$email_message 	.= "Seite: Kontakt-Formular Lady Style<br><br>";
			$email_message 	.= "<table>";
			$email_message 	.= "<tr><td>Name:</td><td>".$_POST[Name]."</td></tr>";
			$email_message 	.= "<tr><td>eMail:</td><td>".$_POST[eMail]."</td></tr>";
			$email_message 	.= "<tr><td><br></td></tr>";
			$email_message 	.= "<tr><td>Anfrage:</td><td>".$_POST[Text]."</td></tr>";
			$email_message 	.= "</table>";
			$email_message 	.= "</body>";
			$email_message 	.= "</html>";
			
			$header  = "MIME-Version: 1.0\r\n";
			$header .= "Content-type: text/html; charset=utf-8\r\n";
			 
			$header .= "From: $absender\r\n";
			$header .= "Reply-To: $_POST[eMail]\r\n";
			// $header .= "Cc: $cc\r\n";  // falls an CC gesendet werden soll
			
			$header .= "X-Mailer: PHP ". phpversion();
			echo "**".$header;
			
			// Versenden der Email
			$status	=	mail( $empfaenger, $betreff, $email_message,$header);
			
			if ( ! $status )
			{
				die("Leider ist ein Fehler aufgetretten. Das eMail konnte nicht gesendet werden!!" );
			}
			else
			{
				echo "<font size='3'><p align=center>Vielen Dank für Ihre Anfrage.</p>";
				echo "<p align=center><strong>Das eMail wurde erfolgreich versandt.</strong></p>";
				echo "<p align=center>Bitte haben Sie etwas Geduld.<br />";
				echo "Sie erhalten in den nächsten Tagen eine Antwort.</p>";
				echo "<p align=center> <em>Ihre Svetlana Herzog.</em><br /></p></font>";
			}
			
		?>
	</div>
    <?php
		include_once('impressum_zeile.php')
	?>	
</body>
</html>
```

$_POST übergibt die korrekten Daten aus dem Formular

```
Array
(
    [Name] => Mein Name
    [eMail] => aherzog@bluewin.ch
    [Text] => Das ist der Nachrichtentext
    [Submit] => Senden
)
```

Die Parameter im mail()-Befehl "sollten" auch richtig sein..
$empfänger

```
aherzog@bluewin.ch
```
$betreff

```
Anfrage Kontakt-Formular Lady Style
```
$email_message

```
eMail-Anfrage Lady Style

Seite: Kontakt-Formular Lady Style


Name: Mein Name 
eMail: aherzog@bluewin.ch 

 
Anfrage: Das ist der Nachrichtentext
```
$Header

```
MIME-Version: 1.0 Content-type: text/html; charset=utf-8 From: aherzog@bluewin.ch Reply-To: aherzog@bluewin.ch X-Mailer: PHP 5.3.26
```

bei meiner Recherche fand ich einen Tip. mail() auszuführen ohne Parameter, um zu prüfen ob der Mail-Server überhaupt korrekt läuft
also hab ich folgendes probiert.

```
// Versenden der Email
			$status	=	mail();
			
			//>>>>>>>>   DIESE ABFRAGE GIBT DIE FEHLERMELDUNG AUS   <<<<<<<<<<<<<<<<<<<<<
			if ( ! $status )
			{
				die("Leider ist ein Fehler aufgetretten. Das eMail konnte nicht gesendet werden!!" );
			}
			else ........
```
Auch hier kommt der Text "Leider ist ein Fehler aufgetretten. Das eMail konnte nicht gesendet werden!!" 

Ich weiss nun nicht mehr weiter. Keine Ahnung warum der Formmailer nicht funktioniert.
Hat mir jemand einen Tip ? ?

Gruss und Danke für die Hilfe
Andy


----------



## Bratkartoffel (30. Juli 2013)

Hi,

sieht so aus, als ob der Mailserver nicht korrekt eingerichtet ist, bzw. die Einstellungen fehlen beim Anbieter in der php.ini.

Schreibe mal folgenden Code in eine einfache test.php und ruf diese mit dem Browser auf:

```
<?php phpinfo(); ?>
```

Das gibt dir die komplette Konfiguration von PHP aus. Hier müssten auch die Einstellungen für den Mailversand hinterlegt sein. Falls nicht, musst du diese Einstellungen beim Anbieter nachfragen und per ini_set() setzen.

Grüße,
BK


----------



## aherzog (30. Juli 2013)

Hi Bratkartoffel.

Danke für deinen Tip.
In der Phpinfo wusste ich nicht so genau wonach ich eigentlich suchen muss 
Aber du hast erwähnt das ich die Einstellungen beim Anbieter erfragen soll.
Dieser gab mir den Tip, das ich eine Standart-Absender-Adresse definieren muss ( im Admin-Tool des Anbieters).
Gesagt , getan, und es funktioniert.

Es lag also nicht am Formmailer. Der funktioniert ...
Sondern bei einer Einstellung beim Anbieter..

Gruss Andy


----------

