2026年5月20日
2026年5月20日
WordPressのMailgunを設定してメール配信を改善する方法
はじめに
MailgunはMailchimp Transactionalが提供するメール配信APIサービスです。月間1,000通まで無料で利用でき、高い到達率と詳細な配信ログが特徴です。WordPressのメール送信基盤として非常に安定しています。
事前準備:Mailgunアカウントと送信ドメインの設定
1. mailgun.com でアカウント作成(クレジットカード不要)
2. Sending → Domains → Add New Domain
3. ドメイン名: mg.example.com(サブドメイン推奨)を入力
4. 生成されたDNSレコードをドメイン管理画面に追加
必要なDNSレコード:
TXT mg.example.com "v=spf1 include:mailgun.org ~all"
TXT mx._domainkey.mg.example.com "k=rsa; p=MIGfMA..."
MX mg.example.com mxa.mailgun.org (優先度10)
MX mg.example.com mxb.mailgun.org (優先度10)
解決手順
ステップ1:APIキーを取得
Settings → API Keys → Create API Key(Sending access権限)
ステップ2:phpmailer_initでMailgun SMTP設定
// functions.php — Mailgun SMTP接続(EU/USリージョン対応)
add_action('phpmailer_init', function(PHPMailer\PHPMailer\PHPMailer $phpmailer) {
$phpmailer->isSMTP();
// US: smtp.mailgun.org / EU: smtp.eu.mailgun.org
$phpmailer->Host = 'smtp.mailgun.org';
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 587;
$phpmailer->Username = defined('MAILGUN_SMTP_USER') ? MAILGUN_SMTP_USER : '';
$phpmailer->Password = defined('MAILGUN_SMTP_PASS') ? MAILGUN_SMTP_PASS : '';
$phpmailer->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS;
$phpmailer->From = 'noreply@mg.example.com';
$phpmailer->FromName = get_bloginfo('name');
});
// wp-config.php
define('MAILGUN_SMTP_USER', 'postmaster@mg.example.com'); // Mailgunが自動生成
define('MAILGUN_SMTP_PASS', 'your_mailgun_smtp_password');
MailgunダッシュボードのDomain Settings → SMTP credentialsでユーザー名とパスワードを確認できます。
ステップ3:Mailgun WordPress プラグインを使用する場合
wp plugin install mailgun --activate
管理画面 → 設定 → Mailgun:
- API or SMTP: API を選択(推奨)
- API Key: 取得したAPIキー
- Domain: mg.example.com
ステップ4:配信確認
# WP-CLIでテスト送信
wp eval "
\$result = wp_mail('test@example.com', 'Mailgunテスト', 'Mailgun経由の送信テストです。');
var_dump(\$result);
"
MailgunダッシュボードのLogging → Logs で配信ステータスを確認できます。
Mailgunの料金プラン
| プラン | 月間送信数 | 料金 |
|--------|-----------|------|
| Flex(無料枠あり) | 1,000通/月 | 無料 |
| Foundation | 50,000通/月 | $35〜 |
| Growth | 100,000通/月 | $80〜 |
注意事項
- 新規アカウントは「Sandbox Domain」から始まります。本番使用には独自ドメインの追加と本人確認が必要です
- EU在住のユーザーへ送信する場合はEUリージョン(smtp.eu.mailgun.org)を使用してください
- SMTP認証情報はAPIキーとは別物です。MailgunダッシュボードのDomain Settingsから確認してください
まとめ
Mailgunの設定は、送信ドメインのDNS認証 → SMTP認証情報の取得 → phpmailer_init フックで接続設定の順で行います。月1,000通まで無料で高い到達率を実現できます。