Хочется иметь уведомления от системы на почту, например статусы cron-задач и тому подобное.
Как вариант – использовать ssmtp
, и отправлять письма через внешний SMTP.
Устанавливаем:
[simterm]
$ sudo pacman -S ssmtp
[/simterm]
Редактируем /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
:
[simterm]
$ 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 [->] MAIL FROM:<[email protected]> [<-] 250 OK [->] RCPT TO:<[email protected]> [<-] 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 [->] From: [email protected] [->] Date: Sun, 07 Oct 2018 11:06:15 +0300 [->] To: [email protected] [->] Subject: Test [->] User-Agent: mail v14.9.11 [->] [->] Test [->] . [<-] 250 OK id=1g944t-00060X-At [->] QUIT [<-] 221 mail.example.org.ua closing connection
[/simterm]
Лог на отправителе:
[simterm]
... 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 ...
[/simterm]
И лог exim
-а на принимающем сервере:
[simterm]
... 2018-10-07 11:07:27 1g9462-00062x-LO <= [email protected] H=(setevoy-arch-home) [188.190.246.48] I=[77.120.103.20]:587 P=esmtpsa X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no A=auth_plain:[email protected] S=536 from <[email protected]> for [email protected] 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
[/simterm]
Письмо получено.
Проверим отправку системных уведомлений, например о неудачах cron
.
Добавляем задачу с вызовом несуществующего скрипта, в MAILTO
указываем ящик, на который шлём уведомления:
[email protected] * * * * * /bla/bla.sh
Ждём выполнения:
[simterm]
... 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
[/simterm]
И получаем письмо:
Готово.