PHP Mail правильные заголовки для Hotmail

Проблема проста. Всякий раз, когда я пытаюсь отправить электронное письмо с моего PHP-сервера на адрес горячей почты, оно даже не достигает горячей папки INBOX и не попадает в папку СПАМ.

Я использую пользовательскую функцию для отправки по электронной почте, но я предполагаю, что некоторые из заголовков, вероятно, неверны, или, возможно, они должны быть в определенном порядке?

function send_mail($from,$to,$subject,$body){
    global $sitename;
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

    // Additional headers
    $headers .= 'To: $to' . "\r\n";
    $headers .= 'From: $sitename <$from>' . "\r\n";
    $headers .= 'Cc: $from' . "\r\n";
    $headers .= 'Bcc: $from' . "\r\n";

    $headers .= 'Reply-To: $from' . "\r\n";
    $headers .= "Return-Path: $from\n";
    $headers .= "Message-ID: <" . md5(uniqid(time())) . "@" . $_SERVER['SERVER_NAME'] . ">\n";
    $headers .= "Date: " . date('r', time()) . "\n";
    if (mail($to,$subject,$body,$headers)) {return TRUE;} else {return FALSE;}
}

Я проверил сервер, чтобы увидеть, если он в черном списке. Это не.

В чем может быть проблема? Или, может быть, у кого-то есть проверенная функция почты PHP, которая работала с hotmail?

Спасибо

4 ответа

Почему вы не отправляете через phpmailer? Просто создайте одну учетную запись Gmail или собственную учетную запись электронной почты в своем домене.

Пример с учетной записью Gmail:

require("phpmailer/class.phpmailer.php");

function send_mail($fromEmail, $fromName, $subject, $body)
{

    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 0; // 1 tells it to display SMTP errors and messages, 0 turns off all errors and messages, 2 prints messages only.
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "ssl";
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465; // or 587
    $mail->Username = "youremail@gmail.com";
    $mail->Password = "yourpassword";
    $mail->From = "youremail@gmail.com";
    $mail->FromName = "yourname";
    $mail->AddAddress($fromEmail, $fromName);
    $mail->AddReplyTo("youremail@gmail.com", "yourname");

    $mail->WordWrap = 50;                                 // set word wrap to 50 characters
    // $mail->AddAttachment("/folder/file.zip");         // add attachments
    $mail->IsHTML(true);                                  // set email format to HTML

    $mail->AddEmbeddedImage('img/logo.png', 'logo'); //if you need a logo signature
    $mail->Subject = $subject;
    $mail->Body    = $body."<br/><br/><a href=\"http://www.yourwebsite.com\"><img src=\"cid:logo\" alt=\"You website title\"></a>";

    // $mail->AltBody = "This is the body in plain text for non-HTML mail clients ;-)";
    $mail->Send();
    if($mail->Send())
    {
        return true;
    }
    else
    {
        return false;
    }

}

Дополнительная информация: http://phpmailer.worxware.com/?pg=examplebgmail

Это может произойти из-за нашего сервера, на котором мы разместили наш php-файл.

Я также столкнулся с той же проблемой. Но моя проблема возникла из-за сервера Dreamhost. Это черный список с сервера горячей почты.

Решение заключается в том, что я купил mailjet для отправки электронной почты.

Запись SPF - это тип записи службы доменных имен (DNS), которая определяет, каким почтовым серверам разрешено отправлять электронную почту от имени вашего домена.

Цель записи SPF - запретить спамерам отправлять сообщения с поддельными адресами From в вашем домене. Получатели могут обратиться к записи SPF, чтобы определить, поступило ли сообщение с вашего домена с авторизованного почтового сервера.

Если в вашем домене нет записи SPF, некоторые домены-получатели могут отклонять сообщения от ваших пользователей, поскольку они не могут проверить, что сообщения поступают с авторизованного почтового сервера.

SPF-записи для исходящего шлюза

Если вы решите включить функцию почтового шлюза, вам необходимо убедиться, что адрес SMTP-сервера Google и сервера исходящего шлюза включен в запись SPF.

Для более подробной информации вы можете проверить эту ссылку

У вас есть запись SPF? Hotmail блокирует домены без записи SPF

Вы можете сделать один здесь

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