2016-05-29 6 views
1

Ich versuche, eine E-Mail von meiner PHP-Seite an eine E-Mail-Adresse zu senden, die festgelegt ist.Senden einer E-Mail von einer PHP-Seite

Die E-Mail wird unter der erwarteten E-Mail-Adresse gesendet und empfangen. Aber die Inhalte in der E-Mail sind nicht wie erwartet. Ich habe den Code von einem Tutorial auf youtube bekommen.

jedoch beim Betrachten der E-Mail wird angezeigt genau wie der folgende Code, gibt mir nicht die Werte hinter dem Variablen z $ namen zeigt in der E-Mail als $ oben Name

Irgendwelche Ideen?

Der Code im verwenden ist;

<?php 

require_once 'header.php'; 

$to = 'emailaddress '; 
$subject = 'CSG'; 

$name = $_POST['name']; 
$email = $_POST['emailaddress']; 
$message = $_POST['message']; 

$body = <<<EMAIL 

Hi $name, You have recently requested a notification of your password on the Coleg Sir Gar Loan Syste site. 

From $name 

EMAIL; 

$header = '$email'; 

if ($_POST){   
    mail($to, $subject, $body, $header); 
    $feedback = 'Email Sent'; 
} 

?> 
+0

Versuchen Sie '{$ name}' in der Heredoc-Zeichenkette – dieend

+1

zu verwenden, was soll das tun? '$ header = '$ email';' - RTM http://php.net/manual/en/function.mail.php –

+0

@ Fred-ii-Anzeige der E-Mail-Adresse als Absender in meiner Mailbox – Mucca019

Antwort

3

Erstens Variablen werden nicht in einfache Anführungszeichen analysiert, das ist, warum Sie $email anstatt die E-Mail selbst innerhalb des E-Mail-Körper zu sehen.

So ändern Sie $header = '$email'; zu $header = "$email"; oder entfernen Sie die Anführungszeichen vollständig.

d.h .: $header = $email;

Dann wird der Header Sie versagt. Es erwartet eine From: (E-Mail-Adresse) - Das "Von" in Ihrer E-Mail wird als Ihr Server-Name und nicht die (beabsichtigte) E-Mail-Adresse von der Person zurück, die es sendet.

das Handbuch konsultieren:

Nebenbei bemerkt über Ihre heredoc.

Obwohl Mail Ausgehen ist, haben Sie immer noch ein Leerzeichen in Ihrer Öffnung Kennung:

$body = <<<EMAIL

und das kann einen Parse error: syntax error, unexpected '<<' (T_SL) Fehler werfen.


Testing dies kam zurück wie:

 
[email protected] 

Hi Fred, You have recently requested a notification of your password on the Coleg Sir Gar Loan Syste site. 

From Fred 

und die "From:" als [email protected] statt [email protected]_mailer.xxx.

Wie in den Kommentaren von dieend, können Sie versuchen, die Variablen {$var} Verspannen, jedoch mit oder ohne sie, produziert die gleichen Ergebnisse für mich.

Wenn das immer noch nicht funktioniert, dann kann es durch das nachstehende Leerzeichen in Ihrer Eröffnungskennung verursacht werden; müssen Sie es entfernen.

Copy/Paste genau wie dargestellt:

$body = <<< EMAIL 

Hi {$name}, You have recently requested a notification of your password on the Coleg Sir Gar Loan Syste site. 

From {$name} - {$email} 

EMAIL; 

$header = "From:" . $email; // Now you have a valid From 

if ($_POST){ 
    mail($to, $subject, $body, $header); 
    echo $feedback = 'Email Sent'; 
} 

Abschlussnoten:

  • Wenn das immer noch nicht die Frage lösen, dann ich 01.00 nicht in der Lage zu reproduzieren.
+0

Danke Fred, Alles funktioniert so, wie ich es mir erhofft hatte. Einige Tippfehler in meinem HTML-Formular haben einige Probleme verursacht, nachdem ich Ihrer Hilfe gefolgt bin, aber es geschafft habe, sie zu finden und zu lösen. – Mucca019

+0

@ Mucca019 Sie sind herzlich willkommen. Ich war froh, dass ich geholfen habe, * Prost * :-) –

Verwandte Themen