レンタルサーバーで動かしていたWordPressをVPSに移行しました。
メールサーバーもVPSに移す予定なのですが、今はまだレンタルサーバーを契約したときについてきたメールサーバーを使っています。
VPSで外部のメールサーバーを使う場合はMTA(Postfixを使用)の設定を変更する必要があります。
今回はそのあたりのことを記事にしたいと思います。
WordPressを移行したときの記事はこちらです。

前提条件
- VPSのOSはCentOS Strem 8であること
- VPSにPostfixをインストール済みで基本的な設定は完了していること
- DNSのMXレコードは使おうとしている外部のメールサーバーに設定されていること
設定手順
- /etc/postfix/main.cfの変更
 細かいところは環境によって違ってくる可能性はありますが、下記の項目は変更する必要があると思います。
 今回の例ではSMTP-AUTH及びSSL/TLSに対応した外部のメールサーバーを使用しています。inet_interfaces = 127.0.0.1 mydestination = relayhost = [SMTPサーバーのホスト名]:ポート番号 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt smtp_tls_CApath = /etc/pki/tls/certs smtp_tls_note_starttls_offer = yes smtp_tls_security_level = encrypt smtp_use_tls = yes smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem smtpd_tls_key_file = /etc/pki/tls/private/postfix.key smtpd_tls_security_level = may mydestinationの値を空にすることでローカル配信はできなくなります。 
 当該VPSから送信する全てのメールがrelayhostで指定したSMTPサーバーにリレーされるようになります。
- 送信アカウントの情報を登録
 relayhostに指定するSMTPサーバーがSMTP-AUTHに対応している場合は認証情報を登録しておく必要があります。
 smtp_sasl_password_mapsに設定したファイルにユーザー名とパスワードを登録します。
 今回の例ですと、まず/etc/postfix配下にsasl_passwdというファイルを作ります。
 中身は下記のようになります。[SMTPサーバーのホスト名]:ポート番号 送信メールアカウント名:パスワード 例 : [mail.hogehoge.com]:587 mail@hogehoge.com:MailPassword 続いて、下記コマンドにて.dbファイルを作成します。 postmap hash:/etc/postfix/sasl_passwd sasl_passwd.dbが生成されます。 .dbファイル作成後はsasl_passwdファイルはパーミッションを600、オーナーをrootにして簡単に中を見られないようにしておいてください。 
 また、.dbファイルはオーナーをpostfixに変更しておいてください。
- postfixを再起動する。
systemctl restart postfix 
まとめ
今回の例ではメールアドレスやアカウントの管理は外部のメールサーバー側で行なうことになります。
VPS側にあらかじめユーザーを作っておく必要はありません。
外部のメールサーバーを使うことで、25番ポートブロック(Outbound Port 25 Blocking:OP25B)を実施しているVPSからもメールを送信できるようになります。
場合によってはその方が便利なパターンもありそうですね。
この記事が外部のメールサーバーを使おうとしている方の参考になれば幸いです。
Amazon Lightsailでも同様の設定をしたことがあります。
こちらの記事も参考にしてください。


コメント