Я использую дистрибутив ubuntu.
Я установил sendmail с помощью apt и отредактировал /etc/mail/sendmail.mc
, и добавил строки
define(`SMART_HOST', `ssl0.ovh.net')
FEATURE(`authinfo')
перед линией
define(`_USE_ETC_MAIL_')dnl
А также настроил аутентификацию (/ etc / mail / authinfo):
AuthInfo:ssl0.ovh.net "U:myemail@mydomain.com" "P:123456" "M:PLAIN"
и беги m4 sendmail.mc >sendmail.cf
и service sendmail restart
Я создал файл для проверки email.txt
:
To: one@ofmyemail.com
From: my@email.com
Subject: Foo Bar
Hello
(empty line)
и я тестирую это с помощью: cat email.txt | /usr/lib/sendmail -bm -t -v
И это не удается:
one@ofmyemail.com... Connecting to [127.0.0.1] via relay...
one@ofmyemail.com... Deferred: Connection refused by [127.0.0.1]
Почему он подключается к 127.0.0.1 вместо внешнего SMTP-сервера (ssl0.ovh.net)?
Sendmail раньше устанавливался как программа set root uid. Sendmail-8.12 + больше не устанавливается (по умолчанию) как программа set root uid, чтобы избежать риска для безопасности.
Sendmail, выполняемый пользователем без полномочий root, передает сообщения демону sendmail, работающему с привилегиями root по адресу 127.0.0.1:25. Sendmail, выполняемый пользователем без полномочий root, использует /etc/mail/submit.cf
вместо того /etc/mail/sendmail.cf
.
https://www.sendmail.com/sm/open_source/security/secure-install/
Чтобы проверить конфигурацию sendmail.cf с правами root, выполните команду ниже (ваша тестовая команда с -Am
добавлено):
cat email.txt | /usr/lib/sendmail -Am -bm -t -v