Возникли проблемы с установкой массива $ headers в почтовой функции PHP
Я не могу отправлять электронную почту через функцию PHP mail, пока я указываю массив $ headers как
$headers = array (
'From' => "info@mysite.com",
'Content-type' => "text/html;charset=UTF-8"
);
Или
$headers=array(
'From: "info@mysite.com',
'Content-Type:text/html;charset=UTF-8',
'Reply-To: "info@mysite.com'
);
А вот код
<?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);
?>
Можете ли вы пожалуйста, дайте мне знать, почему это происходит? и как я могу это исправить?
3 ответа:
Ваш код должен быть:
Если вы хотите отправить
$headers
через массив, то вам нужно добавить\r\n
Конец всех заголовков и преобразовать их вsrting
.$headers = array( 'From: <info@mysite.com>', 'Content-Type:text/html;charset=UTF-8', 'Reply-To: <info@mysite.com>' ); $headers = 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";
Или с помощью массива преобразовать массив в строку с помощью
implode()
и отправить его вmail()
$headers = implode("\r\n", $headers); mail($email, "Call Back Requert Confirmation", $msg, $headers);
$headers
должна быть строка, а не массив:Http://php.net/manual/en/function.mail.php
$headers = 'From: info@mysite.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\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));