導入
このブログのキャッチコピーは「未来の自分のための技術メモ、時々あなたのためのヒント。」ですが、今回はWordPressサイト運営で多くの方が一度はつまずく「メール送信」に関する重要なヒントです。
「お問い合わせフォームからの通知が届かない…」
「ユーザー登録の確認メールが送信されない…」
レンタルサーバーでは問題なく動いていたのに、自分でVPSなどを借りてサーバーを構築した途端、WordPressからのメールが一切届かなくなる。これは、サーバー側に**メールを送信するための「郵便局員」**がいないために起こる、典型的な問題です。
この記事では、Linuxサーバーの標準的なメール配送システム**「Postfix」**を使って、この問題を解決する「送信専用メールサーバー」を構築する方法を、初心者の方にも分かりやすく解説します。
なぜ「送信専用」サーバーが良いのか?
メールサーバーには、メールを「受け取る(受信)」機能と「送る(送信)」機能があります。
しかし、外部からのメールを安全に受信するためには、スパム対策やセキュリティ設定など、非常に複雑で専門的な知識が必要です。
一方で、WordPressからの通知のように**「送信さえできればよい」のであれば、設定を大幅に簡略化でき、セキュリティリスクもほとんどありません。これは、手紙は出せるけど、手紙は受け取れない「ポスト」**のようなものです。これで十分なケースがほとんどです。
3ステップで簡単構築!
今回は、この安全でシンプルな「送信専用ポスト」をPostfixで構築します。
Step 1: Postfixをインストールする
多くのLinuxサーバーには最初から入っていますが、もしなければyum
やdnf
といったコマンドで簡単にインストールできます。
sudo yum install postfix
Step 2: 「送信専用」にする魔法の設定
Postfixの設定は/etc/postfix/main.cf
というファイルで行います。たくさんの設定項目がありますが、送信専用にするために変更するのは、たった一行だけです。
# /etc/postfix/main.cf の中に、この一行を追加または修正します
# サーバー内部(localhost)からのメール送信だけを受け付けます
inet_interfaces = loopback-only
この設定は、Postfixに「外部からのメール配達は一切受け付けず、サーバー内部からの依頼(PHPやWordPressからの送信依頼)だけを聞いてください」と命令する、非常に重要な設定です。
Step 3: Postfixサービスを起動する
最後に、設定を反映させるためにPostfixを起動し、サーバーを再起動しても自動で立ち上がるように設定します。
# Postfixサービスを起動
sudo systemctl start postfix
# OS起動時に自動で起動するように設定
sudo systemctl enable postfix
これでWordPressからメールが送られる!
たったこれだけの設定で、あなたのサーバーはメールを送信する能力を得ました。
WordPressの「お問い合わせフォーム(Contact Form 7など)」や、ユーザー登録機能は、PHPというプログラム言語の標準的なメール送信機能(mail()
関数)を使っています。Postfixが正しく設定されていれば、これらのプラグインは特別な設定をしなくても、自動的にPostfixを使ってメールを送信してくれるようになります。
もしメールが届かない場合は、サーバーの/var/log/maillog
というファイルにエラーの手がかりが記録されているので、確認してみてください。
まとめ
今回は、Postfixを使って、安全でシンプルな「送信専用メールサーバー」を構築する方法をご紹介しました。
「WordPressからメールが飛ばない」という問題は、多くの初級〜中級者がつまずくポイントです。しかし、原因と仕組みさえ分かってしまえば、解決は決して難しくありません。
この記事が、あなたのサイト運営をよりスムーズにするための「ヒント」になれば幸いです。
コメント