如何使用PHP发送电子邮件?

时间:2013-10-27 07:32:11

标签: php forms validation

我想在提交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>";
}

3 个答案:

答案 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对于丰富您的邮件很有意思。