Настройка smtp relay server – ssmtp

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

Обычно настраивается postfix или sendmail или ещё что-нибудь громоздкое. Я предлагаю вам вместо этого настроить smtp relay server, ssmtp, который предназначен именно для пересылки отправляемых писем на «большой» сервер – Яндекс почта для домена, Google Apps for domain, или просто почтовый аккаунт Gmail или Yandex, если вам потребуется посылать письма только себе.

Настройка на примере Ubuntu.

Сначала уставновим ssmtp и отредактируем revaliases. Вставьте либо секцию для gmail, либо секцию для yandex mail, заменив ubuntu на ваше имя пользователя, а sendlogs на имя пользователя почты. Если вы используете почту для домена, просто введите полное имя пользователя своего домена, например, noreply@realmfpa.ru. Ctrl+O, Enter для сохранения, Ctrl+X для выхода.

sudo apt-get install ssmtp
sudo nano /etc/ssmtp/revaliases

#for yandex
root:sendlogs@yandex.ru:smtp.yandex.ru:465
ubuntu:sendlogs@yandex.ru:smtp.yandex.ru:465
#for gmail
root:sendlogs@gmail.com:smtp.gmail.com:587
ubuntu:sendlogs@gmail.com:smtp.gmail.com:587

Далее отредактируем ssmtp.conf. Вместо имеющегося текста вставьте приведенную здесь секцию general, и либо секцию для gmail, либо секцию для yandex mail. Советую использовать для учетной записи отправки почты пароль только из букв и цифр; мне не удалось заставить сервер понимать пароль со специальными символами – он выдавал ошибку при попытке отправить письмо.

sudo nano /etc/ssmtp/ssmtp.conf

#general
hostname=localhost
FromLineOverride=NO
AuthPass=password
#for yandex
mailhub=stmp.yandex.ru:465
UseTLS=YES
AuthUser=sendlogs@yandex.ru
#for gmail
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=sendlogs@google.com

Если вы хотите настроить отправку писем для своего веб-сайта, использующего php, сделайте следующие изменения в файле php.ini:

#for apache
sudo nano /etc/php5/apache2/php.ini
#for nginx and php-fpm
sudo nano /etc/php5/fpm/php.ini

Найдите (Ctrl+W) строку sendmail_path (она задокументирована с помощью ;) и ниже неё вставьте:

sendmail_path = ssmtp -t

Вот и всё, вы и ваш сайт можете отправлять письма. Для тестирования вы можете выполнить следующую команду:

echo "Test message text" | ssmtp -v me@example.com

Создано 04.08.2011 14:45 автором RealMfpa в разделе Amazon EC2
© 2019 http://realmfpa.ru