2026年5月20日
2026年5月20日
WordPressのSMTPプラグイン比較|WP Mail SMTP・FluentSMTP・Post SMTP・Easy WP SMTP
WordPressのメールは、初期設定ではサーバーのPHPの mail() 関数で送られます。認証のないこの送り方は迷惑メールと判定されやすく、届かないこともあります。SMTPプラグインを入れると、wp_mail() で送られるすべてのメール(問い合わせフォーム、パスワードの再設定、WooCommerce の注文メールなど)を、Gmail や SendGrid などの送信サービス経由に切り替えられます。
この記事では、WordPress.org で配布されている主なSMTPプラグイン4つを、無料版でできることを中心に比べます。内容は2026年10月時点の各プラグインの公式説明に基づきます。有料版の価格や機能は変わることがあるため、購入前に各社の公式サイトで確認してください。
主なSMTPプラグインの比較
| プラグイン | 有効インストール数 | 無料版の接続先(主なもの) | 有料版が必要な接続先 | 無料版のメールログ |
|---|---|---|---|---|
| WP Mail SMTP | 400万以上 | Gmail(Google Workspace)、SendGrid、Mailgun、Brevo、Postmark、SparkPost、SMTP2GO、その他のSMTP など | Microsoft 365 / Outlook、Amazon SES、Zoho Mail | なし(有料版) |
| FluentSMTP | 70万以上 | Gmail、Google Workspace、Outlook / Microsoft 365、Amazon SES、SendGrid、Mailgun、Brevo、Postmark、SparkPost、その他のSMTP など | なし(有料版がない) | あり |
| Easy WP SMTP | 50万以上 | SendGrid、Mailgun、Mailjet、Brevo、Postmark、SparkPost、SMTP2GO、その他のSMTP など | Gmail(Google連携)、Microsoft 365 / Outlook、Amazon SES、Zoho Mail | 送信失敗の記録のみ(全件のログは有料版) |
| Post SMTP | 30万以上 | Gmail(Gmail API)、SendGrid、Mailgun、Brevo、Postmark、SparkPost、その他のSMTP など | Microsoft 365 / Outlook、Amazon SES、Zoho Mail | あり |
有効インストール数は WordPress.org の表示(2026年10月時点)です。
表の「その他のSMTP」は、ホスト名・ポート・ユーザー名・パスワードを入れて任意のSMTPサーバーにつなぐ方法です。レンタルサーバーのメールアドレスや、Gmail の SMTP サーバーにもこの方法でつなげます。Gmail をこの方法でつなぐ場合は、Google アカウントで2段階認証を有効にし、アプリ パスワードを発行して使います。上の表で「有料版が必要」となっている Gmail や Microsoft 365 は、OAuth(Google や Microsoft のアカウントでログインして許可する方式)での連携のことです。
各プラグインの特徴
FluentSMTP
FluentSMTP は有料版がなく、すべての機能を無料で使えます。WordPress.org の説明でも、今後も有料版を出さないと明記しています。
- Amazon SES、Gmail / Google Workspace、Outlook / Microsoft 365 も API で接続できる
- 送信ログと、ログからの再送
- 接続を複数登録し、送信元アドレスごとに使い分けられる。主の接続が失敗したときの予備の接続(フォールバック)も設定できる
- 送信失敗を Slack・Discord・Telegram などに通知
- 認証情報を
wp-config.phpに書いて、データベースに保存しない設定ができる - WP-CLI のコマンド(
wp fluent-smtp testなど)がある
設定画面は「設定」→「FluentSMTP」です。WP Mail SMTP や Easy WP SMTP の設定を読み込む機能もあります。
wp plugin install fluent-smtp --activate
WP Mail SMTP
利用者が最も多いプラグインです。セットアップウィザードで接続先を選んで設定します。無料版で Gmail(Google Workspace)を含む多くの送信サービスに接続できますが、メールログ、送信失敗の通知、予備の接続、条件による振り分けは有料版(WP Mail SMTP Pro)の機能です。Microsoft 365 / Outlook、Amazon SES、Zoho Mail との連携も有料版です。
wp plugin install wp-mail-smtp --activate
Post SMTP
無料版でも送信ログを見られ、送信に失敗したときに通知を受け取れます。Gmail は無料版でも Gmail API で設定できます(ワンクリックでの設定は有料版)。Microsoft 365、Amazon SES、Zoho Mail との連携、失敗したメールの自動再送などは有料版です。
wp plugin install post-smtp --activate
Easy WP SMTP
無料版・有料版の機能の分け方は WP Mail SMTP と似ています。無料版では、送信に失敗したときの記録(デバッグイベント)を確認できます。すべてのメールのログ、Gmail・Microsoft 365・Amazon SES・Zoho Mail との連携は有料版です。
wp plugin install easy-wp-smtp --activate
用途別の選び方
- 費用をかけずにログや予備の接続まで使いたい:FluentSMTP
- Amazon SES や Microsoft 365 を無料で使いたい:FluentSMTP
- 無料版で Gmail(Google Workspace)を OAuth でつなぎたい:WP Mail SMTP、FluentSMTP、Post SMTP
- 有料のサポートや、ログ・レポートをまとめて使いたい:WP Mail SMTP Pro などの有料版
- プラグインを増やしたくない:次の章の
phpmailer_initで設定する
どれを選んでも、送信サービス側で送信元ドメインの認証(SPF・DKIM)を設定しておくと、迷惑メールと判定されにくくなります。
プラグインを使わずに設定する(phpmailer_init)
WordPress の phpmailer_init アクションを使うと、プラグインなしで wp_mail() をSMTP経由にできます。次のコードは、テーマの functions.php ではなく、wp-content/mu-plugins/smtp.php のような専用のファイルに置くと、テーマを変えても設定が残ります。
<?php
/**
* Plugin Name: SMTP 設定
*/
add_action( 'phpmailer_init', function ( PHPMailer\PHPMailer\PHPMailer $phpmailer ) {
if ( ! defined( 'SMTP_HOST' ) ) {
return; // wp-config.php に設定がなければ何もしない
}
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_HOST;
$phpmailer->Port = SMTP_PORT;
$phpmailer->SMTPAuth = true;
$phpmailer->Username = SMTP_USER;
$phpmailer->Password = SMTP_PASS;
$phpmailer->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS; // 587番ポートの場合
} );
// 送信元のアドレスと名前(送信サービスで認証したドメインのアドレスにする)
add_filter( 'wp_mail_from', fn() => 'noreply@example.com' );
add_filter( 'wp_mail_from_name', fn() => 'サイト名' );
接続情報は wp-config.php に書きます。SendGrid の場合、ユーザー名は apikey という文字列で、パスワードは発行した API キーです。
<?php
define( 'SMTP_HOST', 'smtp.sendgrid.net' );
define( 'SMTP_PORT', 587 );
define( 'SMTP_USER', 'apikey' );
define( 'SMTP_PASS', 'SG.xxxxxxxx' ); // 発行した API キー
465番ポート(SMTPS)を使う送信サービスでは、SMTPSecure を PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_SMTPS にします。SMTPプラグインを有効にしている場合は、プラグインの設定と重なるので、このコードは使わないでください。
設定後にテストする
設定したら、テストメールを送って届くかを確認します。各プラグインにはテスト送信の画面があります。WP-CLI からは次のように送れます。
wp eval 'var_dump( wp_mail( "you@example.com", "SMTP test", "This is a test." ) );'
bool(false) になる場合や届かない場合は、wp_mail_failed アクションでエラーの内容を記録します。wp-config.php で WP_DEBUG と WP_DEBUG_LOG を true にしておくと、wp-content/debug.log に書き出されます。
<?php
add_action( 'wp_mail_failed', function ( WP_Error $error ) {
error_log( 'wp_mail_failed: ' . $error->get_error_message() );
} );
注意点
- SMTPプラグインは1つだけ有効にします。複数を有効にすると、どちらの設定で送られるかが分かりにくくなります。乗り換えるときは、新しいプラグインでテスト送信が成功してから古いほうを無効にします
- Amazon SES は、新しいアカウントでは「サンドボックス」の状態で、認証済みのアドレスにしか送れません。一般の宛先に送るには、AWS のコンソールから本番環境へのアクセス(サンドボックスの解除)を申請します
- 一部のレンタルサーバーやクラウドでは、外部のSMTPサーバーへの接続(特に25番ポート)が制限されています。587番・465番ポートを使うか、API で送る接続方法を選びます
- SMTPのパスワードやAPIキーを
wp-config.phpに書く場合は、ファイルのアクセス権を必要以上に広げないようにします
まとめ
- 無料で機能をそろえたいなら FluentSMTP。Amazon SES や Microsoft 365 との連携、ログ、予備の接続まで無料で使える
- WP Mail SMTP は無料版でも Gmail を含む多くのサービスに対応するが、ログや通知は有料版
- Post SMTP は無料版で送信ログと失敗の通知が使える。Easy WP SMTP は全件のログが有料版
- プラグインを増やしたくない場合は、
phpmailer_initとwp-config.phpの定数で設定できる - どの方法でも、設定後にテストメールを送り、
wp_mail_failedでエラーを確認できるようにしておく
関連記事: