sendmailでポート587を使用する

sendmailでポート587を使用する

私は内部的に利用可能なメールサーバーを使用してメールを送信するためにsendmailを使用してきました。ただし、現在のセキュリティ上の理由でポート25がブロックされています。

sendmailユーティリティでポート番号を指定する方法があるかどうか疑問に思います。そのポートを開くことができると仮定して、セキュアSMTP-MSAポート587を代替として使用しようとしています。

sendmailのマニュアルページには何も見つかりません。これを実行できる代替ユーティリティはありますか?

答え1

明示的に設定しない限り、メールはポート 25 経由で送信されます。

SMTP以外のポートまたはプロトコルを使用してメールをルーティングできますが、これは通常独自のネットワーク内でのみ機能します。目的の受信者のメールサーバーは、ポート25のSMTPを介して着信メールのみを受け入れる可能性があります。

たとえば、ポート587でリッスンするようにsendmailを設定すると、通常、ユーザーが認証されている場合はそのポートに着信する電子メールのみが許可されます。

 DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')

着信および/または送信SMTPトラフィックを制限するほとんどのネットワーク(オープンメールリレー、スパム、およびその他の乱用を防ぐための消費者ISPおよび企業ネットワークの優れた一般的な慣行)は、リレーサーバーを提供します。メールを送信できますが制限はありません。 。中継サーバーは、コンテンツ(ウイルス、スパム)を確認したり、ポリシーを実施したり(標準の通知を追加したり、コンプライアンスのためにメッセージをアーカイブしたり、受信者を制限したり)などを実行できます。

sendmailにスマートホストと呼ばれるリレーサーバーがある場合

# sendmail.mc
define(`SMART_HOST',`relay.example.com`)dnl

中継サーバがポート 587 でリッスンしている場合、これは次のようになります。

# sendmail.mc
define(`SMART_HOST',`relay.example.com`)dnl
define(`RELAY_MAILER',`esmtp')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl

sendmailはすべてのEメールトラフィックをリレーに転送し、リレーサーバーはメールを意図した受信者に転送し、リレーサーバーは認証を必要としないと仮定します。

mailertable を使用してメール ルーティングを微調整できます。


一部の電子メールドメインを1つのリモートTCPポートにルーティングし、他のドメインを別のリモートTCPポートにルーティングするには、sendmail.cfでいくつかの編集を実行して新しいメールプログラムを設定する必要があります。既存のesmtpメーラーの設定をコピーし、ポート番号を追加します。

  # sendmail.cf
  # <snip>
  Mesmtp587,         P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
                  T=DNS/RFC822/SMTP,
                  A=TCP $h 587
  Mesmtp2525,         P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
                  T=DNS/RFC822/SMTP,
                  A=TCP $h 2525

トランスポートチャネルは、デフォルトのesmtp58725または2525、またはユーザーが指定した代替ポートの代わりにポート587に移動します。

次に、メーリングリストに次のように入力します。

 example.com    esmtp587:example.com
 example2.com   esmtp2525:example2.com

上記の行を使用すると、sendmailはexample.comのMXレコードを検索できます。 example.comにデフォルト以外のポートをサポートする(リレー)smtpサーバーのみがある場合、構文は次のとおりです。

 example.com   esmtp587:[smtp.example.com]

角かっこはsendmailにsmtp.example.comの可能なMXレコードを無視し、@example.comへのすべてのメールをsmtp.example.com:587にルーティングするように指示します。

答え2

sendmail.mcファイルエントリ:

dnl   Modify relay mailer to make it connect to port 587 instead of 25
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
dnl   Define relay for non local email
dnl   Use [] to disable looking up for MX records
define(`SMART_HOST', `relay:[name.of.smart.host]')dnl

Sendmail FAQ 3.39:代替ポートを使用して送信する方法は?

PS FEATURE(mailertable)を使用して、特定の外部電子メールドメインに対して異なるリレーを指定できます。

関連情報