【问题标题】:How do I include sender's name and not just the email address while emailing message from user input form如何在从用户输入表单发送电子邮件时包含发件人的姓名而不仅仅是电子邮件地址
【发布时间】:2014-05-23 16:44:29
【问题描述】:

我正在尝试使用下面给出的简单 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.';
    }

?>

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

【问题讨论】:

  • 在 ';
  • $headers = '来自:webmaster@example.com' 。 "\r\n" 。 “回复:webmaster@example.com”。 "\r\n" 。 'X-Mailer: PHP/' 。 php版本();见php.net/manual/en/function.mail.php
  • 您的第二段代码没有问题。确保您上传了正确的文件,并对表单的操作进行了适当的更改。
  • @SyntaxLAMP 没用。
  • 我也关注了这个:Link 它仍然没有返回我想要的发件人姓名。

标签: php forms email input


【解决方案1】:

试试这个格式,注意空格和\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);

【讨论】:

  • 我对变量名有点困惑。就我上面给出的代码而言,我将 YOURNAME 替换为姓名,将 sender_email@yourdomain.com 和 reply_to_email@yourdomain.com 替换为电子邮件。不工作。我还尝试了 $name 和 $email 带和不带单引号。没用。
  • @user3518133 实际上,YOURNAME 是代表姓名的任何文本,以及您所说的电子邮件。当你说不起作用时 - 你是什么意思?你在服务器的日志文件中得到了什么吗?还是只是不发送。您是否有权访问服务器的 PHP.ini 文件?
  • 似乎该文件不存在或我无权访问它。我试图在主机提供的文件管理器中搜索“php.ini” - cpanel。搜索结果为零。
【解决方案2】:
<?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

【讨论】:

  • 我之前已经通过链接了。它让我对要使用的电子邮件地址格式感到困惑。那是通用的吗?我不这么认为!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 2011-10-07
  • 1970-01-01
相关资源
最近更新 更多