Kein Mailversand via PHP

Fragenfrager

Erfahrenes Mitglied
Hallo liebes Forum,

aus einem Grund, der mich nun schon mehrere schlaflose Nächte gekostet hat und mir trotzdem unbekannt ist, kann ich keine Mails über PHP versenden.
Der Testcode ist einfach:
PHP:
<?php
$empfaenger = "meine@email.de //Mailadresse
$absender   = "webmaster@diedomain.de";
$betreff    = "PHP-Mail-Test";
$mailtext   = "Inhalt einer Mail zum Test von PHP";
$antwortan  = "webmaster@diedomain.de";

mail( $empfaenger,
      $betreff,
      $mailtext,
      "From: $absender\nReply-To: $antwortan");

echo "Mail wurde gesendet!";
?>
Die Mailangaben werden auf existierende Adressen geändert.
Ich erhalte keine Anzeige "Mail wurde gesendet" und auch keine Mail.
Auch das versenden aus zwei installierten Foren heraus funktioniert nicht

phpinfo(); ist hier einsehbar: http://www.ndkids.de/test.php

Mails über das servereigene Webmailprogramm und Mailprogramme die Thunderbird laufen.

Ich für jede Idee dankbar, für die Lösung noch mehr.
 
Es ist durchaus möglich das die mail() Funktion serverseitig ausgeschalten ist. Ist bei Flatbooster aus Sicherheitgründen Standart wird aber auf Supportanfrage dort aktiviert. Kommt also auf den Anbieter an.
 
Hallo Joe, danke für die schnelle Antwort
Es ist mein angemieteter Rootserver, und ich kann nicht nicht erinnern, mail() verboten zu haben.
 
Öhm ja Sorry mit Roots kenne ich mich nicht aus. Hab aber nach googeln gesehen das es einige gibt die auch Probleme haben mit Stratoserver (hab ne whois gemacht) und Mailversand.
 
Was ich nicht verstehe ist die fehlende Ausgabe.
Das
PHP:
echo "Mail wurde gesendet!";
steht ja außerhalb jeglicher Bedingungen und müsste bei jedem Aufruf/Include erstmal kommen. Hast du error_reporting aktiv? Wo und wie wird auf den Code zugegriffen, kannst du den Quelltext auch noch posten?
 
Ist der Code oben tatsächlich so im Script verbaut? Da ist nämlich ein Syntax-Fehler drin.

Du könntest mal die Fehler-Anzeige aktivieren (wenn noch nicht gemacht):

PHP:
// Schreib das in die ersten Zeilen des Scripts
error_reporting( E_ALL | E_STRICT );
ini_set( 'display_errors', 1);
 
Versuch es mal so *Syntax-Fehler behoben*

PHP:
<?php
$empfaenger = "meine@email.de";
$absender   = "webmaster@diedomain.de";
$betreff    = "PHP-Mail-Test";
$mailtext   = "Inhalt einer Mail zum Test von PHP";
$antwortan  = "webmaster@diedomain.de";

mail( $empfaenger,
      $betreff,
      $mailtext,
      "From: $absender\nReply-To: $antwortan");

echo "Mail wurde gesendet!";
?>

ps : von Strato habe ich bis jetzt eigentlich nur schlechtes gehört *habe auch WhoIs und DNS-Reverse-Lookup gemacht*
 
Wenns hier schon ein Thema dazu gibt mach ich gleich mit, hab nämlich grad das gleiche Problem. :D
Das Script hatte so schon einmal funktioniert, wurde quasi nach einiger Zeit nur mal wieder auf den FTP gelegt, und funktioniert seitdem nicht mehr.

Das einzige was ich eingebaut habe war das error_reporting was hier bereits vorgeschlagen wurde.
Fehlermeldung:

Notice: Undefined variable: Name in /home/www/web623/html/kontakt.php on line 6

Notice: Undefined variable: Mail in /home/www/web623/html/kontakt.php on line 7

Aber wenn ich da feste Werte eintrage, anstatt "$Name" und "$Mail", dann gehts trotzdem nicht. Kann da von euch einer den Fehler finden?

PHP:
<?PHP
error_reporting( E_ALL | E_STRICT );
ini_set( 'display_errors', 1);
$email_to = "info@xy.de";
$email_betreff = "betreff";
$email_from_name = "$Name";
$email_from_mail = "$Mail";
?>

<style type="text/css">
<!--
#kontakt {
	margin-top:0px;
	margin-bottom:0px;
	height:500px;
}
.kontakt {
	margin-left:10px;
	width:765px;
}
.cssform {
	border: thin solid #FFFFFF;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: x-small;
	font-weight: bold;
	color: #930000;
	text-decoration: none;
}
-->
</style>

