我想在提交HTML表单时使用PHP发送电子邮件。
我从一个教程中学到了并编写了这个PHP脚本,但是当我在我的webmail中查看它时,我只看到了电子邮件地址,主题和消息,但没有名字。我需要做什么才能显示名称?
表单变量:
if (empty($_POST) === false) {
$errors = array();
$name = trim($_POST["name"]);
$email = trim($_POST["email"]);
$subject = trim($_POST["subject"]);
$message = trim($_POST["message"]);
$answerbox = trim($_POST["answerbox"]);
// ... etc (validation)
if (empty($errors) === true) {
$headers = 'From: '.$email. "\r\n" . $name.
'Reply-To: '.$email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail('mail@example.com',$subject,$message,$headers);
print "<p class='formerrors'>Thank you for your message, I'll get back to you shortly!</p>";
}
答案 0 :(得分:1)
“发件人”标题的格式不正确。它应该是以下格式:
"From: Sender Name <sender@domain.com>"
因此,您的$headers
作业应为:
$headers = 'From: '.$name.' <'.$email. ">\r\n" .
'Reply-To: '.$email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
答案 1 :(得分:1)
您应该将$ headers变量修改为:
$headers = 'From: ' .$name. ' <' .$email. '>' . "\r\n" .
'Reply-To: '.$email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
请在此处详细了解php.net上的mail
功能:http://php.net/manual/en/ref.mail.php
答案 2 :(得分:0)
此外,也许PHPMailer,请参阅https://github.com/PHPMailer/PHPMailer对于丰富您的邮件很有意思。