Stephan: Wieder php und Email: funzt einfach nicht und bin ratlos...

Hi.

Achtung: Blutiger Anfänger mit 1. Posting...

Trotz x-stündiger Suche und der Suchfunktion funzt mein php-script nicht. Auf der Homepage wird die EMail (true) als verschickt gekennzeicnhet. Mein Hoster unterstützt php. Bin echt ratlos - Danke für Eure Hilfe:

<?php
$owner_email = $_POST["info@meinedomain.de"];
$headers = 'From:' . $_POST["email"];
$subject = 'A message from your site visitor ' . $_POST["name"];
$messageBody = "";

$messageBody .= '<p>Visitor: ' . $\_POST["name"] . '</p>' . "\n";  
$messageBody .= '<br>' . "\n";  
$messageBody .= '<p>Email Address: ' . $\_POST['email'] . '</p>' . "\n";  
$messageBody .= '<br>' . "\n";  
$messageBody .= '<p>Phone Number: ' . $\_POST['phone'] . '</p>' . "\n";  
$messageBody .= '<br>' . "\n";  
$messageBody .= '<p>Message: ' . $\_POST['message'] . '</p>' . "\n";  
  
if($\_POST["stripHTML"] == 'true'){  
	$messageBody = strip\_tags($messageBody);  
}  

try{  
	if(!mail($owner\_email, $subject, $messageBody, $headers)){  
		throw new Exception('mail failed');  
	}else{  
		echo 'mail sent';  
	}  
}catch(Exception $e){  
	echo $e->getMessage() ."\n";  
}  

?>

Und hier das entscheidende Stück vom JS:

(function($){
$.fn.extend({
forms:function(opt){
if(opt===undefined)
opt={}
this.each(function(){
var th=$(this),
data=th.data('forms'),
_={
errorCl:'error',
emptyCl:'empty',
invalidCl:'invalid',
successCl:'success',
successShow:'4000',
mailHandlerURL:'bin/MailHandler.php',
ownerEmail:'info@meinedomain.de',
stripHTML:true,
smtpMailServer:'smtp.meine domain.de',
targets:'input,textarea',
controls:'a[data-type=reset],a[data-type=submit]',
validate:true,
rx:{
".name":{rx:/[1][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:.[\w-]+)*))(@((?:[\w-]+.)*\w[\w-]{0,66}).([a-z]{2,6}(?:.[a-z]{2})?)$)|(@[?((25[0-5].|2[0-4][0-9].|1[0-9]{2}.|[0-9]{1,2}.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2}).){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})]?$)/i,target:'input'},
".phone":{rx:/^+?(\d[\d-+() ]{5,}\d$)/,target:'input'},
".message":{rx:/.{20}/,target:'textarea'}
},....

Ich habe das Script kopiert und alleEingabefelder und Rückmeldungen funzen.
Nur: die EMail kommen nicht an???!!!

Liegt das Problem bei der Eingabe des smtpMailServers?
'local_host' und der smtp-Server meines Servers funzen beide nicht.

Wäre toll wenn jemand helfen kann.

Gruß,
Stephan


  1. a-zA-Z' ↩︎

  1. Hallo,

    vielleicht einfach mal deine mailadresse da eintragen wo sie rein soll, und schritt für schritt arbeiten.

    mail("meinemail@example.com","meinBetreff","meinInhalt);

    feddisch.

    Gruß

    jobo

  2. Trotz x-stündiger Suche und der Suchfunktion funzt mein php-script nicht. Auf der Homepage wird die EMail (true) als verschickt gekennzeicnhet.

    Das soll bedeuten, hier …

    try{
    if(!mail($owner_email, $subject, $messageBody, $headers)){
    throw new Exception('mail failed');
    }else{
    echo 'mail sent';
    }

    … wird "mail sent" ausgegeben?

    Ich habe das Script kopiert und alleEingabefelder und Rückmeldungen funzen.

    Sie furzen? Wie unangenehm.

    Nur: die EMail kommen nicht an???!!!

    Liegt das Problem bei der Eingabe des smtpMailServers?

    Wenn mail() behauptet, es wäre die Mail im System losgeworden, liegt das Problem allerhöchstwahrscheinlich im Versand, nicht im PHP- und schon gar nicht im Javascript-Code.

    'local_host' und der smtp-Server meines Servers funzen beide nicht.

    local_host wird eh nie funktionieren (weil's localhost heisst) und, davon unabhängig, werden Mails nicht über das Netz eingeliefert, sondern lokal via sendmail (vorausgesetzt, es ist kein Windows-Rechner).

    In jedem Falle:

    1. Setze ein neues Skript auf, in dem sich _nur_ die mail()-Funktion befindet. Nichts anderes. Probiere damit, ob du überhaupt Mails versenden kannst.
    2. Falls nicht, wende dich an deinen Hoster. Das Problem liegt außerhalb deiner Möglichkeiten.

    1. Tja: werde wohl die Schulbank drücken müssen und alles mal selber als Code schreiben und nicht copy/paste...

      Learning by doing quasi. :-)

      Danke für Eure Antworten und die Zeit, die Ihr Euch genommen habt.

      Gruß,
      Stephan

  3. Hi Stephan!

    $owner_email = $_POST["info@meinedomain.de"];

    Das erscheint mir suspekt... Gibt es wirklich eine POST-Variable mit _diesem_ Namen, die deine Mailadresse _enhält_? Weiterführende Information zu $_POST.
    Ansonsten bei PHP-Mailskripten: Immer auch mal den SPAM-Ordner checken, wenn Mails nich ankommen.

    tschau
    ichen

    --
    Ichen