今回は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: 【メールアドレス】
以上で説明は終了です。ご参考になれば幸いです。