PHP Mail отправляет файл с html вместо php (Gmail)

0

Я использую этот скрипт около 2 месяцев, и все работает правильно. Сегодня я добавлял новые функции, связанные с отправкой электронной почты, и я заметил, что письма, отправленные в gmail, имеют некоторые проблемы, но только на gmail. Вместо получения регулярного сообщения (text/html) я получаю файл с именем "no name.html" с отправленным сообщением.

Вот мой код:

$from = "My name <[email protected]>";
$email = "[email protected]"
$to = "";
$subject = "Subject Here";
$host = "smtp.gmail.com";
$username = "[email protected]";
$password = "passwordhere";
$headers = "";
$smtp = Mail::factory('smtp', array('host' => $host,
                            'auth' => true,
                            'username' => $username,
                            'password' => $password));

$body = "<div>Hello World</div>";                     
$to = "<" . $email . ">";
$headers = array('From' => $from,
                            'To' => $to,
                            'Subject' => $subject,
                            "MIME-Version" => "1.0",
                            "Content-Type" => "text/html charset=\"ISO-8859-1\"",
                            "Content-Transfer-Encoding" => "8bit");
$mail = $smtp->send($to, $headers, "<html><head><meta http-equiv=\"Content-type\" 
 content=\"text/html;charset=UTF-8\"></head><body>" . $body . "</body></html>");
Теги:
email
attachment

2 ответа

1

Я не знаю, если это причина вашей проблемы, но:

В вашем заголовке у вас есть кодировка ISO:

"Content-Type" => "text/html charset=\"ISO-8859-1\""

И в html-контенте UTF-8:

<meta http-equiv=\"Content-type\" content=\"text/html;charset=UTF-8\">
  • 0
    Я исправил это, но он все еще не работает.
  • 0
    чтобы отправить письмо, вы должны использовать не массив для заголовка, а строку: используйте implode ("/ r / n", $ headers) вместо $ headers
Показать ещё 2 комментария
0

Вместо этого я использовал phpmailer, и теперь он работает нормально.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню