在 PHP 邮件函数中设置 $headers 数组的问题

Suf*_*fii 6 php email email-headers

当我将 $headers 数组指定为时,我无法通过 PHP 邮件功能发送电子邮件

$headers = array (
               'From' => "info@mysite.com",
               'Content-type' => "text/html;charset=UTF-8"
               );
Run Code Online (Sandbox Code Playgroud)

或者

$headers=array(
    'From: "info@mysite.com',
    'Content-Type:text/html;charset=UTF-8',
    'Reply-To: "info@mysite.com'
);
Run Code Online (Sandbox Code Playgroud)

这是代码

 <?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);
?>
Run Code Online (Sandbox Code Playgroud)

你能告诉我为什么会这样吗?我该如何解决这个问题?

har*_*nki 5

如果要$headers通过数组发送,则需要添加\r\n到每个标头值的末尾并将数组转换为string.

你的代码应该是:

$headers = array(
    'From: <info@mysite.com>',
    'Content-Type:text/html;charset=UTF-8',
    'Reply-To: <info@mysite.com>'
);
$headers = implode("\r\n", $headers);
Run Code Online (Sandbox Code Playgroud)