Xserver VPS の Postfix および SMTPリレーメール設定

今回は2024年10月にXserver VPS 構築で一番詰まったメール送信についてお話します。

環境:
 VPS:Xserver VPS
 OS:RockyLinux9.4
 Postfixのバージョン:mail_version = 3.5.9

まず、概要を説明します。

①XseverVPSはポート25番のメールはやり取りできません
②25番ポートが使えないと、Postfixのデフォルト設定ではメールを送れません
③推奨策は外部のSMTPリレーサーバーを利用すること
④外部のSMTPリレーサーバーは無料のもので高品質は難しい(この辺よくわからない)
⑤そのため外部のSMTPリレーサーバーをOCNメールとすることにしました
https://www.lsmodena.com/wordpress/?p=42
↑のサイトに従ってOCNメールのリレー設定
⑦以下のコマンドのパッケージが必要になりました←AIデバッグ指示
yum install cyrus-sasl cyrus-sasl-plain
https://www.lsmodena.com/wordpress/?p=363
 ↑RockyLinux9.4ではここまでしなくて良い

XServer VPS では25番ポートが使えません。
これはセキュリティ強化のためXsever VPSが制限しているらしいです。
25番ポートのメール通信は暗号化されない平文通信です。
これは確かに危険なので仕方ないかもしれません。

そして25番ポートが使えないとPostfixのデフォルトの設定ではメールは送れません。
AIの判断による推奨策はSMTPリレーサーバーを使うことらしいです。
SMTPリレーサーバーとは、
ざっくり言うと外部のメールサーバーを経由してメールを送る方法です。
外部のメールサーバーは基本的に無料で高品質なものは難しいとのことです。
ここはちょっと確認が取れてませんので、無料でも良いのがあるかもしれません。

私はすでに契約しているOCNメールをSMTPリレーサーバーとすることにしました。
下記サイトにその詳細が載っていたので書いておきます。

https://www.lsmodena.com/wordpress/?p=42

具体的に以下のような設定をします。

まず Xserver VPS のコトンローラパネルから
パケットフィルタリング設定でメールを許可します。
次にサーバーのfirewallで465番ポートを開けます。

Postfixの設定ファイル「/etc/postfix/main.cf」の以下の部分を書き換えます。
デフォルトでrelayhostはコメントアウトされていたので、私は追記でした。

relayhost = [smtp.ocn.ne.jp]:465

「/etc/postfix/main.cf」の末尾に以下の行を追記します。

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/ocn_pass
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain,login

smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtp_sasl_tls_security_options = noanonymous
smtp_tls_loglevel = 1

local_header_rewrite_clients = permit_mynetworks
sender_canonical_classes = envelope_sender
sender_canonical_maps = regexp:/etc/postfix/sender_maps

デフォルトでは設定が被っていたので以下を#を付けてコメントアウトしました。

smtp_tls_security_level = may

「/etc/postfix/ocn_pass」を【作成】します。
パスワードファイルの設定のため、ここは自分のOCNアカウントに書き換えてください。

[smtp.ocn.ne.jp]:465 zzzzz@xxx.ocn.ne.jp:********   ← OCNアカウント(メールアドレス)とパスワードを記述

ファイルのパーミッション権限を最大にし、データベース化します。

chmod 600 /etc/postfix/ocn_pass
postmap /etc/postfix/ocn_pass

以上で設定は終了です。Postfixを再起動します。

systemctl restart postfix

またデフォルトのmailコマンドを使うためにはRockyLinux9.4では以下のモジュールが必要でした。

yum install s-nail

私の環境ではメール送信に以下のモジュールが必要でした。ご参考までに。

yum install cyrus-sasl cyrus-sasl-plain

以下でメール送信ログが確認できます。エラー時やメールが届かない時の参考にどうぞ。

tail -f -n 50 /var/log/maillog

またメール送信が失敗した時にメールキューの確認方法を示します。

mailq

残骸のメールキューは気持ち悪いので以下で削除できます。

postsuper -d ALL

私は宗教上の理由からRockyLinux9ですがAlmaLinux9の方は以下を参考にしてください。
https://www.lsmodena.com/wordpress/?p=363

Xserver VPSにおいて全ての設定が完了したらテストメールを送りましょう。

echo "This is a test email" | mail -s "Test Subject" root

この場合テストメールの送信先はrootのエイリアスに設定しています。
エイリアスの設定は「/etc/aliases」で行ってください。
私は下記を「/etc/aliases」の【末尾に追加】しました。
これでroot充てのメールは全て設定場所に送られます。
※rootのメール送信先は重要な設定なので注意してください。

root: 【メールアドレス】

以上で説明は終了です。ご参考になれば幸いです。

ブログ主が運営しているゲームです。

 MobileFight

 ジマさんの囲碁入門