-2

我想在提交 HTML 表单时使用 PHP 发送电子邮件。

我从教程中学习并制作了这个 PHP 脚本,但是当我在我的网络邮件中查看它时,我只看到电子邮件地址、主题和消息,但没有看到名称。我需要做什么才能显示名称?

表单变量:

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>";
}
4

3 回答 3

1

您的“发件人”标头的格式不正确。它应该采用以下格式:

"From: Sender Name <sender@domain.com>"

所以你的$headers作业应该是:

$headers =  'From: '.$name.' <'.$email. ">\r\n" .
            'Reply-To: '.$email . "\r\n" .
            'X-Mailer: PHP/' . phpversion();
于 2013-10-27T07:38:10.367 回答
1

您应该将 $headers 变量修改为:

$headers =  'From: ' .$name. ' <' .$email. '>' . "\r\n" .
            'Reply-To: '.$email . "\r\n" .
            'X-Mailer: PHP/' . phpversion();

mail在此处阅读有关 php.net 功能的更多信息:http: //php.net/manual/en/ref.mail.php

于 2013-10-27T07:45:21.777 回答
0

此外,也许 PHPMailer,请参阅https://github.com/PHPMailer/PHPMailer对您丰富您的邮件很有趣。

于 2013-10-27T08:12:45.413 回答