PHP mail-Formular - E-Mail-header
Ich bin mit einem PHP-mail-Formular auf meiner Website. Ich erhalte E-mail-Prima, aber die Header die ich erhalte, sind in der form [email protected]
, und das gleiche für die Antwort-Adresse. Wie kann ich mein code ein, um den Namen der person in der Kopfzeile? Ich bin mit dem folgenden code:
<?php
if(isset($_POST['submit'])) {
$to = '[email protected]' ; //put your email address on which you want to receive the information
$subject = 'Message - Contact Form Coast Med Spa'; //set the subject of email.
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$mailheader = "From: ".$_POST["FirstName"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$message = "<table>
<tr><td>Title</td><td>".$_POST['Title']."</td></tr>
<tr><td>First Name</td><td>".$_POST['FirstName']."</td></tr>
<tr><td>Last Name</td><td>".$_POST['LastName']."</td></tr>
<tr><td>E-Mail</td><td>".$_POST['Email']."</td></tr>
<tr><td>Phone Number</td><td>".$_POST['HomePhone']."</td></tr>
<tr><td>Comments</td><td>".$_POST['CAT_Custom_869']."</td></tr>
<tr><td>Contact Method</td><td>".$_POST['CAT_Custom_868']."</td></tr>
<tr><td>Subscribe to: eNewsletter</td> <td>".$_POST['CampaignList_41798']."</td></tr>
</table>" ;
mail($to, $subject, $message, $headers, $mailheader);
header('Location: http://coastlasercenter.com/html/message-contact.html');
echo "Your message has been received";
}
?>
- Verwenden Sie besser eine mailer-Klasse wie
PHPmailer
. Die build-inmail()
Funktion passt nicht heutigen standards für E-Mail und ist schwer zu ändern für solche Dinge.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum Sie die Trennung Kopfzeilen in zwei verschiedene Variablen?
Sie sind vorbei die
From
undReply-to
Header als zusätzliche Parameter an diemail()
Funktion. Überprüfen der PHP -Dokumentation.Versuchen Sie dies:
BTW, sollten Sie die Validierung der Daten, die Sie bekommen, in $_POST, bevor die Verkettung mit Ihrer E-Mail-Header, da es kann dazu führen,E-Mail-injection-Angriffe.
$headers .= "From: ".$_POST["FirstName"]." <".$_POST['Email'].">";
. Ich bin mit der Bearbeitung meiner Antwort hinzufügen, denn es würde wohl nicht richtig funktionieren ohne die E-Mail-Adresse, die header.So etwas wie das format in Ihrem code:
Durch die Art und Weise, es ist besser utf-8 statt iso-8859-1 für Ihren Zeichensatz.
$_POST["FirstName"]
und $userEmailAddress muss$_POST["email"]
$headers .= "From: ".$_POST['FirstName']." ".$_POST['LastName']." <".$_POST['Email'].">";