【クラウドサーバー】IDCFでUbuntu18をいれてWordPressをインストールしたがメールが飛ばなかった件
前回無事にWordPressをインストールできました。次に、WordPressで作成した問い合わせフォームからメールを飛ばすように作成しましたが、そこに落とし穴がありました。
今回は、その事例を書いていきたいと思います。
いったい何が起こっているのか?
問い合わせフォームの問題?
今回使用したWordPressプラグインは、contact form7 です。問い合わせフォームのプラグインとしては、定番中の定番と言えるとおもいます。ご存知の方も多いはずです。
まずは、プラグインの設定に問題がないか切り分けを行いたいと思います。
前提として確認することは、デフォルトの状態で、ちゃんとメールが飛ぶのか?
ということを確認したいと思います。
送信先は、基本的にWordPressをインストールした時のメールアドレスが設定されています。
まずは、デフォルトフォームをテストページに張り付けて、適当に送信してみましょう。
1 |
[contact-form-7 id="25" title="コンタクトフォーム1"] |
送信完了後には、「ありがとうございます。メッセージは送信されました。」とデフォルト状態で出ます。
メール受信を確認しましょう。私の環境では、Gmailを登録しましたので、Gmailを確認しています。
確認すると届いていませんでした。念のため迷惑メールも見ておきますが、ありませんでした。
気持ちを切り替えて、プラグインの設定ミスでないことが認識できました。
次の問題切り分けに進みます。
メールアカウントの問題?
プラグイン側の問題でないことを理解したところで、次は、メールアカウントによって受信できるできないがあるのか考えていきます。
といっても、そんな難しいことはやりません。contact form 7 のプラグイン設定で、メール項目があるのでそこに複数のメールアドレスを入れてみます。
送信先のところで「,」区切りでメールアドレスを入れていくと複数送信されます。
1 |
aaa@gmail.com, xxx@hotmail.com, bbb@gmail.com |
確認したいのは、特定のメールアドレスで起こる現象なのか?です。なので、いろいろなメールアドレスがある人は、複数入れるといいと思います。
そのように、設定してまたフォームから送信します。
登録したメールアドレスの受信トレイを確認します。
私は、送信されていませんでした。よって、特定のメールアドレスで起こるというわけでもないようです。
次の問題切り分けに進みましょう。
WordPressの問題?
次に考えたいのは、特定のWordPressで起こっている問題かということ。というのは、今回、仮想サーバーに設置したWordPressであり、いつものような本番サーバーとは、環境が異なります。
そこで、バリュードメインのコアサーバーを借りているので、そこで立ち上げているWordPressからcontact form 7 のデフォルトを張り付けて、送信されるか見てみましょう。
テストページを新規で作り、適当に記載してフォームを送信します。
メール受信サーバーに見に行くと、迷惑メールのフォルダにメールが届いていました。
メールが届くということは、おそらくサーバー側で何か設定が必要なのかもしれないですね。
だんだんと光が見えてきたような気がします。あと少しがんばりましょう。
次、仮想サーバーにいれたOS。Ubuntuでメール送受信の設定を見直してみましょう。
Ubuntuの問題?
まず、確認すべき点は、大きく分けて2点だけです。
下記がインストールされているか
1 |
apt install mailutils |
次に、
/etc/postfix/main.cf
をVimで開いて、下記を確認
mydestination がlocalhostになってることが重要です。
私の環境では、変更なしです。書き換えるときは、念のため元の文章をコピーして#(コメント)しておきましょう。
1 |
mydestination = $myhostname, localhost.$mydomain, localhost |
次に default_transport が私は、「error」だったので下記に直しています。
1 |
default_transport = smtp |
ちなみに私の環境でメールができないのはこれが原因でした。
修正完了後、下記のコマンドで再起動します。
1 |
sudo systemctl restart postfix |
設定が終われば、再びWordPressのフォームから何か送信します。
受信トレイを確認するとフォームからの確認メールが届きました。
お疲れさまでした。