Многие сталкиваются с необходимостью отправки писем, о регистрации пользователя, Формы связи, о заказе товара и пр. Но что бы письмо дошло до назначения необходимо точно указывать от какого имени нужно отправлять письма(Apache по умолчанию отправляет от имени [email protected]) но и часто такие письма попадают в спам. Вторая проблема более банальна. Вы покупаете VPS, Но увы хостер закрыл использование 25 порта(многие так борятся с нехорошими клиентами) и если уж хостер не пошел на уступки и не открыл порт можно воспользоваться сервис pdd.yandex или google apps если хотите отправлять письма от имени вашего домена или же просто использовать их SMTP для отправки писем.
После небольшого интро можем приступить к настройке.
С нашей проблемой нам поможет утилита msmtp
для установки на Centos
1 | yum install msmtp |
Ubuntu/Debian:
1 | apt-get install msmtp |
для других дистрибутивов смотрите какой менеджер пакетов использует система
Создаем файл SMTP настроек
1 | nano /etc/.msmtp |
пример:
1 2 3 4 5 6 7 8 9 10 11 | account <strong>yandex</strong> logfile /var/log/yandex.log host smtp.yandex.ru port 587 from [email protected] keepbcc on auth on user [email protected] password pass tls on tls_starttls on |
ну и отправим естественно в дебаге
1 | echo "hello" | msmtp --debug -a <strong>yandex </strong>[email protected] |
yandex — имя акаунта настройки
поправим права для апач
1 | chown apache:apache /etc/.msmtp |
1 | chmod 600 /etc/.msmtp |
ну и привяжем использование msmtp к php через глобальный параметр php.ini
1 | sendmail_path = "/usr/bin/msmtp -C /etc/.msmtp -a yandex -t" |
или же пропишите этот параметр в настройки виртуального хоста apache
Создадим файл для лога
1 | touch /var/log/yandex.log |
1 | chown apache:apache /var/log/yandex.log |
ну и в конце настройки reload либо restart apache
И немного результатов:
До:
После: