前回、「(1/2)OCNメールでPostfixからメールリレーを設定する」にて実施しようとしていたOCNメールによるPostfixからのメールリレー環境の続きです。
今回は実際にPostfixに設定を入れていきます。
設定を実施(port587使用)
まずはサブミッションポートと呼ばれるポート587を使ったメール送信を動作確認してみることにしました。
設定はPostfixの「main.cf」で実施します。
※当環境ではsendgridでメールリレーの送信が成功しているので、基本的なPostfix側の設定は完了しているという前提で話を進めます。
--------------------------------------------------------------
main.cfに追記した内容
--------------------------------------------------------------
## Retry Providor OCNmail Settings
relayhost = [smtp.ocn.ne.jp]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain,login
# STARTTLS setting
smtp_tls_security_level = may
smtp_tls_CAfile = /etc/ssl/certs//ca-certificates.crt
smtp_sasl_tls_security_options = noanonymous
smtp_tls_loglevel = 1
# envelope-from header setting
local_header_rewrite_clients = permit_mynetworks
sender_canonical_classes = envelope_sender
sender_canonical_maps = regexp:/etc/postfix/sender_maps
--------------------------------------------------------------
</etc/postfix/smtp_passwd>ファイル内は以前と同じように、
--------------------------------------------------------------
[smtp.ocn.ne.jp]:587 %OCNメールアドレス%:%パスワード%
--------------------------------------------------------------
</etc/postfix/sender_maps>には
--------------------------------------------------------------
/^.*$/ %OCNメールアドレス%
--------------------------------------------------------------
で記載します。(※以前作成したものをそのまま使っているので、postmapコマンドで.dbファイルは生成済の状態です。)
設定ファイルの編集完了後、Postfixプロセスをrestartしました。
確認はメールクライアントやアラートメール用のテストメール送信機能を使って確認しました。
送信後にログを確認すると、

postfix/qmgr[81854]: BCA6A202D5: from=<hoge@hoge.ocn.ne.jp>, size=658, nrcpt=1 (queue active)
まずFromになるよう設定したOCNメールアドレスがログに記録されます。
postfix/smtp[81889]: Trusted TLS connection established to smtp.ocn.ne.jp[153.128.xxx.xxx]:587: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
次いでポート587でSTARTTLSのセッションがsmtp.ocn.ne.jpと開始したことを示すログ。
postfix/smtp[81889]: BCA6A202D5: to=<hogehoge@hoge.onmicrosoft.com>, relay=smtp.ocn.ne.jp[153.128.xxx.xxx]:587, delay=0.62, delays=0.22/0.02/0.27/0.11, dsn=2.0.0, status=sent (250 2.0.0 KW4HuxAfDLrLoKW4HueDbv mail accepted for delivery)
宛先であるtoアドレスの記録と共に、smtp.ocn.ne.jp経由で「status=sent」⇒メールボックスに送信完了というログが記録されていました。テスト送信先となるtoアドレス側でテストメールの受信を確認できたため、設定は成功したと判断しました。
SMTPS:ポート465に変更
今回サブミッションポート:587で成功したので、次の段階となるポート465でSMTPSによるメールリレーも動作を確認してみます。
前述のサブミッションポート:587用の設定を全てコメントアウトし、以下のSMTPS用の設定を追記しました。
--------------------------------------------------------------
main.cfに追記した内容
--------------------------------------------------------------
## Retry Providor OCNmail Settings(SMTPS use)
relayhost = [smtp.ocn.ne.jp]:465
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain,login
# STARTTLS setting
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs//ca-certificates.crt
smtp_sasl_tls_security_options = noanonymous
smtp_tls_loglevel = 1
# envelope-from header setting
local_header_rewrite_clients = permit_mynetworks
sender_canonical_classes = envelope_sender
sender_canonical_maps = regexp:/etc/postfix/sender_maps
--------------------------------------------------------------
記載内容はほとんど同じですが「relayhost」のポート番号に、「smtp_tls_wrappermode」と「smtp_tls_security_level」箇所が異なります。
あとは、</etc/postfix/smtp_passwd_smtps>ファイルを作成し、
--------------------------------------------------------------
[smtp.ocn.ne.jp]:465 %OCNメールアドレス%:%パスワード%
--------------------------------------------------------------
postmapコマンドで(postmap /etc/postfix/smtp_passwd_smtpsと実行し).dbファイルを生成しておきます。
ここまでの設定ファイルの編集完了後、Postfixプロセスをrestartしました。
テストメールを送信してみたところ、

サブミッションポート:587で送信したときと同様に
「from=<hoge@hoge.ocn.ne.jp>, size=679, nrcpt=1 (queue active)」
でキューされたメールの送信処理が開始します。
「Trusted TLS connection established to smtp.ocn.ne.jp[210.145.xxx.xxx]:465: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
ホスト名の後に続くポート番号が465となっており、TLSv1.2で接続されたことがログに記録されます。
to=<hogehoge@hoge.onmicrosoft.com>, relay=smtp.ocn.ne.jp[210.145.xxx.xxx]:465, delay=2.5, delays=1.9/0.01/0.32/0.29, dsn=2.0.0, status=sent (250 2.0.0 KWr5uE0bdka4OKWr5u811D mail accepted for delivery)
最終的にtoアドレスに対してstatus=sentが記録されて、テストメールの送信が完了したことがログで確認できました。
送信先であるtoアドレスのメールボックスで受信を確認して、SMTPS用の設定も有効に機能することが確認できました。
SMTPSポート465とサブミッションポート:587の使い分け
これでPostfixのmain.cf内には動作する465と587の二通りを使ったメール送信の設定が入力されました。
これで必要に応じてmain.cf内でコメントアウトした設定を切り替えると465と587のいずれかを使ったメールリレーが動作するようになるので、しばらくこの状態でアラートメールのメールリレーサーバは運用していこうと思います。