Отправка почты из PHP-скриптов

Статья давно не обновлялась, поэтому информация могла устареть.

Решение проблем с отправкой почты из PHP скриптов

Используйте простой скрипт для отправки почты (см. ниже) для диагностики проблем

Распространенные проблемы:

  • Почта отправляется, однако до получателя она не доходит, либо приходит с большой задержкой. PHP работает в режиме PHP как модуль Apache.

В свойствах www-домена проверьте правильность указания поля E-Mail администратора. Скорее всего там указан несуществующий домен, укажите корректный заведенный локально на том же сервере (это важно) почтовый адрес. В случае неверного адреса почта отправляется от www@localhost и антиспам-защита на почтовых серверах не пропускает или задерживает такую почту.

  • Не запускается скрипт вообще, выдается сообщение 500 Internal Server Error, PHP работает в режиме как CGI. Либо отправляется, но проблемы аналогичны предыдущему пункту.

Проверьте правильность адреса и исправьте или добавьте в случае отсутствия в пользовательском файле php.ini строку:

sendmail_path = "/usr/sbin/sendmail -t -i -f email@domain.ru"

где email@domain.ru - корректный заведенный локально на том же сервере (это важно) почтовый адрес

Файл php.ini следует искать (можно создать если его нет) в каталоге /home/имя_пользователя_владельца_сайта/data/php-bin/

Простейший скрипт для отправки почты

<?php
 mail("joecool@example.com", "My Subject", "Line 1\nLine 2\nLine 3");
?>