На этом сервере установлены и sendmail, и postfix. Sendmail был запущен, но не работает должным образом. Я остановил службу sendmail и запустил postfix. Подтверждено, что работает только постфикс, проверяя вывод того, что прослушивает порт 25.
lsof -i :25
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
master 119640 root 12u IPv4 28103863 0t0 TCP localhost:smtp (LISTEN)
master 119640 root 13u IPv6 28103864 0t0 TCP localhost:smtp (LISTEN)
Затем я тестирую отправку почты:
echo "My message" | mail -s testing root@server.domain.com
Он не поступает в почтовый ящик root. Поэтому я смотрю логи в / var / log / maillog и вижу, что sendmail все еще используется:
Feb 26 16:18:13 server sendmail[1582]: w1QLIC8N001582: to=root@server.domain, ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=30233, relay=exchangeserver.domain. [x.x.x.x], dsn=2.0.0, stat=Sent (<201802262118.w1QLIC8N001582@root@server.domain> Queued mail for delivery)
Как это возможно?
В mail
программа работает sendmail
для доставки почты (в клиентском режиме в процессе не открыт порт прослушивания). Прочтите страница руководства для получения подробной информации. Вы можете изменить MDA, установив sendmail
переменная:
Отправить почту
Чтобы использовать альтернативную систему доставки почты, установите для этого параметра полный путь к программе, которую нужно использовать. Это следует использовать с осторожностью.
$ sendmail=/usr/bin/someothersendmail mail somebody@somewhere.com
Subject: asdf
... and so on
Но поскольку почта ожидает, что MDA распознает параметры sendmail, я не вижу в этом пользы.
Другая возможность - использовать внешний SMTP-сервер вместо того sendmail
.
$ echo "This is the message body and contains the message" | mailx -v \
> -r "someone@example.com" \
> -s "This is the subject" \
> -S smtp="mail.example.com:587" \
> -S smtp-use-starttls \
> -S smtp-auth=login \
> -S smtp-auth-user="someone@example.com" \
> -S smtp-auth-password="abc123" \
> -S ssl-verify=ignore \
> yourfriend@gmail.com
Эта строка журнала не относится к чему-либо, прослушивающему TCP-порт 25. Она выглядит как root-файл. crontab
отправляет почту напрямую через sendmail. Или это какой-то нестандартный фоновый процесс, принадлежащий root.