【WordPress】「メールが送信されません」を解決!Postfixで送信専用メールサーバーを構築する方法

スポンサーリンク
スポンサーリンク
サーバー構築
スポンサーリンク
スポンサーリンク

導入

このブログのキャッチコピーは「未来の自分のための技術メモ、時々あなたのためのヒント。」ですが、今回はWordPressサイト運営で多くの方が一度はつまずく「メール送信」に関する重要なヒントです。

「お問い合わせフォームからの通知が届かない…」

「ユーザー登録の確認メールが送信されない…」

レンタルサーバーでは問題なく動いていたのに、自分でVPSなどを借りてサーバーを構築した途端、WordPressからのメールが一切届かなくなる。これは、サーバー側に**メールを送信するための「郵便局員」**がいないために起こる、典型的な問題です。

この記事では、Linuxサーバーの標準的なメール配送システム**「Postfix」**を使って、この問題を解決する「送信専用メールサーバー」を構築する方法を、初心者の方にも分かりやすく解説します。


なぜ「送信専用」サーバーが良いのか?

メールサーバーには、メールを「受け取る(受信)」機能と「送る(送信)」機能があります。

しかし、外部からのメールを安全に受信するためには、スパム対策やセキュリティ設定など、非常に複雑で専門的な知識が必要です。

一方で、WordPressからの通知のように**「送信さえできればよい」のであれば、設定を大幅に簡略化でき、セキュリティリスクもほとんどありません。これは、手紙は出せるけど、手紙は受け取れない「ポスト」**のようなものです。これで十分なケースがほとんどです。


3ステップで簡単構築!

今回は、この安全でシンプルな「送信専用ポスト」をPostfixで構築します。

Step 1: Postfixをインストールする

多くのLinuxサーバーには最初から入っていますが、もしなければyumdnfといったコマンドで簡単にインストールできます。

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からメールが飛ばない」という問題は、多くの初級〜中級者がつまずくポイントです。しかし、原因と仕組みさえ分かってしまえば、解決は決して難しくありません。

この記事が、あなたのサイト運営をよりスムーズにするための「ヒント」になれば幸いです。

コメント

タイトルとURLをコピーしました