0

Отправка почты с сервера

Нужно научить сервер оправлять email через сторонний сервис.

Есть у меня безымянный сервер в с белым IP. Нет у него доменного имени, по которому его знал бы весь мир, так же нет необходимости ставить на нем полноценную почтовую систему. Однако сообщения с него отправлять надо.

И вот тут на помощь приходит ssmtp.
# cd /usr/ports && make search name=ssmtp
Port: ssmtp-2.64
Path: /usr/ports/mail/ssmtp
Info: Extremely simple MTA to get mail off the system to a mail hub
Maint:
B-deps: gettext-0.18.1.1 gmake-3.82 libiconv-1.14
R-deps:
WWW: http://packages.debian.org/stable/mail/ssmtp
# cd /usr/ports/mail/ssmtp && make install clean

Сложностей настройка не вызывает:

  • Остановить sendmail
  • Настроить ssmtp
  • Тест отправки письма

Итак, первым делом останавливаю sendmail
# /etc/rc.d/sendmail stop
# echo sendmail_enable="NO" >> /etc/rc.conf

Теперь непосредственно настройка ssmtp. Внимательно изучаю пример конфига (ssmtp.conf.sample) и man ssmtp.conf. После всего этого нехитрого действа пишу свой конфиг /usr/local/etc/ssmtp/ssmtp.conf:

root=[user]@yandex.ru
FromLineOverride=NO
mailhub=smtp.yandex.ru:465
hostname=localhost
UseTLS=YES
AuthUser=[user]@yandex.ru
AuthPass=[password]

Проверяю, права на этот файл, чтобы никто посторонний не прочитал пароль в файле.
# echo root:[user]@yandex.ru:smtp.yandex.ru:465 >> /usr/local/etc/ssmtp/revaliases

Этот файл отвечает за алиасы
Файл /etc/mailer.conf привожу к следующему виду:

sendmail        /usr/local/sbin/ssmtp
send-mail       /usr/local/sbin/ssmtp
mailq           /usr/local/sbin/ssmtp
newaliases      /usr/local/sbin/ssmtp
hoststat        /usr/local/sbin/ssmtp
purgestat       /usr/local/sbin/ssmtp

Теперь проверяю как это работает:
# echo "TEST" | mail -v -s "TEST" root

Судя по выводу все прошло успешно. Почта мне пришла.

Для полного счастья меняю полное имя пользователя root, что бы было понятно с какого сервера пришли отчеты:
# vipw
Меняю «Charlie &» на «Charlie MyHost»
Теперь почта для root будет приходить на мой почтовый ящик.

Alexey Egorychev

FreeBSD and Linux sysadmin. Know many systems like mailsystems, DB, WWW stack. Automation with salt, ansible. Monitoring with nagios, zabbix.