私はsendmailを使用して、内部で利用可能なメールサーバーを使用してメールを送信しています。しかし現在、ポート25はセキュリティ上の理由でブロックされています。
Sendmailユーティリティでポート番号を指定する方法があるかどうか知りたいのですが。安全なSMTP-MSAポート587を、そのポートを開くことができると想定して、代替手段として利用しようとしています。
Sendmailのマニュアルページでは何も見つかりませんでした。これを行うことができる代替ユーティリティはありますか?
明示的に構成されていない限り、メールはポート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にルーティングするように指示します。
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)を使用して、特定の非ローカルメールドメインに異なるリレーを指定できます。