Я использую этот скрипт около 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>");
Я не знаю, если это причина вашей проблемы, но:
В вашем заголовке у вас есть кодировка ISO:
"Content-Type" => "text/html charset=\"ISO-8859-1\""
И в html-контенте UTF-8:
<meta http-equiv=\"Content-type\" content=\"text/html;charset=UTF-8\">
Вместо этого я использовал phpmailer, и теперь он работает нормально.