1 回答
TA贡献1816条经验 获得超6个赞
如果要将标头作为数组传递,则需要将标头名称指定为数组键!(PHP文档:“如果传递了一个数组,它的键是标头名称,它的值是相应的标头值。
现在有 2 种解决方案。
解决方案 1(标头作为字符串):
$headers = "MIME-Version: 1.0";
$headers .= "Content-type: text/plain; charset=UTF-8";
$headers .= "From: {$name} <{$from}>";
$headers .= "Reply-To: <{$from}>";
$headers .= "Subject: {$subject}";
$headers .= "X-Mailer: PHP/".phpversion();
解决方案 2(标头作为数组):
$headers = [
'MIME-Version' => 'MIME-Version: 1.0',
'Content-type' => 'text/plain; charset=UTF-8',
'From' => "{$name} <{$from}>",
'Reply-To' => $from,
'Subject' => $subject,
'X-Mailer' => 'PHP/' . phpversion(),
];
要检查是否有效,您可以检查最后一个错误。mail()
例:
$success = mail('example@example.com', 'My Subject', $message);
if (!$success) {
$errorMessage = error_get_last()['message'];
}
顺便说一句。为了避免由于不符合RFC而导致的接收电子邮件服务器的任何问题,您应该使用像SwiftMailer或PHPMailer这样的邮件类。
- 1 回答
- 0 关注
- 81 浏览
添加回答
举报