2026年9月14日

2026年9月14日

WordPressのwp_mail送信エラーを解決する方法

はじめに

WordPressのサイト運営では、ユーザー登録時の確認メールや問い合わせフォームからの返信などの機能で「wp_mail」関数が頻繁に使用されます。しかし、この関数が正常に動作しないと予期せぬ問題が発生します。本記事では、wp_mail関数の送信エラーを特定し、解決するための手順を解説します。

症状・背景

このテーマが必要になる主な場面:

  • WordPressサイトで問い合わせフォームからのメールが届かない場合
  • ユーザー登録時に確認メールが送信されない場合
  • wp_mail関数を使用したカスタムプラグインやテーマでメールの送信に問題がある場合
  • PHPMailerの設定が間違っている場合

手順・設定方法

ステップ1: wp-config.phpファイルを編集してSMTP設定を追加

# WordPressディレクトリ内に移動します。
cd /path/to/wordpress/

# テキストエディタでwp-config.phpを開きます。(例:nanoまたはvim)
sudo nano wp-config.php

# 下記の行をwp-config.phpファイルの最後に追加し、必要に応じてSMTP設定を変更してください。
define('WP_DEBUG', true);
define( 'SMTP_HOST', 'smtp.example.com' );
define( 'SMTP_USER', 'your-email@example.com' );
define( 'SMTP_PASS', 'yourpassword' );
define( 'SMTP_FROM_NAME', '送信者名' );
define( 'SMTP_FROM_EMAIL', 'from@example.com' );

# 変更を保存して閉じます。
Ctrl + O
Ctrl + X

ステップ2: メール関連プラグインの設定

# WordPressダッシュボードにログインします。
https://yourdomain.com/wp-admin/

# 「プラグイン」->「有効化済み」からメール関連のプラグイン(例:WP Mail SMTP)を選択し、設定ページを開きます。

# プラグインの設定ウィンドウでSMTPホスト、ユーザー名、パスワードなどを入力します。
# 「テストメールを送信」ボタンを押して、設定が正しいか確認してください。

ステップ3: PHPMailerを使用したカスタム設定

# WordPressディレクトリのwp-content/plugins/下に新規フォルダを作成します。(例:custom-mailer)
mkdir /path/to/wordpress/wp-content/plugins/custom-mailer/

# custom-mailerディレクトリ内にメール送信用PHPファイルを追加します。
nano /path/to/wordpress/wp-content/plugins/custom-mailer/send-email.php

# 下記のコードをコピー&ペーストし、必要に応じてSMTP設定を変更してください。
<?php
add_action('init', 'send_custom_email');
function send_custom_email() {
    require_once ABSPATH . WPINC . '/class-phpmailer.php';
    require_once ABSPATH . WPINC . '/class-smtp.php';

    $mail = new PHPMailer\PHPMailer\PHPMailer();
    $mail->isSMTP();
    $mail->Host = 'smtp.example.com';
    $mail->Username = 'your-email@example.com';
    $mail->Password = 'yourpassword';
    $mail->Port = 587;
    $mail->SMTPAuth = true;

    $mail->FromName = '送信者名';
    $mail->From = 'from@example.com';

    $mail->addAddress('to@example.com', '受取人名');
    $mail->isHTML(true);
    $mail->Subject = 'タイトル';
    $mail->Body    = '<h1>メール本文</h1>';
    
    if(!$mail->send()) {
        echo "送信失敗: " . $mail->ErrorInfo;
    } else {
        echo "メールが正常に送信されました";
    }
}

# PHPファイルを保存して閉じます。
Ctrl + O
Ctrl + X

ステップ4: ログの確認とエラーハンドリング

# WordPressのログファイルを確認します。(通常はwp-content/debug.log)
tail -f /path/to/wordpress/wp-content/debug.log

# wp_mail関数に関連するエラーが表示されているか確認してください。

注意事項

  • <実践的な注意点1>: PHPMailerの最新バージョンを使用すること。古いバージョンではセキュリティ上の問題や機能不全がある可能性があります。
  • <実践的な注意点2>: SMTP設定が正しくない場合、メール送信に失敗します。SMTPサーバーとユーザー情報は正確に入力してください。
  • <セキュリティ上の注意>: メール関連の設定情報を適切に管理し、公開しないようにしましょう。
  • <パフォーマンス/運用上の注意>: 高負荷時のメール送信では、遅延やサーバーへの影響を考慮する必要があります。

まとめ

1. SMTP設定: メールが正常に送信されるにはSMTP設定の確認と適切な変更が必要です。

2. プラグイン利用: 高機能なメール送信用のプラグインを利用することで、簡単にwp_mail関数の問題を解決できます。

3. カスタムコード: 特定のニーズに合わせてPHPMailerを使用したカスタム設定を行うことで、より柔軟なメール機能が実現可能となります。

4. エラーロギング: メール送信に関するエラー情報を確認し、対策を講じることが重要です。

5. セキュリティ管理: 重要な設定情報の管理に注意し、漏洩や不正利用からサイトを保護します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ
▲