Почему я не могу отправить письмо на Hotmail? - PullRequest
3 голосов
/ 12 августа 2011

Вот мой код:

$boundary = sha1('whatever');

$headers = 'MIME-Version: 1.0'."\r\n";
$headers .= 'From: "Domainname" emailname@domain.com'."\r\n";
$headers .= 'Reply-to: Domainname <emailname@domain.com>'."\r\n";
$headers .= 'X-Priority: 3'."\r\n";
$headers .= 'X-Mailer: Mail 1.0'."\r\n";
$headers .= 'Subject: '.$subject."\r\n"; 
$headers .= 'Content-Type: multipart/alternative; boundary="'.$boundary.'"'."\r\n\r\n";

$message = '--'.$boundary."\r\n";
$message .= 'Content-Type: text/plain; charset="utf-8"'."\r\n\r\n";
$message .= $text."\r\n";
$message .= '--'.$boundary."\r\n";
$message .= 'Content-Type: text/html; charset="utf-8"'."\r\n\r\n";
$message .= $html."\r\n";
$message .= '--'.$boundary.'--';

mail($email, $subject, $message, $headers);

Он работал для Gmail, Yahoo, GMX ... но не работал для Hotmail / Live / MSN.

Поскольку это работало для Gmail, я могу предположить, что это не имеет никакого отношения к моему серверу, верно?

Я тоже попробовал просто:

mail('username@hotmail.com', 'This is a subject', 'This is the body');

Та же проблема. Его даже не отправляют в папку нежелательной почты.

Ответы [ 3 ]

7 голосов
/ 12 августа 2011

Старый ответ:

Hotmail блокирует домены без записи SPF.Вы можете сделать один здесь

изменить:

По состоянию на июнь 2015 года, общие требования:

1) DKIM Включение DKIM в Exim теперь очень важный инструмент, чтобы уменьшить вероятность того, что ваши письма будут помечены как спам.Настоятельно рекомендуется включить DKIM для ваших доменов.

2) запись SPF с -all вместо ~ all

3) записи DMARC, чтобы помочь удаленным серверам решить, что делать с отказавшим DKIM / SPFсообщения.

4) Обычные вещи, а) например, обратный поиск IP при отправке IP, б) прямой просмотр этого значения rDNS, предпочтительно указывающего на тот же IP, в) запись MX на имени хоста.

Пример:

"v=spf1 a mx ip4:1.2.3.4 -all"

Где 1.2.3.4 - ip вашего сервера.

1 голос
/ 30 марта 2013

Microsoft использует различные фильтры аутентификации для определения того, является ли электронная почта спамом или нет.

Обычные отраслевые практики включают проверку электронной почты на наличие проверки SPF, идентификатора отправителя и записей DKIM в полученной электронной почте.

Sender ID Framework - это протокол технологии проверки подлинности электронной почты, который помогает решить проблему подделки и фишинга путем проверки доменного имени, с которого отправляются сообщения электронной почты.

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

DKIM (Идентифицированная Почта DomainKey) - это более новая реализация старой системы DomainKeys, которая по сути является более сложным подходом к проверке SPF / почты, для которого требуется, чтобы почта была подписана с помощью закрытого ключа и проверена на соответствие открытому ключу, найденному в запись DNS. По сути, это действует как более безопасная версия SPF.

Вы можете отправить электронное письмо с test@domain.com на адрес check-auth@verifier.port25.com, когда будет отправлено электронное письмо с подтверждением DKIM, DomainKeys, SPF, SpamAssassin и Sender-ID.

Однако в последние месяцы я обнаружил, что, несмотря на включение этих элементов в отправленные электронные письма, Microsoft по-прежнему отбрасывает законные электронные письма. Microsoft рекомендовала воспользоваться услугами Sender Path , которая является службой сертификации платных услуг.

Однако я обнаружил, что, как только получатель указал наш адрес электронной почты в качестве сохраненного контакта , он получил наши электронные письма в порядке. Поэтому я создал vCard для нашей компании и призвал наших клиентов, использующих почтовые службы Hotmail или Windows Live, сохранить vCard в качестве контакта, чтобы обеспечить правильную доставку наших писем.

1 голос
/ 12 августа 2011

Все интернет-провайдеры и почтовые серверы имеют разные методы обнаружения спама и черные списки.Вы должны использовать стороннюю организацию, которая занимается вопросами доставки, от вашего имени, например SendGrid .Отправка электронной почты через SendGrid примерно так же проста, как вы делаете это в своем вопросе.Проверьте это пример .Кроме того, они имеют довольно справедливую цену и бесплатный уровень.

Если вы используете ec2, вы должны проверить Amazon SES (Simple Email Service).Вот FAQ

...