email — Проблемы с настройкой массива $ заголовков в PHP Mail

Я не могу отправлять электронную почту через PHP-функцию почты, пока я указываю массив $ headers как

$headers = array (
'From' => "[email protected]",
'Content-type' => "text/html;charset=UTF-8");

или же

$headers=array(
'From: "[email protected]',
'Content-Type:text/html;charset=UTF-8',
'Reply-To: "[email protected]'
);

и вот код

 <?php
$email = '[email protected]';
$headers=array(
'From: "[email protected]',
'Content-Type:text/html;charset=UTF-8',
'Reply-To: [email protected]'
);

$msg= 'This is a Test';

mail($email, "Call Back Requert Confirmation", $msg, $headers);
?>

пожалуйста, дайте мне знать, почему это происходит? и как я могу это исправить?

3

Решение

Ваш код должен быть:

Если вы хотите отправить $headers через массив потом нужно добавить \r\n конец всех заголовков и преобразовать их в srting,

$headers = array(
'From: <[email protected]>',
'Content-Type:text/html;charset=UTF-8',
'Reply-To: <[email protected]>'
);
$headers = implode("\r\n", $headers);
1

Другие решения

попробуйте отправить заголовки как строку, а не как массив

$headers = "From: [email protected]\r\n";
$headers.= "MIME-Version: 1.0\r\n";
$headers.= "Content-Type:text/html;charset=UTF-8\r\n";

или используя массив конвертировать массив в строку, используя implode() и отправить его mail()

$headers = implode("\r\n", $headers);
mail($email, "Call Back Requert Confirmation", $msg, $headers);
2

$headers должна быть строкой, а не массивом:

http://php.net/manual/en/function.mail.php

$headers =
'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'MIME-Version: 1.0' . "\r\n" .
'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail($email, "Call Back Requert Confirmation", $msg, $headers);

Если вы хотите сохранить $headers как массив, вы также можете сделать

mail($email, "Call Back Requert Confirmation", $msg, implode("\r\n", $headers));
1
По вопросам рекламы [email protected]