<?php 
error_reporting( E_ALL | E_STRICT );
ini_set( 'display_errors', 1);
if(!isset($Name)){
?>
<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' muss eine E-Mailadresse sein.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' muss eine Nummer enthalten.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' muss eine Nummer zwischen '+min+' und '+max+' enthalten.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' ist erforderlich.\n'; }
    } if (errors) alert('Folgende Fehler sind aufgetreten:\n'+errors);
    document.MM_returnValue = (errors == '');
} }
//-->
</script>
<div id="kontakt">
<div class="kontakt"><span class="minga"><br />Hier kannst Du Deine individuellen W&uuml;nsche, Dein Lob und im &auml;u&szlig;ersten Notfall<br> auch Deine Kritik loswerden.</span></div>
<form name="form1" method="post" action="index.php?link=kontakt">
<div class="kontakt">
<p class="minga">Dein Name:</p>
	<input name="Name" type="text" class="cssform" id="Name" size="80"> 
</div>
<div class="kontakt">
<p class="minga">Deine E-Mailadresse:</p>
	<input name="Mail" type="text" class="cssform" id="Mail" size="80"> 
</div>
<div class="kontakt">
<p class="minga">Deine Nachricht:</p>
	<textarea name="Nachricht" cols="77" rows="5" class="cssform" id="Nachricht">
</textarea> 
</div>
<div class="kontakt">
	<input name="Submit" type="submit" class="cssform" onClick="MM_validateForm('Name','','R','Mail','','RisEmail','Nachricht','','R');return document.MM_returnValue" value="Absenden">
    <input name="Submit2" type="reset" class="cssform" value="Zur&uuml;cksetzen">
</div>
</form>
</div>
<?php 
error_reporting( E_ALL | E_STRICT );
ini_set( 'display_errors', 1);
} 
else{ 
  $emailbody = '
  <html> 
  <!-- 
  Hallo xy,
  Dein System unterstuetzt keine HTML-Mails! 
  Folgende Nachricht wurde Ihnen uebermittelt: 
  ' . $Text . ' 
  --> 
<body bgcolor="#930000" text="#FFFFFF">
<center>
<table width="450" border="0" cellpadding="0" cellspacing="0">
    <tr> 
      <td width="101"><font color="#FFFFFF" size="3" face="Verdana, Arial, Helvetica, sans-serif"><strong>Name:</strong></font></td>
      <td bgcolor="#930000"><font size="3" face="Arial" color="#ffffff"><strong>' . $Name . '</strong></font></td>
    </tr>
    <tr> 
      <td><font color="#FFFFFF" size="3" face="Verdana, Arial, Helvetica, sans-serif"><strong>E-Mail:</strong></font></td>
      <td bgcolor="#930000"><font size="3" face="Arial" color="#ffffff"><strong>' . $Mail . '</strong></font></td>
    </tr>
    <tr> 
      <td valign="top"><font color="#FFFFFF" size="3" face="Verdana, Arial, Helvetica, sans-serif"><strong>Nachricht:</strong></font></td>
      <td bgcolor="#930000"><font size="3" face="Arial" color="#ffffff"><strong>' . $Nachricht . '</strong></font></td>
    </tr>
  </table>
</center>
</body>
</html>
';
$header="From:$email_from_name<$email_from_mail>\n";
$header .= "Reply-To: $email_from_mail\n"; 
$header .= "Bcc: $email_to_bcc\n"; 
$header .= "X-Mailer: PHP/" . phpversion(). "\n";          
$header .= "X-Sender-IP: $REMOTE_ADDR\n"; 
$header .= "Content-Type: text/html";
mail($email_to,$email_betreff,$emailbody,$header);
echo "<div id=\"kontakt\"><div class=\"kontakt\"><p class=\"minga\">Das Formular wurde erfolgreich abgesendet.<br>Vielen Dank f&uuml;r deine Mail an XY, wir werden uns schnellstm&ouml;glich mit dir in Verbindung setzen.</p></div></div>";
}
?>

Vielen Dank schonmal im voraus!

Servus, greetz KingChimera
 
Das ist einfach : REGISTER_GLOBALS = OFF

Verwende stattdessen $_POST['Mail'] bzw $_GET['Mail']
 
Danke dir schonmal.
Hab jetzt "$email_from_name = "$Name"; " in "$email_from_name = $_GET['Name']; " geändert (das gleiche auch mit dem Mail), aber es passiert nachwievor nichts. Irgendwie hab ich das Gefühl ich stell mich grad dumm an. :D

Servus, greetz KingChimera
 
Zurück