четверг, 4 февраля 2021 г.

ssmtp + yandex.ru + Xubuntu 18.04

Исходные данные: 

Яндекс  Разослал вот такие письма:

Мы не хотим подвергать риску пользователей, их безопасность для нас важнее всего. Поэтому с 01.02.2021 мы включим строгий контроль адреса отправителя. Это значит, что вы больше не сможете через SMTP-клиент отправить письмо, если отправитель в поле From («От кого») отличается от авторизованного пользователя. Указать несколько отправителей в поле From также не получится.

На самом деле есть пара лазеек, но и их, скорее всего прикроют как только их найдут спамеры. Применение nullmailer стало гораздо менее удобным (или Subject: Или From: нормально вместе никак, по сути получили <no-subject> на веки вечные, или руками переписывать весь конверт).

Переходим на ssmtp

Первоисточник: https://voxlink.ru/kb/asterisk-configuration/instrukciya-po-ustanovke-i-privjazke-ssmtp-k-yandex-i-google/

Установка:

apt install mailutils ssmtp

Файл /etc/smtp/ssmtp.conf приводим к виду:

root=postmaster

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.yandex.ru:465
AuthUser=mailusername@domain.su
AuthPass=realpassword
UseTLS=YES

# Where will the mail seem to come from?
rewriteDomain=domain.su

# The full hostname
hostname=myhome

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES

Пара замечаний. Используется не обязательно user@yandex.ru, я использую собственный домен, живущий на Яндексе (бесплатно), по этой причине вместо user везде фигурирует user@domain и имя компа (использовано в примере myhome) вполне разумно, оно будет в диагностических сообщениях от mdadm и пр. в виде root@myhome (или что пропишем).

Ну и в /etc/smtp/revaliases пишем:

root:mailuser@domain.su:smtp.yandex.ru:465

    Теперь осталось заменить "родной" sendmail на ssmtp. Как-то примерно так...

mv /usr/sbin/sendmail /usr/sbin/sendmail.orig
ln -s /usr/sbin/ssmtp /usr/sbin/sendmail

Вариант заменой sendmail малость кривоват, но опять лучше не придумалось...