手順
SendGrid で API キーを取得
- SendGrid にログイン → Settings > API Keys > Create API Key
- 権限は「Mail Send」のみで OK
- 生成された API キーをコピーしておく
n8n の環境変数を設定
docker-compose.ymlまたは.envに以下を追加:N8N_EMAIL_MODE=smtp N8N_SMTP_HOST=smtp.sendgrid.net N8N_SMTP_PORT=465 N8N_SMTP_SSL=true N8N_SMTP_USER=apikey N8N_SMTP_PASS=<SendGrid の API キー> N8N_SMTP_SENDER=<送信元メールアドレス>N8N_SMTP_USERは文字列apikeyで固定(SendGrid の仕様)n8n を再起動
docker compose down && docker compose up -d動作確認
- n8n の管理画面 → Settings > Users からユーザーを招待、またはパスワードリセットを試して、メールが届くことを確認
Q&A
SendGrid のメール送信の流れは?
n8n → SMTP/API → SendGrid サーバー → 宛先メールサーバー → 受信者
n8n はメール送信をあくまで SendGrid に「依頼」するだけで、実際の配送は SendGrid が担う。SendGrid 側でバウンス処理・スパム対策・到達率管理なども行われる。
ポート 465 を使う理由は?
SMTP のポートには主に 3 種類ある:
| ポート | 用途 |
|---|---|
| 25 | サーバー間の転送用(一般的にブロックされる) |
| 587 | STARTTLS(接続後に暗号化) |
| 465 | SMTPS(最初から SSL/TLS で暗号化) |
465 は接続の最初から暗号化されるため、API キーなどの認証情報を安全に送れる。N8N_SMTP_SSL=true と組み合わせて使う。587 + STARTTLS でも動作するが、465 の方がシンプルで安全。
N8N_SMTP_SENDER には何のアドレスを入れる?
SendGrid で Domain Authentication(送信ドメイン認証) を完了させたドメインのアドレスを使う必要がある。なんでもいいわけではない。
- ✅
noreply@yourdomain.com(自分が所有・認証済みのドメイン) - ❌
noreply@gmail.comなどの他社ドメイン
未認証のドメインを使うとメールが届かない、または迷惑メール扱いになる。Domain Authentication は SendGrid の Settings > Sender Authentication から設定する。
メール送信の詳細な流れは?
① n8n
↓ SMTP(API キーで認証)
② SendGrid サーバー
↓ 送信元ドメインの DNS を確認(SPF / DKIM で「本物か」検証)
↓ 宛先アドレスの DNS を確認(MX レコードで「どのサーバーに届けるか」を調べる)
③ 宛先メールサーバー(例: Gmail のサーバー)
↓ SPF / DKIM を検証して迷惑メールでないか判定
④ 受信者の受信箱
- SPF — 「このドメインからの送信は SendGrid に許可している」と DNS に宣言する仕組み
- DKIM — メール本文にデジタル署名を付けて「改ざんされていない」ことを証明する仕組み
- MX レコード — 「このドメイン宛のメールは○○サーバーへ」と DNS に登録した転送先情報。自分で設定する必要はない。 SendGrid が宛先ドメイン(例:
gmail.com)の MX レコードを勝手に調べて届けてくれる。MX レコードを自分で設定するのは「自分のドメインでメールを受信したい」場合のみ
STARTTLS とは?
最初は暗号化なしで接続し、途中で「TLS に切り替えよう」と交渉してから暗号化する方式。ポート 587 で使う。接続開始時は平文なので、切り替え前に通信を傍受される理論的リスクがある。
SMTPS とは?
接続の最初から SSL/TLS で暗号化する方式。ポート 465 で使う。STARTTLS のような「途中で切り替え」がないため、よりシンプルで安全。
Domain Authentication(送信ドメイン認証)とは?
「このメールは本当に yourdomain.com から送られた正規のメールです」と証明するための設定。SendGrid の指示に従い、自分のドメインの DNS に SPF・DKIM のレコードを追加するだけで完了する。設定しないと受信側サーバーに「なりすましかも」と判断されて迷惑メールフォルダに入ったり、そもそも届かないことがある。