Нужно научить сервер оправлять 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 будет приходить на мой почтовый ящик.