Отправка почты с хоста linux (Debian 10, команда mail)

Отправка почты с хоста 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

/etc/mail.rc

set from="HOSTNAME <no-reply@azz.com>"
alias root root-online@azz.com

/etc/aliases

default: root

/root/.msmtprc

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

Добавить комментарий