ワードプレス経由のメール送信ができない場合に、サーバーの直接送信メールとワードプレスのメール送信を簡易チェックするPHPコードをご紹介いたします。(2つのメール送信をテストすることにより問題の切り分けが可能となります)

ワードプレスのメールが届かないときにサーバーのメール送信の問題か、ワードプレス側の問題かを同時に調査

下記のコードはサーバーのmail関数と、wp_mail関数(ワードプレスのメール送信関数)を同時にチェックするコードです。
こちらをコピペいただいて、mailtest.phpという名称のテキストファイルにしていただき、サーバーにFTPソフトウェア等でワードプレスのwp-config.phpがあるディレクトリにアップロードします。

※コード中の送信先、送信元メールアドレス設定 にメールが受け取れるアドレスを指定してください

<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

/*送信先、送信元メールアドレス設定*/
$to = "sousinsaki@example.com";
$from = "sousinmoto@example.com";

$subject = "PHP Mail Test script";
$message = "This is a test to check the PHP Mail functionality";
$headers = "From:" . $from;
$success =mail($to,$subject,$message, $headers); //直接送信テスト

if (!$success) {
$errorMessage = error_get_last();
echo "直接送信テストメール送信失敗:<pre>";
print_r($errorMessage);
echo "</pre><br>";
}else{
echo "直接送信テストメール送信成功<br>";
}

require_once("wp-load.php");
add_action( 'wp_mail_failed', 'onMailError', 10, 1 );
function onMailError( $wp_error ) {
echo "<pre>";
print_r($wp_error);
echo "</pre>";
}
echo "ワードプレスのメール送信テスト結果(なにも出力されない場合はエラーなし):";
wp_mail( $to, $subject."from WP", $message."from WP", $headers );// ワードプレスのメール送信テスト

次にこのファイルにブラウザーからアクセスします

http://ワードプレスのURL/mailtest.php

結果の分析

送信先メールアドレスに2通のメール(サーバー直接とワードプレス経由)のメールが届いていたら、特にメールの送信には問題が無いことになります。

もしメールが届かない等の問題が顧客等から指摘されている時は、ワードプレスの自動返信メール設定の不備や、顧客側のメールソフト側の迷惑メールフィルタ等の原因である可能性が高くなります。

直接送信テストメールのみ成功しワードプレスの送信メールがWP_Error Objectなどと表示され失敗する

この場合はワードプレス上のSMTP系のプラグインなどのワードプレス上で行っているメール送信サーバーの設定等がどこか間違っている可能性が高くなります。

Warning: mail(): Failed to connect to mailserver、Could not instantiate mail function. 等と表示され双方失敗する

この場合、サーバー自体のメール送信が禁止または停止されている可能性が高いです。
ワードプレス上でSMTPを設定するプラグインを導入いただき、サーバー管理会社から提供されているSMTP接続(送信)設定を行っていただくか、外部のSMTPサーバーの契約と設定によりワードプレス側からはメール送信できるようになるかと存じます。

参考:ワードプレスのSMTP設定プラグイン
WP Mail SMTP

WordPress ワードプレスのバグや修正を経験豊かな技術者が代行します。お気軽にWPドクターまでご相談・ご依頼お送りください