WP Mail SMTPでメールが送れないときの対処方

WordPressのメールは基本的にwp_mail関数というのが用意されているみたいです。WordPressからメールが行く場合はこの関数を使ってメールしていることになるみたいです。

WordPressの関数からメールが行く場合、迷惑メールになったり色々面倒な事もあります。例えばlogwではメールサーバーは外部のメールサーバーを使っているので問いあわせフォームからメールがくると差出人がApacheとかになっていたりなど。

外部のメールサーバーから送れるようにする

Web、DB、メールなどが分かれている場合は外部のメールサーバーから飛ぶのが良いので、このWP Mail SMTPを使います。設定方法などは通常のSMTP認証と同じなので割愛します。

テストメール送ると失敗する

普通にSMTPの設定すると全然送れません。え?なんで?っていうぐらい送れません。これはプラグインのPHPがデフォルトでSSL証明書を検証してしまうために起きていることみたいです。

プラグインの修正をする

プラグインの修正をしていきます。修正するプラグインのファイル名はwp_mail_smtp.phpというphpがいるになります。

//144行目付近に追加
// Set the other options
        $phpmailer->Host = get_option('smtp_host');
        $phpmailer->Port = get_option('smtp_port');
 
        // If we're using smtp auth, set the username & password
        if (get_option('smtp_auth') == "true") {
                $phpmailer->SMTPAuth = TRUE;
                $phpmailer->Username = get_option('smtp_user');
                $phpmailer->Password = get_option('smtp_pass');
                $phpmailer->SMTPOptions = array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true));//ここに追記する
        }

これをアップすれば完了です