Хочется иметь уведомления от системы на почту, например статусы cron-задач и тому подобное.
Как вариант – использовать ssmtp
, и отправлять письма через внешний SMTP.
Устанавливаем:
Редактируем /etc/ssmtp/ssmtp.conf
:
mailhub=mail.example.kiev.ua:587
# The full hostname
hostname=setevoy-arch-home
UseTLS=Yes
UseSTARTTLS=Yes
[email protected]
AuthPass=password
AuthMethod=LOGIN
У ssmtp
есть баг со специальными символами – =
, ;
и #
он не воспринимает. Благо, когда есть свой сервер – то всегда можно добавить ещё один ящик.
Что бы настроить поле For aka RCPT TO для ssmtp
– в конце файла /etc/mail.rc
добавляем алиасы:
...
alias setevoy [email protected]
alias root [email protected]
Проверяем отправку юзеру setevoy
:
echo "Test" | mail -v -s "Test" setevoy
mail: Loading /etc/mail.rc
mail: No such file to load: /home/setevoy/.mailrc
mail: P(seudo)R(andomNumber)G(enerator): *TLS RAND_*
[<-] 220 mail.example.org.ua, ESMTP EXIM 4.90_1
[->] EHLO setevoy-arch-home
[<-] 250 HELP
[->] STARTTLS
[<-] 220 TLS go ahead
[->] EHLO setevoy-arch-home
[<-] 250 HELP
[->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6
[->] c2V0ZXZveS1hcmNoLWhvbWVAc2V0ZXZveS5vcmcudWE=
[<-] 334 UGFzc3dvcmQ6
[<-] 235 Authentication succeeded
[<-] 250 OK
[<-] 250 Accepted
[->] DATA
[<-] 354 Enter message, ending with "." on a line by itself
[->] Received: by setevoy-arch-home (sSMTP sendmail emulation); Sun, 07 Oct 2018 11:06:15 +0300
[->] Date: Sun, 07 Oct 2018 11:06:15 +0300
[->] Subject: Test
[->] User-Agent: mail v14.9.11
[->]
[->] Test
[->] .
[<-] 250 OK id=1g944t-00060X-At
[->] QUIT
[<-] 221 mail.example.org.ua closing connection
Лог на отправителе:
...
Oct 07 11:06:15 setevoy-arch-home sSMTP[27962]: Creating SSL connection to host
Oct 07 11:06:15 setevoy-arch-home sSMTP[27962]: SSL connection using ECDHE-RSA-AES256-GCM-SHA384
Oct 07 11:06:16 setevoy-arch-home sSMTP[27962]: Sent mail for
[email protected] (221 mail.example.org.ua closing connection) uid=1000 username=setevoy outbytes=438
...
И лог exim
-а на принимающем сервере:
...
2018-10-07 11:07:27 1g9462-00062x-LO => 1th <
[email protected]> R=dovecot_user T=dovecot_delivery
2018-10-07 11:07:27 1g9462-00062x-LO Completed
Письмо получено.
Проверим отправку системных уведомлений, например о неудачах cron
.
Добавляем задачу с вызовом несуществующего скрипта, в MAILTO
указываем ящик, на который шлём уведомления:
[email protected]
* * * * * /bla/bla.sh
Ждём выполнения:
...
Oct 07 11:16:01 setevoy-arch-home CROND[28321]: (setevoy) CMD (/bla/bla.sh)
Oct 07 11:16:01 setevoy-arch-home sSMTP[28322]: Creating SSL connection to host
Oct 07 11:16:01 setevoy-arch-home sSMTP[28322]: SSL connection using ECDHE-RSA-AES256-GCM-SHA384
Oct 07 11:16:03 setevoy-arch-home sSMTP[28322]: Sent mail for
[email protected] (221 mail.example.org.ua closing connection) uid=1000 username=setevoy outbytes=834
И получаем письмо:

Готово.