Как отправить емейл и не попасть в СПАМ. Несколько советов и mail-tester.com
Самым простым вариантом отправить почту является php функция mail(), но без правильных заголовков (четвертый аргумент) мы почти гарантированно попадаем в спам.
Поэтому нужно обязательно добавлять в заголовки:
$headers = "Date: ".date("D, d M Y H:i:s")." UT\r\n";$headers.= "MIME-Version: 1.0\r\n";
$headers.= "Content-Type: text/html; charset=\"UTF-8\"\r\n";
$headers.= "Content-Transfer-Encoding: 8bit\r\n";
$headers.= "From: =?UTF-8?B?".base64_encode(“ВАСЯ ПУПКИН“)."?= <".“vp@mail.ru“.">\r\n";
Заголовки x-priority и X-Mailer — указывать не стоит.
Заголовок: subject – нельзя.
Тему передавать правильно следующим кодом:
$subject = "=?UTF-8?B?".base64_encode($this->subject)."?=";mail($this->mail_target, $subject , $message, $headers);
После чего письма должны доходить и попадать во входящие
Проверьте что возвращает фунция mail() - возможно она заблокирована хостером и возвращает false. То есть если FALSE – значит однозначно заблокировал хостер и нужно с ним решать проблему.
Кстати, если функция возвращает true – не факт что идет отправка. Хостер может заблокировать вам порт (обычно 25), особенно для DS и VDS.HTML формат писем
Если отправляются в формате html, то письмо
Заголовок ОТ КОГО — очень важная штука!
Указывать @mail.ru или @gmail.com – бесполезно, SPF и DKIM записи не добавятся.
Поэтому указываем хххх@нашдомен.ру
Как почтовики относятся к емейлам noreply@xxx.ru – пока не изучено.
И тогда устанавливаем SPF
Добавление записи SPF
Удалите существующие TXT-записи. (возможно старые spf?)
Создайте TXT-запись со значением «v=spf1 redirect=_spf.yandex.net».
Если вы хотите отправлять письма не только с серверов Яндекса, укажите дополнительные серверы в таком формате: «v=spf1 ip4:IP-1 ip4:IP-2 ip4:IP-3 include:_spf.yandex.net ~all». Где IP-1, IP-2, IP-3 — IP-адреса дополнительных серверов.
Укажите «@» в поле для заполнения имени или хоста, если такое поле присутствует.
В некоторых панелях управления вместо «@» требуется указать имя вашего домена (например, «yourdomain.com.»). Если вам не удается указать ни «@», ни имя домена, оставьте это поле пустым.
Подождите, пока изменения в DNS вступят в силу. Этот процесс может длиться до 72 часов.
Настройка DKIM
Без DKIM – на gmail не доходят, поэтому для gmail – dkim обязателен
Простой вариант настройки: https://www.port25.com/dkim-wizard/MAIL-tester.com
Данный сервис показывает наскольк ваше письмо похоже на спам.
https://www.mail-tester.com
Набрать 8 из 10 — очень хорошо
5 из 10 — хорошо
Менее 5 из 10 — плохо и скорее всего письма попадут в спам или даже в спам не попадут.
Если же не победили есть наиболее надежный вариант:
создаем ящик на mail.ru или gmail или яндекс почте
Устанавливаем php smtp class
http://soft.unibix.ru/unibix-php/php-smtp-mail-classОтправляем письма с этого ящика!
Код mailto() v.3.0 на сентябрь 2016г
function mailto($to, $subject, $message, $attach=Array(), $from="Робот", $fromAddr="robot@cityhoster.ru") {
$mb_internal_encoding = mb_internal_encoding();
mb_internal_encoding('UTF-8');
$headers = "Date: ".date("r")."\r\n";
$headers.= "From: =?UTF-8?B?".base64_encode($from)."?= <".$fromAddr.">\r\n";
$headers.= "MIME-Version: 1.0\r\n";
$subject = "=?UTF-8?B?".base64_encode($subject)."?=";
if (strpos($message, '