sendmailでサブミッションポートのポート番号を変更する

自社でホスティングをやることになった。今までは中小企業のホスティングサービスを利用していたのだけど、それは費用を下げるためとか理由はいろいろ。しかし、その利用していたホスティングサービスが独自仕様で、なぜかメールのサブミッションポートが587ではなかった。OPB25対策がしてあるのはいいけれど、なぜサブミッションポートを一般的な587にしなかったのだろうか?それは知られていない番号にした方がよりセキュリティ的に安全ではあるのだろうけど。
できるならば自社でメールサーバを立てるときにポートを587にしたかったのだけど、たくさんのお客さんのメーラの設定ですでに他のポート番号になっているので、できるだけそれを変更しないで、つまり前のホスティングサービスの設定を引き継ぐ形が必要になった。


今回は、メールサーバを立てるのだけど、まず一般的なサブミッションポートの587でメールの送信ができていることが前提。このサブミッションポートを使用する方法はネット上にもたくさん情報があるので、別に調べて欲しい。それから587以外のポートを使うので、ルータのポート開放やファイアウォールなどのポート開放も事前に済んでいることにする。うまくサブミッションポートでの接続ができないときは、この辺りのポート開放が済んでいない場合があるので、それも合わせて調べて欲しい。


まずは設定ファイルを編集。redhat系のLinuxの場合は設定ファイルは下記のとおり。他のOSとかでも同じ設定ファイルを変更すればいいと思う。

# vi /etc/mail/sendmail.mc
120行目くらい
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
↓
DAEMON_OPTIONS(`Port=任意のポート番号, Name=MSA, M=Ea')dnl

Portのところに自分の設定したい番号を入力。10000とか、10025とか。
次に、sendmail.mcから設定ファイルを生成する

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

その後、sendmailの再起動

# /etc/init.d/sendmail restart

これで設定完了。あとは、telnetで接続してみるなり、メーラで設定してみれば確認ができると思う。ちなみに下記のコマンドがtelnetの接続コマンド。

# telnet localhost ポート番号