2019.03.29
WordPress
wordpressからメールが送信できない時のチェック項目

wordpressからフォームなどを利用してメールを送信するときに、エラー表示が出てメールが送れないときや、そもそもエラー表示もなくメールだけが届かないときなど、トラブルが起きることがあります。
wordpressからメールを送信する場合、ローカルでの設定だけでなくサーバーサイドとの連携によってメール送信を実現しているので、バックエンド側でも確認するべき点があります。
今回はそんな確認事項についてご紹介します。
メール送受信設定時の確認事項
メールプラグインの設定やバージョン確認
wordpressのメールプラグインの設定を確認しましょう。送信先や送信内容などと合わせて、メールプラグインのバージョンが古い場合など、アップデートを行いましょう。
チェックツールの確認
メールプラグインにはデバックモードやチェックモードが実装されていることがあります。wordpressのデバックモードと連携するものなどメール送信時の挙動を確認できるものもあるので、マニュアルを参照しながら確認しましょう。
phpのバージョンの確認
wordpressのメールプラグインやwordpress自身が対応しているphpのバージョンか確認しましょう。
必要要件を満たしていない状態ではプラグインがきちんとした動作を行うことができません。
mb_send_mail関数の動作確認
phpのmb_send_mail関数の動作を確認します。wordpress自体がメールの送信動作を行えているかの挙動を確認できます。逆に言えばmb_send_mail関数が動作しているのにメールが届かない場合、wordpress外の要因でエラーが出ていると考えられます。
サンプルコードは以下です。
<?php
//メールの情報を初期化
$sTo = '';
$sFromMail = '';
$sSubject = '';
$sMessage = '';
$sHeaders = '';
//メールの情報を設定
$sTo = '送信先を入力';
$sFromMail = '送信元を入力';
$sSubject = '件名';
$sHeaders = "From: {$sFromMail}\r\n";
$sMessage = "本文を入力;
//言語と文字コードを設定
mb_language("Japanese");
mb_internal_encoding("UTF-8");
//メールの送信
if(mb_send_mail($mailto,$title,$message,$option)){
echo "送信成功";
}else{
echo "送信失敗";
}
?>
SMTPサーバーとMTAの有無の確認
MTAとはMail Transfer Agent、メール転送エージェントの略で、電子メールを送信するためのメールサーバの機能です。これがSMTPサーバーにないとwordpressはメール送信動作を完了できません。代表的なMTAにsendmail、Postfixなどがあります。
またレンタルサーバーによってはSMTPサーバーの設定がない場合や有料プランであることもあります。利用しているサーバーにSMTPサーバーが実装されているか、SMTPサーバーにMTAは実装されているかを確認しましょう。
まとめ
webサイトにとってメールやフォームが動作していないと、せっかくのユーザーからのエンゲージメントを受け取ることができず、不備に気づくのが遅れると大きな機会の損失になります。動作チェックには万全を期しましょう。
