Неправильно отображается электронная почта HTML для почты Godaddy в Интернете

Я использую следующий код PHP для отправки по электронной почте. Я проверил в Outlook и других местах, и все проходит правильно. Однако, если я отправляю электронное письмо человеку, использующему средство просмотра электронной почты Godaddy, у него возникают 2 проблемы:

  • Адрес электронной почты ОТ не отображается
  • Вместо отображения электронного письма в формате HTML он показывает код HTML

Это было проверено с несколькими учетными записями на разных компьютерах и в браузерах.

Вот код, который я использую для отправки электронного письма:

//build and send the email      
    $to = $email;
    $subject = 'Confirm your subscription';
    $message =( "<html>\r\n");
    $message .=( "<head>\r\n");
    $message .=( "<title>Confirm</title>\r\n");
    $message .=( "</head>\r\n");
    $message .=( "<body>\r\n");
    $message .=( "<h2>Thank You for registering</h2>\r\n");
    $message .=( "<p>To complete your registration, please click the link below.</p>\r\n");
    $message .=(" <p><a href=\"http://www.site.com/confirmation.php?confirm=$visitor_hash\">Click here to confirm your interest.</a></p>\r\n"); 
    $message .=( "</body>\r\n");
    $message .=( "</html>\r\n");

    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $headers .= "From: Site<info@site.com>\r\n";
    mail($to, $subject, $message, $headers);

Какие-нибудь мысли?

2 ответа

Решение

После долгих поисков, публикации и настройки я нашел решение. Я нашел это на странице для функции PHP Mail, в комментариях пользователей.

Я изменил эти 3 строки из:

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "From: Site<info@site.com>\r\n";

к

$headers  ='"MIME-Version: 1.0' . PHP_EOL;
$headers .= 'Content-Type: text/html; charset=ISO-8859-1' . PHP_EOL;
$headers .= 'From: Site<info@site.com>' . PHP_EOL;

И это решило проблему.

Спасибо Крис

Правильно построенная электронная почта HTML на самом деле является электронной почтой MIME, которую вы не создаете. Заголовок MIME-версии недостаточно. Попробуйте использовать http://swiftmailer.org/ или PHPMailer, которые позволят вам создавать электронные письма из нескольких частей без особых усилий.

Другие вопросы по тегам