Как автоматически отправлять почту с php без почтовой посадки в корзину - PullRequest
0 голосов
/ 25 декабря 2010

Я использую функцию PHP mail () для отправки писем. Но все мои письма автоматически попадают в мусорный ящик. Есть ли способ предотвратить это? Если да, то где я должен прочитать, чтобы узнать больше об этом.

Вы бы порекомендовали мне использовать PHPmailer?

С уважением, Александр

Ответы [ 5 ]

4 голосов
/ 11 августа 2011

Не похвастаюсь, но я инженер почтового сервера.Спам-фильтры ищут ряд «проблем» с электронной почтой и добавляют «баллы» за каждую небольшую проблему.Если все эти проблемы будут добавлены, электронная почта может быть (любой из): отклонена во время SMTP, перенаправлена ​​в папку «Спам», перенаправлена ​​в папку «Входящие», но помечена « СПАМ » чёрным (загадочно)потерян).

Чтобы избежать этой проблемы, вы хотите исправить НЕСКОЛЬКО проблем, и это уменьшит ваш счет спама или конфликт политики спама.Если вы хотите добиться наилучших результатов, вы хотите пойти своим путем и немного узнать о «лучших методах работы с электронной почтой».

1 Проблема заключается в следующем: не отправлять электронную почту получателю из сценария PHP навеб-сервер.В любом случае, не напрямую получателю.

Антиспамовое программное обеспечение давно научилось не доверять электронной почте через Интернет из-за небезопасных установок formmail.pl и т. Д.

ПРАВИЛЬНЫЙ способотправка электронной почты с веб-сервера означает отправку электронной почты через действительный почтовый ящик на действительном почтовом сервере.Поэтому, если на вашем веб-сайте есть хостинг электронной почты, создайте почтовый ящик с именем, например, «website-notification@websitedomain.com».Называй это как хочешь.Теперь вы хотите, чтобы ваш PHP-скрипт отправлял электронную почту через этот адрес, используя аутентифицированный SMTP.Я оставлю процесс изучения того, как использовать Аутентифицированный SMTP из PHP, как учебное упражнение для вас (в Интернете есть множество учебных пособий).

Как только вы отправляете электронные письма через действующий SMTP-сервер, возможно, ваша почта доставленалучше .. но не останавливаться на достигнутом.У вас все еще может быть такая же проблема в каком-то другом домене доставки электронной почты ...

2) Как заметил кто-то другой, убедитесь, что вы не пропускаете To: From: Subject: и Date :.Дата должна быть в стандартном формате даты для электронной почты, иначе ее будут помечать некоторые фильтры спама.Если вы пропустите заголовок, вы будете помечены как спам.

3) Ваш адрес FROM должен быть действительным почтовым ящиком.Не отправляйте электронную почту, используя «From: noreply@yourdomain.com».Адрес отправителя должен существовать, потому что некоторые программы защиты от спама выполняют «проверку отправителя», чтобы проверить, является ли адрес отправителя поддельным или поддельным.

На вашем почтовом сервере создайте noreply @.Никто не говорит, что вам действительно нужно проверять этот почтовый ящик ... у вас может быть правило, которое автоматически удаляет всю почту по неконтролируемому адресу.Ключевым моментом является то, что если другие почтовые серверы получают «550 таких пользователей», когда они подключаются к вашему MX и проверяют этот почтовый ящик, то ваша электронная почта может быть помечена как спам.

4) Если DNS вашего домена имеетЗапись SPF, будьте на 100% уверены, что в ней перечислены все IP-адреса, которые могут отправлять электронную почту для вашего домена.Если вы не уверены, не используйте записи SPF, потому что неправильная запись SPF повредит показателям доставки.

5) Не используйте службы конфиденциальности регистрации домена или прокси-сервера домена, которые скрывают вашу контактную информацию от WHOIS.Любой законный отправитель электронной почты не должен скрывать контактную информацию домена.Спам-фильтры проверят это.

6) Знайте IP-адрес своего почтового сервера и регулярно проверяйте, не занесен ли он в «черный список» в черных списках спама SpamCop, SpamHaus или Barracuda.Google для получения дополнительной информации.

Надеюсь, мой ответ поможет вам и даст понять, что простого ответа на все это нет.В эти дни, если вы хотите отправить электронное письмо, вы должны знать об этих проблемах.

3 голосов
/ 25 декабря 2010

Полагаю, вы имеете в виду трэш-бокс на конце получателя. Таким образом, в основном получающий почтовый сервер расценивает это как спам. Это может произойти, если:

1) IP-адрес, с которого вы отправляете, уже занесен в черный список для рассылки спама (часто случается на виртуальном хостинге)

2) IP и домен относительно новые и неизвестны.

(Обратите внимание, что часто рассылки с хорошо зарекомендовавших себя сайтов также попадают в спам).

Если это ваш выделенный IP-адрес, то настройка RDNS для IP-адреса в соответствии с именем домена, скорее всего, решит проблему. Еще одна обычная практика - предупредить получателя (если он подписывается на ваш сайт), чтобы проверить папку «thrash / spam» и занести в белый список ваш адрес электронной почты в своей почтовой учетной записи.

С уважением,

JP

3 голосов
/ 25 декабря 2010

Ответ 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);
0 голосов
/ 25 декабря 2010

Это происходит из-за того, что часто отсутствуют заголовки / если отсутствует хорошо известная подпись ключа домена сервера электронной почты или что-то в этом роде. Если у вас уже есть отдельный почтовый сервер, вам следует проверить, можете ли вы использовать пакет PHP Pear Mail для отправки электронной почты с помощью вашего почтового сервера, а не напрямую через почтовую функцию. Это то, что я считаю удобным, так как оно гораздо более гибкое.

0 голосов
/ 25 декабря 2010

Возможно, это как-то связано с настройкой почтового клиента и настроек спама. Попробуйте открыть аккаунт на gmail.com и отправить туда письмо, если все в порядке, вы знаете, что это проблема вашего почтового сервера / клиента. Если это не так, опубликуйте свой PHP-код и полные заголовки писем, которые вы получили.

...