0

我正在制作联系表格。我已经得到了一个基本版本的工作(收集表单信息并将电子邮件从我的网站发送到我的个人电子邮件),但我似乎无法让“附加标题”工作。如果我有以下标题,它工作正常:

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

但是,如果我尝试添加其他邮件标头,例如:

$headers .= 'To: Jack <Jack Johnson>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
$headers .= "\r\nX-Mailer: PHP/" ;

我的邮件功能“失败”。我正在使用 PHP 5.3.8 版。为了确保邮件功能正常工作,我这样做:

$sendmail = mail($email_to, $email_subject, $email_message, $headers);

    if ($sendmail) {
        echo '<div>Thanks for submitting!</div>';
    } else {
        echo '<div>Fail</div>';
    }

我的格式不正确吗?

4

1 回答 1

1
    $headers .= 'To: Jack <Jack Johnson>' . "\r\n";

正如评论中提到的,这不需要在那里。但它几乎肯定会导致问题,因为它不包含电子邮件地址

同样如评论中所述,您可以\r\n通过在开头包含它来获得双倍

    $headers .= "\r\nX-Mailer: PHP/" ;

最后,这不应该导致问题,但你真的不应该这样做:

    $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

密件抄送行不属于标题。它们将出现在所有收件人的标题中,从而破坏了密件抄送的意义。您会发现这是在不同的邮件客户端和服务中间歇性地处理的。有些人会显示它,有些人会保留它,有些人会“友好地”将它从标题中隐藏起来。

PHP 的 mail() 并不是真正设计用于处理 Bcc,因此您可能需要调用 mail() 函数并单独发送给 Bcc 收件人

于 2012-02-03T01:46:50.170 回答