在PHP邮件函数中设置$headers数组时出现问题
当我将$headers数组指定为在PHP邮件函数中设置$headers数组时出现问题,php,email,email-headers,Php,Email,Email Headers,当我将$headers数组指定为 $headers = array ( 'From' => "info@mysite.com", 'Content-type' => "text/html;charset=UTF-8" ); 或 这是代码 <?php $email = 'test@test.com'; $headers=array( 'From: "info@mysi
$headers = array (
'From' => "info@mysite.com",
'Content-type' => "text/html;charset=UTF-8"
);
或
这是代码
<?php
$email = 'test@test.com';
$headers=array(
'From: "info@mysite.com',
'Content-Type:text/html;charset=UTF-8',
'Reply-To: info@mysite.com'
);
$msg= 'This is a Test';
mail($email, "Call Back Requert Confirmation", $msg, $headers);
?>
你能告诉我为什么会这样吗?如何解决此问题?如果要通过数组发送
$headers
,则需要将\r\n
添加到每个头值的末尾,并将数组转换为字符串
您的代码应该是:
$headers = array(
'From: <info@mysite.com>',
'Content-Type:text/html;charset=UTF-8',
'Reply-To: <info@mysite.com>'
);
$headers = implode("\r\n", $headers);
$headers=数组(
“发件人:”,
'内容类型:text/html;charset=UTF-8',
答复:
);
$headers=内爆(“\r\n,$headers”);
$headers
必须是字符串,而不是数组:
如果要将$headers
保留为一个数组,也可以这样做
mail($email, "Call Back Requert Confirmation", $msg, implode("\r\n", $headers));
尝试将标题作为字符串而不是数组发送
$headers = "From: info@mysite.com\r\n";
$headers.= "MIME-Version: 1.0\r\n";
$headers.= "Content-Type:text/html;charset=UTF-8\r\n";
或者使用数组使用内爆()
转换字符串中的数组,并将其发送到邮件()
将头作为字符串而不是数组发送HI,老实说,我没有尝试iTunesjoin(“\r\n”,$headers)
。没有尝试什么?阅读文档?谢谢hardik,但是这段代码添加了“在电子邮件之前!地址不应该用引号括起来,它应该
。但是我得到的是”info@mysite.comstill我得到的答复是“info@mysite.com在电子邮件地址!在收到邮件时不显示,但在回复时显示!根据文档,由于PHP7.2,mail
应该能够接受$headers
参数的数组。
mail($email, "Call Back Requert Confirmation", $msg, implode("\r\n", $headers));
$headers = "From: info@mysite.com\r\n";
$headers.= "MIME-Version: 1.0\r\n";
$headers.= "Content-Type:text/html;charset=UTF-8\r\n";
$headers = implode("\r\n", $headers);
mail($email, "Call Back Requert Confirmation", $msg, $headers);