如何将发件人包括在内';的姓名,而不仅仅是电子邮件地址,同时通过用户输入表单发送邮件


How do I include sender's name and not just the email address while emailing message from user input form

我正试图使用下面给出的简单PHP脚本从我网站上的表单中获取输入:

<?php 
$toemail = 'xyz@anyemail.com';
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
if(mail($toemail, 'Subject', $message, 'From: ' . $email)) {
    echo 'Your email was sent successfully.';
} else {
    echo 'There was a problem sending your email.';
}
?>

这非常有效。嗯,差不多了。我收到的电子邮件不包括发件人的姓名。我想看到一个正常的电子邮件回复(收件箱的姓名栏中有发件人的姓名,当我打开邮件时,我应该能够看到发件人的电子邮件地址。)

所以我在查找了一些这样的线程后做了一些更改:

<?php 
$toemail = 'xyz@anyemail.com';
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$email_from = $name.'<'.$email.'>';
$header = 'From: '.$email_from;

if(mail($toemail, 'Subject', $message, $header)) {
    echo 'Your email was sent successfully.';
} else {

echo 'There was a problem sending your email.';
    }
?>

电子邮件回复仍然不变。我需要更改什么?

尝试此格式,注意空格和''r''n,相应地更改变量:

$email_headers  = 'MIME-Version: 1.0' . "'r'n";
$email_headers .= 'Content-type: text/html; charset=iso-8859-1' . "'r'n";
$email_headers .='From: YOURNAME <sender_email@yourdomain.com>' . "'r'n";
$email_headers .='Reply-To: reply_to_email@yourdomain.com' . "'r'n";
mail($recipient_address, $email_subject, $email_body, $email_headers);
<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "'r'n" .
    'Reply-To: webmaster@example.com' . "'r'n" .
    'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>

引用自http://php.net/manual/en/function.mail.php

相关文章: