2026年9月14日
2026年9月14日
外部メールサービス(SendGrid/Mailgun)をSMTPリレーに使う方法
はじめに
WordPressサイトの管理者は、自前のメールサーバを所有していない場合でも、外部のSMTPサービスを使用してメールを送信することができます。SendGridやMailgunはその代表的な例であり、これらのサービスは送信用のSMTPアカウントとAPIキーを提供します。この記事では、Linuxサーバ上で外部SMTPリレーとしてSendGrid/Mailgunを利用する方法について解説します。
症状・背景
- WordPressサイトから大量のメールを送信しようとするが、自前のメールサーバがない場合。
- サイトのドメインを確立し、SPF/DKIM/DMARCなどのDNSレコード設定を行う必要がある場合。
- 自身のメールサーバに依存せず、より柔軟なメール送信用サービスを利用したい場合。
手順・設定方法
ステップ1: SendGrid/Mailgunアカウントの取得とAPIキーの取得
まず、SendGridやMailgunのアカウントを作成し、APIキーを取得します。
# APIキーの取得(ここでは仮想的な手順)
curl -u 'api_key' https://api.sendgrid.com/v3/api_keys > api_key.json
ステップ2: PostfixにSMTPリレーサービスを設定する
PostfixはLinuxサーバ上での標準的なメール送信用MTAです。ここではPostfixにSendGrid/MailgunをSMTPリレーとして追加します。
# Postfixのコンフィグファイルを編集
sudo nano /etc/postfix/main.cf
# 以下を追記
relayhost = [smtp.sendgrid.net]:587
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
mynetworks = 127.0.0.0/8
# SASLパスワードファイルを作成
echo "[smtp.sendgrid.net]:587 API-KEY-HERE" | sudo tee /etc/postfix/sasl_passwd > /dev/null
# ファイルの権限を設定
sudo chmod 600 /etc/postfix/sasl_passwd
# ファイルをハッシュ化
sudo postmap /etc/postfix/sasl_passwd
# Postfixを再起動
sudo systemctl restart postfix
ステップ3: SPF/DKIM/DMARC設定の追加
これらのDNSレコードは、メール送信時にサーバが確認するための重要なものであり、外部SMTPリレーを使用している場合にも必要です。
# SPFレコードを追加(例)
echo "v=spf1 include:sendgrid.net ~all" | sudo tee /etc/mail/spf.txt > /dev/null
# DNS RecordsにSPFレコードを反映
sudo postconf -e 'milter_default_action = accept'
sudo postconf -e 'non_smtpd_milters = $local_path:$smtpd_milters'
# DKIM/DMARCの設定(ここでは簡略化)
echo "k=rsa; p=MIGfMA0GCSqGSI... (DNS区切り)" | sudo tee /etc/mail/dkim.key > /dev/null
echo "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSI... (DNS区切り)" | sudo tee /etc/mail/dkim.txt > /dev/null
# DNS RecordsにDKIM/DMARCレコードを反映
ステップ4: 実践/トラブルシュート/監視
メール送信テストを行い、問題がなければ定期的に監視します。
# テスト用のメールを送る
echo "Hello World" | mail -s "Test Subject" example@example.com
# 生成されたログを確認する
sudo tail /var/log/mail.log
注意事項
- APIキーは厳重に管理し、漏洩しないように注意してください。
- SPF/DKIM/DMARCの設定が適切であることを常に確認します。
- メール送信量が多い場合、SendGrid/Mailgunの使用料金を考慮に入れてください。
まとめ
1. APIキーの取得: SendGridやMailgunでアカウントを作成し、APIキーを取得します。
2. Postfix設定: PostfixにSMTPリレーサービスとしてSendGrid/Mailgunを追加します。
3. DNSレコード設定: SPF/DKIM/DMARCなどのDNSレコードを設定します。
4. 実践と監視: テストを行い、定期的にログを確認します。
関連記事: