レンタルサーバーで動かしていた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でも同様の設定をしたことがあります。
こちらの記事も参考にしてください。
コメント