1 回答
TA贡献1744条经验 获得超4个赞
如果要将标头作为数组传递,则需要将标头名称指定为数组键!(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 关注
- 93 浏览
添加回答
举报