Как автоматически отправлять почту с php без посадки почты в корзину
Я использую функцию PHP mail() для отправки писем. Но все мои письма автоматически попадают в мусорный ящик. Есть ли способ предотвратить это? Если так, где я должен прочитать, чтобы узнать больше об этом.
Вы бы порекомендовали мне использовать PHPmailer?
С наилучшими пожеланиями, Александр
5 ответов
Я полагаю, вы имеете в виду трэш-бокс на конце получателя. Таким образом, в основном получающий почтовый сервер расценивает это как спам. Это может произойти, если:
1) IP-адрес, с которого вы отправляете, уже занесен в черный список для рассылки спама (часто случается на виртуальном хостинге)
2) IP и домен относительно новые и неизвестны.
(Обратите внимание, что часто рассылки с хорошо зарекомендовавших себя сайтов также попадают в спам).
Если это ваш выделенный IP-адрес, то установка RDNS для IP-адреса в соответствии с именем домена, скорее всего, решит проблему. Другая обычная практика - предупредить получателя (если он подписывается на ваш сайт), чтобы проверить его папку "thrash/spam" и занести в белый список ваш адрес электронной почты в своей почтовой учетной записи.
С уважением,
JP
Не похвастаюсь, но я инженер почтового сервера. Спам-фильтры ищут ряд "проблем" с электронной почтой и добавляют "баллы" за каждую небольшую проблему. Если все эти проблемы будут добавлены, электронная почта может быть (любой из): отклонена во время SMTP, перенаправлена в папку "Спам", перенаправлена в папку "Входящие", но помечена как "СПАМ", черная дыра (таинственно потеряна).
Чтобы избежать этой проблемы, вы хотите исправить НЕСКОЛЬКО проблем, и это уменьшит ваш счет спама или конфликт политики спама. Вы хотите выйти из своего пути и узнать немного о "лучших методах электронной почты", если хотите получить лучшие результаты.
1 проблема: не отправлять электронную почту получателю из сценария PHP на веб-сервере. В любом случае, не напрямую получателю.
Антиспамовое программное обеспечение давно научилось не доверять электронной почте через Интернет из-за небезопасных установок formmail.pl и т. Д.
ПРАВИЛЬНЫЙ способ отправки электронной почты с веб-сервера заключается в отправке электронной почты через действительный почтовый ящик на действительном почтовом сервере. Поэтому, если на вашем веб-сайте есть хостинг электронной почты, создайте почтовый ящик с именем, например, "website-notification@websitedomain.com". Называй это как хочешь. Теперь вы хотите, чтобы ваш PHP-скрипт отправлял электронную почту через этот адрес, используя аутентифицированный SMTP. Я оставлю процесс изучения того, как использовать Аутентифицированный SMTP из PHP в качестве учебного упражнения для вас (в Интернете есть много учебных пособий).
Как только вы отправляете электронные письма через ваш действующий SMTP-сервер, возможно, ваша почта доставляется лучше... но не останавливайтесь на этом. У вас все еще может быть такая же проблема на каком-то другом домене доставки электронной почты...
2) Как кто-то еще заметил, убедитесь, что вы не пропустите To: From: Subject: and Date:. Дата должна быть в стандартном формате даты для электронной почты, иначе ее будут помечать некоторые фильтры спама. Если вы пропустите заголовок, вы будете помечены как спам.
3) Ваш адрес ОТ должен быть действительным почтовым ящиком. Не отправляйте электронную почту, используя "From: noreply@yourdomain.com". Адрес отправителя должен существовать, потому что некоторые программы защиты от спама будут выполнять "Проверка отправителя", чтобы проверить, является ли адрес отправителя поддельным или поддельным.
На вашем почтовом сервере создайте noreply @. Никто не говорит, что вам действительно нужно проверить этот почтовый ящик... у вас может быть правило, которое автоматически удаляет всю почту по неконтролируемому адресу. Ключевым моментом является то, что если другие почтовые серверы получат "550 таких пользователей" при подключении к вашему MX и проверке этого почтового ящика, то ваша электронная почта может быть помечена как спам.
4) Если в вашем домене DNS есть запись SPF, убедитесь, что на 100% указаны все IP-адреса, которые могут отправлять электронную почту для вашего домена. Если вы не уверены, не используйте записи SPF, потому что неправильная запись SPF повредит показателям доставки.
5) Не пользуйтесь услугами "Конфиденциальность регистрации доменов" или "Прокси-сервер домена", которые скрывают вашу контактную информацию от вашего WHOIS. Любой законный отправитель электронной почты не должен скрывать контактную информацию домена. Фильтры спама проверят это.
6) Знайте IP-адрес вашего почтового сервера и регулярно проверяйте, не занесен ли он в "черный список" в черных списках спама SpamCop, SpamHaus или Barracuda. Google для больше.
Надеюсь, мой ответ поможет вам и покажет, что простого ответа на все это нет. В эти дни, если вы хотите отправить электронное письмо, вы должны знать об этих проблемах.
Ответ JP отчасти верен, но он также может быть вашим заголовком в электронном письме, которое я знаю по опыту: оно отправляет материал в папку со спамом, попробуйте следующее;
установите адреса электронной почты на свой домен, например, "нет ответа" или "правильный ответ".
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
Это происходит из-за того, что часто отсутствуют заголовки / если отсутствует известная подпись ключа домена сервера электронной почты или что-то в этом роде. Если у вас уже есть отдельный почтовый сервер, вам следует проверить, можете ли вы использовать пакет PHP Pear Mail для отправки электронной почты с помощью вашего почтового сервера, а не напрямую через почтовую функцию. Это то, что я считаю удобным, так как оно гораздо более гибкое.
Вероятно, это как-то связано с настройкой почтового клиента и настроек спама. Попробуйте открыть счет на gmail.com
и отправив письмо туда, если все в порядке, вы знаете, что это проблема вашего почтового сервера / клиента. Если это не так, опубликуйте свой PHP-код и полные заголовки сообщений электронной почты, которые вы получили.