送信するように sendmail を構成する

送信するように sendmail を構成する

電子メールを送受信するのではなく、電子メールを送信するようにsendmailを設定したいと思います。私は/etc/mail/sendmail.conf以下を持っています:

DAEMON_MODE="None";
QUEUE_MODE="Daemon";

iptablesが無効になりました(一時的に、このテストのみ)。

しかし、/var/log/mail/mail.log

Nov 18 13:40:04 novy sm-msp-queue[13548]: rAIC9RiF012445: [email protected], ctladdr=root (0/0), delay=00:30:37, xdelay=00:00:00, mailer=relay, pri=390130, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, stat=Deferred: Connection refused by [127.0.0.1]

メールを設定すると/etc/mail/sendmail.conf DAEMON_MODE="Daemon";正常に送信されました。

必ず聞かなければなりませんか?

答え1

sendmailこれは sendmail を「代替」するふりをするのではなく、実際に何かを実行する場合に適用されます。

基本的なインストールが一般的に機能する方法sendmailは次のとおりです。

  • (少なくとも)localhost:25を受信するMTAデーモン
  • clientmqueue でデーモンを実行する MTA の非受信 MSP キューに送信します。

/var/spool/mqueueそれぞれの場合にスプールディレクトリがあります/var/spool/clientmqueue。これらは異なる権限を持ち、元のローカルメール送信時にclientemqueueスプールに書き込むためにsetgid "smmsp"を必要とするsetuid-rootバイナリ関連の問題を解決するためのものでした。

たとえば、sendmail(またはmailx)を使用して電子メールを送信するときに「クライアント」モードを使用してlocalhostに接続できない場合は、clientmqueueに追加して(またはキューを強制することができます)、-ODeliveryMode=qキューランナーは定期的に再試行します。 。

注目すべき重要な点は、送信プロセスができるだけ少ない権限でできるだけ少ない操作を実行しようとしているため、常にsendmail受信機があることです。上記のエラーログは、送信プロセスがMTAデーモンに接続できないことです(ユーザーが終了したため)。

簡単なオプションは

  1. 以下から、リスニングデーモンが127.0.0.1(および/または :: 1)であることを確認してください。

    DAEMON_OPTIONS(「ポート= smtp、アドレス= 127.0.0.1、名前=送信」)

    ファイルはsendmail.mcそれ自体でのみ受け取ることができます(ただし、着信SMTPをブロックするためにiptablesを使用することとは大きく異なりません)。これは、「聞くことなく受信しない」を意味する場合にのみ解決策です。Webから」。

  2. 127.0.0.1に接続するための「コミット」デフォルトを変更します。

    属性( `msp'、 `[127.0.0.1]')

    127.0.0.1を「スマートホスト」またはローカルSMTPリレーに置き換えます。

上記の変更を適用するには、追加パッケージである可能性があるsendmail cf / m4サポートファイルをインストールする必要があります。ソース.mcファイル(通常はsendmail.mcおよびsubmit.mc)に表示されるディレクティブを追加/変更し、提供されたmakeスクリプトを実行してファイルsendmail.cfsubmit.cf再構築します。

上記の効果を得るために、ファイルを直接修正する勇敢な魂を見つけます.cf。私はこのアプローチをお勧めしません...

関連情報