私はubuntuディストリビューションを使用しています。
そして、私はaptでsendmailをインストールし、/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:[email protected]" "P:123456" "M:PLAIN"
m4 sendmail.mc >sendmail.cf
およびservice sendmail restart
を実行します
テストするためのファイルを作成しましたemail.txt
:
To: [email protected]
From: [email protected]
Subject: Foo Bar
Hello
(empty line)
そして私はそれをテストします:cat email.txt | /usr/lib/sendmail -bm -t -v
そしてそれは失敗します:
[email protected]... Connecting to [127.0.0.1] via relay...
[email protected]... Deferred: Connection refused by [127.0.0.1]
外部のSMTPサーバー(ssl0.ovh.net)ではなく127.0.0.1に接続するのはなぜですか?
Sendmailは、set root uidプログラムとしてインストールされていました。セキュリティリスクを回避するため、Sendmail-8.12 +は(デフォルトで)セットroot uidプログラムとしてインストールされなくなりました。
非rootユーザーによって実行されたsendmailは、127.0.0.1:25でroot特権で実行されているsendmailデーモンにメッセージを渡します。 root以外のユーザーが実行するSendmailは、/etc/mail/submit.cf
ではなく/etc/mail/sendmail.cf
を使用します。
https://www.sendmail.com/sm/open_source/security/secure-install/
ルートとしてsendmail.cf構成をテストするには、以下のコマンドを実行します(-Am
を追加したテストコマンド)。
cat email.txt | /usr/lib/sendmail -Am -bm -t -v