Php 如何在从用户输入表单发送邮件时包括发件人的姓名而不仅仅是电子邮件地址

Php 如何在从用户输入表单发送邮件时包括发件人的姓名而不仅仅是电子邮件地址,php,forms,email,input,Php,Forms,Email,Input,我试图使用一个简单的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 suc

我试图使用一个简单的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);

引用自

在<:$email_from=$name.''之前添加空格$标题='来自:webmaster@example.com' . \r\n.“答复:webmaster@example.com' . \r\n.“X-Mailer:PHP/”。phpversion;看,你的第二段代码没有问题。请确保上载了正确的文件,并对表单的操作进行了适当的更改。@SyntaxLAMP不起作用。我也遵循了这一点:它仍然没有像我希望的那样返回发件人的名称。我对变量名称有点困惑。关于我上面给出的代码,我将用姓名和发件人替换您的姓名_email@yourdomain.com答复!_email@yourdomain.com用电子邮件。不起作用。我还尝试了$name和$email,不带单引号。不起作用。@user3518133实际上,你的名字是代表名字的任何文本,以及你所说的电子邮件。当你说不起作用-你是什么意思?你在服务器的日志文件中得到什么了吗?或者它只是不发送它。您有权访问服务器的PHP.ini文件吗?似乎该文件不存在,或者我无权访问它。我试图在主机cpanel提供的文件管理器中搜索php.ini。搜索结果是零。我曾经通过链接。这让我对要使用的电子邮件地址格式感到困惑。这是通用的吗?我不这么认为!
<?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);
?>