web-dev-qa-db-ja.com

sendmailでのポート587の使用

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

Sendmailユーティリティでポート番号を指定する方法があるかどうか知りたいのですが。安全なSMTP-MSAポート587を、そのポートを開くことができると想定して、代替手段として利用しようとしています。

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

7
thinkster

明示的に構成されていない限り、メールはポート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は、すべての電子メールトラフィックをリレーに転送し、リレーがメッセージを目的の受信者と認証を必要としないリレーサーバーに転送することを前提としています。

Mailertableを使用して、電子メールのルーティングを微調整できます。


一部の電子メールドメインを1つのリモート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

トランスポートチャネルesmtp587は、デフォルトの25または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]

大括弧は、sendtpにsmtp.example.comの可能なMXレコードを無視し、@ example.comのすべてのメールをsmtp.example.com:587にルーティングするように指示します。

9
HBruijn

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:代替ポートを使用して送信するにはどうすればよいですか?

追伸FEATURE(mailertable)を使用して、特定の非ローカルメールドメインに異なるリレーを指定できます。

0
AnFi