Skip to content

プラグインを使わずにSMTPでメールを送信する方法

プラグインを使わずにSMTPを設定するには、テーマの functions.php ファイルにコードを記述し、WordPressのメール初期化プロセス(phpmailer_init フック)を上書きする方法があります。

ただし、コードを直接編集するため、記述ミスをするとサイト全体が真っ白になるリスクがあります。必ずバックアップを取ってから、慎重に行ってください。

以下に具体的な手順とコードを紹介します。

手順1:functions.php にコードを追加する

使用しているテーマ(できれば子テーマ)の functions.php に以下のコードを追加します。

※ホスト名やポート番号などは、ご自身の環境(Xserver、Gmailなど)に合わせて書き換えてください。

    add_action( 'phpmailer_init', 'custom_smtp_setup' );

function custom_smtp_setup( $phpmailer ) {
    // SMTPを使用するように設定
    $phpmailer->isSMTP();

    // 【要変更】SMTPホスト名(例: sv1234.xserver.jp)
    $phpmailer->Host = 'smtp.example.com';

    // 【要変更】SMTP認証(通常は true)
    $phpmailer->SMTPAuth = true;

    // 【要変更】ポート番号(TLSなら587, SSLなら465)
    $phpmailer->Port = 587;

    // 【要変更】暗号化方式('tls' または 'ssl')
    $phpmailer->SMTPSecure = 'tls';

    // 【要変更】SMTPユーザー名(メールアドレス)
    $phpmailer->Username = 'info@yourdomain.com';

    // 【要変更】SMTPパスワード
    $phpmailer->Password = 'your_password_here';

    // 送信元アドレスと送信者名(必要であれば設定)
    $phpmailer->From = 'info@yourdomain.com';
    $phpmailer->FromName = 'サイト名';
}   
            
                    
        

手順2:セキュリティを強化する(推奨)

上記のコードでは、functions.php にパスワードを直接書くことになります。これはセキュリティ上あまり好ましくありません(テーマエディタから誰でも見えてしまう可能性があるため)。

より安全に行うには、パスワードなどの機密情報を wp-config.php ファイルに定義し、functions.php からそれを呼び出す方法をおすすめします。

1. wp-config.php に追記

FTPソフトなどでサーバー上の wp-config.php を開き、一番上の方(<?php の下あたり)に以下を追記します。

    /**
 * SMTP情報 
 */
define( 'SMTP_HOST',     'メールサーバーのURL' );
define( 'SMTP_USER',     'ユーザー名' );
define( 'SMTP_PASSWORD', 'パスワード' );
define( 'SMTP_FROM',     'メールアドレス' );
define( 'SMTP_FROMNAME', '表示名' );
define( 'SMTP_PORT',      'ポート番号' );
define( 'SMTP_AUTH',      true );
define( 'SMTP_SECURE',    'ssl' );   
            
                    
        

2. functions.php を書き換え

先ほどのコードを、定数を使う形に修正します。

    add_action( 'phpmailer_init', 'send_smtp_email' );
function send_smtp_email( $phpmailer ) {
  $phpmailer->isSMTP();
  $phpmailer->Host =       SMTP_HOST;
  $phpmailer->Username =   SMTP_USER;
  $phpmailer->Password =   SMTP_PASSWORD;
  $phpmailer->From =       SMTP_FROM;
  $phpmailer->FromName =   SMTP_FROMNAME;
  $phpmailer->Port =       SMTP_PORT;
  $phpmailer->SMTPAuth =   SMTP_AUTH;
  $phpmailer->SMTPSecure = SMTP_SECURE;
}   
            
                    
        

動作確認の方法

プラグインを使わない場合、「テスト送信ボタン」がありません。以下の方法で動作を確認してください。

  1. 「パスワードリセット」を試す

    WordPressのログイン画面で「パスワードをお忘れですか?」をクリックし、自分のメールアドレスを入力してリセットメールが届くか確認するのが一番手軽です。

  2. お問い合わせフォームから送信する

    Contact Form 7などを設置している場合、実際にフォームから送信して確認します。

注意点

  • 子テーマを使う: 親テーマの functions.php に書くと、テーマのアップデート時に設定が消えてしまいます。必ず子テーマを使用するか、自作のプラグインとして管理してください。

  • Gmailを使う場合: Googleアカウント側で「アプリパスワード」の生成が必要です。通常のログインパスワードでは動作しません。

最終更新日: 2026-01-30

この記事は役に立ちましたか?

次へ...

ユーザーの位置情報を自動的に検出し、WordPressのページに表示する方法