Отправка почты с хоста linux (Debian 10) с аутентификацией на почтовом сервере.
Для работы необходимо:
apt install mailutils
apt install sendmail
apt install bsd-mailx
После обновление на одном из контейнеров системы с Debian 8 до Debian 10, у меня поломался sendEmail. Уже и не помню истоки почему я настроил у себя работу отправки почтовых сообщений с хоста именно через него. Перенастроил на отправку почты командой mail с авторизацией на почтовом сервере. Все настройки прописал в файле ~/.mailrc:
set smtp-use-starttls set ssl-verify=ignore set smtp=smtp.mydomain.com:587 set smtp-auth=login set smtp-auth-user=backup@mydomain.com set smtp-auth-password=11223344 set from=backup@mydomain.com
Сообщение из консоли отправляется вот так:
echo "Message " | mail -v -s "Subject:Backup" mymail@mydomain.com
Аутентификация проходит на собственном почтовом сервере на базе iRedMail. Как с крупными почтовиками работает типа Gmail я не проверял.
Сюда же моя заметка о настройке почты sendmail. Столкнулся как-то раз с тем, что отправка почты идёт неверного доменного имени.
Все конфигурации находится тут — /etc/mail/.
Если письмо пришло, например, от домена»domain-1″, то можно сразу проверить где это прописано:
grep -iRI «domain-1» /etc/mail/
Достаточно сделать правку в файле /etc/mail/sendmail.mc, в строке:
MASQUERADE_AS(`domain-2.com’)dnl
После правки выполнить:
/etc/init.d/sendmail reload
Теперь почта должна приходить от домена, указанного в MASQUERADE_AS.
Если проверять настройки sendmail без отправки письма (не зная, какой старый домен может быть прописан), можно выполнить grep -iRI «root@» /etc/mail/.
При установке последней версии Sendmail на 09.02.2022 в файле конфигурации /etc/mail/sendmail.mc (sendmail.mc, v 8.15.2-14) есть строчки:
... dnl # Masquerading options FEATURE(`always_add_domain')dnl MASQUERADE_AS(`exemple.com')dnl FEATURE(`allmasquerade')dnl FEATURE(`masquerade_envelope')dnl ...
У меня в рабочей конфигурации эти строчки отсутствуют и заканчивается она так:
... dnl # Dialup/LAN connection overrides dnl # include(`/etc/mail/m4/dialup.m4')dnl include(`/etc/mail/m4/provider.m4')dnl dnl # dnl # Default Mailer setup MAILER_DEFINITIONS MAILER(`local')dnl MAILER(`smtp')dnl
И без опций маскарадинга почтовые сервисы типа mail.ru и google охотнее принимают письма от сервера.
Ещё вариант (отработан на Debian 8-9)
apt install msmtp msmtp-mta bsd-mailx
set from="HOSTNAME <no-reply@azz.com>" alias root root-online@azz.com
default: root
defaults auth on tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt syslog on aliases /etc/aliases account default host mail.azz.com port 587 from no-reply@azz.com user no-reply@azz.com password ********
chmod 600 /root/.msmtprc
На одной системе с Debian 10 выше описанное у меня работает, а на другой настроить всё то же самое не удалось. Файл ~/.mailrc не считывается и письмо отправляется непосредственно от самой системы с именем её домена. Нашёл вот такую команду, чтобы посмотреть куда смотрим демон для отправки сообщений:
strings /usr/bin/mailx | grep '\.rc'
Правда в обоих случаях (где всё работает и не работает) результат один после выполнения команды:
strings /usr/bin/mailx | grep '\.rc' /etc/mail.rc
Там, где не работало, файла /etc/mail.rc не было в системе, но причина была не в этом.
Мне помог вариант с установкой пакет:
apt-get install bsd-mailx
Нашёл вариант с добавление в ~/.mailrc строчки
set inplacealiases
но мне это не помогло.
Настройка почты google для приёма писем с сервера — https://linuxconfig.org/configuring-gmail-as-sendmail-email-relay
https://wiki.archlinux.org/title/SSMTP