2016-05-03 14 views
-2

Ich habe ein einfaches Formular auf meiner Website. Leute lassen einen Namen und E-mailadres. Sie erhalten einen Link zu einem Download und ich bekomme ihre Daten.PHP wird keine Mail vom Host

All dies funktioniert auf meinem Testserver, aber nicht live. Mein Provider ist wählerisch beim Versenden von E-Mails und möchte eine ordnungsgemäße Absenderadresse angeben.

Frage: Wie gehe ich darüber. Ich habe ein von adres ist der Header:

$from = '[email protected]'; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From: In2Motivation <{$from}>' . "\r\n"; 
mail($to, $subject, $message, $headers,); 

Ich habe auch versucht: mail($to, $subject, $message, $headers, '-f [email protected]');

Aber es wird immer noch nichts senden. Wo geht das schief? Ist es mein Skript oder ist es etwas auf meinem Provider-Ende?

Jeder kann mir helfen? Danke vielmals!!!

+0

könnte eine dumme Frage sein. Weißt du, ob auf deinem Live-Rechner ein Mail-Server eingerichtet ist? – castis

+0

Ihr Gastgeber benötigt möglicherweise eine Genehmigung vor dem Senden; Oder Sie müssen sich anmelden und dann senden. Viele Möglichkeiten hier; Hast du die Log-Dateien überprüft? Überprüfen Sie Ihre php.ini und sendmail.ini Einstellungen, wenn Sie Zugriff haben (die meisten Hosts können Sie zumindest diese anzeigen). –

+0

Es ist 2016 und Leute versuchen immer noch, mail() 'arbeiten ... –

Antwort

1

Variable $from nicht innerhalb Apostrophe erweitert werden, verwenden Sie doppelte Anführungszeichen statt:

<?php 
//debug start - comment on production 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
//debug end 
$to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = "From: In2Motivation <{$from}> \r\n" . 
      'MIME-Version: 1.0' . "\r\n" . 
      'Content-type: text/html; charset=iso-8859-1' . "\r\n". 
      'Reply-To: [email protected]' . "\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 

if(mail($to,$subject,$message,$headers)){ 
    echo "email sent"; 
}else{ 
    echo "email failed"; 
} 
+0

Weitere Informationen zur String-Interpolation finden Sie unter [docs] (http://php.net/manual/en/language.types.string.php#language.types.string.parsing). – shamsup

Verwandte Themen