---
title: "SMTP 完全ガイド：仕組み、動作原理、ベストプラクティス"
description: "この包括的ガイドで SMTP を使いこなしましょう。Simple Mail Transfer Protocol の仕組み、SMTP と API の比較、認証（SPF、DKIM、DMARC）の設定、ビジネスに最適な SMTP プロバイダーの選び方を解説します。"
url: https://tajo.io/jp/blog/smtp-complete-guide/
markdown: https://tajo.io/jp/blog/smtp-complete-guide.md
lang: ja-JP
author: "Set Noa"
author_url: https://tajo.io/jp/set-noa/
published: 2026-03-08
updated: 2026-05-03
alternates: {en-US: /blog/smtp-complete-guide.md, bg-BG: /bg/blog/smtp-complete-guide.md, cs-CZ: /cz/blog/smtp-complete-guide.md, de-DE: /de/blog/smtp-complete-guide.md, da-DK: /dk/blog/smtp-complete-guide.md, es-ES: /es/blog/smtp-complete-guide.md, fr-FR: /fr/blog/smtp-complete-guide.md, el-GR: /gr/blog/smtp-complete-guide.md, hi-IN: /hi/blog/smtp-complete-guide.md, id-ID: /in/blog/smtp-complete-guide.md, hr-HR: /hr/blog/smtp-complete-guide.md, hu-HU: /hu/blog/smtp-complete-guide.md, it-IT: /it/blog/smtp-complete-guide.md, ko-KR: /kr/blog/smtp-complete-guide.md, ar-SA: /ar/blog/smtp-complete-guide.md, nl-NL: /nl/blog/smtp-complete-guide.md, no-NO: /no/blog/smtp-complete-guide.md, pl-PL: /pl/blog/smtp-complete-guide.md, ro-RO: /ro/blog/smtp-complete-guide.md, ru-RU: /ru/blog/smtp-complete-guide.md, sv-SE: /se/blog/smtp-complete-guide.md, zh-CN: /zh-cn/blog/smtp-complete-guide.md, sl-SI: /sl/blog/smtp-complete-guide.md, sr-Latn-RS: /sr/blog/smtp-complete-guide.md, th-TH: /th/blog/smtp-complete-guide.md, tr-TR: /tr/blog/smtp-complete-guide.md, ur-PK: /ur/blog/smtp-complete-guide.md, vi-VN: /vi/blog/smtp-complete-guide.md, sk-SK: /sk/blog/smtp-complete-guide.md}
---

[メール](https://tajo.io/jp/blog/?category=email)

# SMTP 完全ガイド：仕組み、動作原理、ベストプラクティス

この包括的ガイドで SMTP を使いこなしましょう。Simple Mail Transfer Protocol の仕組み、SMTP と API の比較、認証（SPF、DKIM、DMARC）の設定、ビジネスに最適な SMTP プロバイダーの選び方を解説します。

SMTP server

SMTP サーバーとは何ですか？

SMTPはメール送信の標準プロトコルです。重要な自動送信には認証済みドメイン、SPF・DKIM・DMARC、バウンス処理、ログ、再試行を組み合わせます。

[詳しく見る](https://tajo.io/jp/blog/smtp-complete-guide/#smtp-%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B)

SMTP はインターネット上のメール通信の基盤です。個人の受信トレイから マーケティングオートメーションプラットフォームまで、送信するすべてのメールは SMTP を使って目的地に届きます。メールマーケティング、トランザクションメール、ビジネスコミュニケーションを管理する方にとって、SMTP の仕組みを理解することは不可欠です。

この包括的なガイドでは、SMTP について知る必要があるすべてをカバーします。基本的な仕組みから高度な認証方法、プロバイダー比較、よくある問題のトラブルシューティングまで網羅しています。

## SMTP とは何か

**SMTP（Simple Mail Transfer Protocol）** は、インターネット上でメールを送信するために使用される標準通信プロトコルです。1982 年に開発された SMTP は、メールメッセージがサーバー間でどのように転送されるかを定義し、デジタル世界の郵便サービスとして機能します。

メールを送信すると、SMTP が送信を処理します。メールクライアントからメールサーバーへ、そしてメールサーバーから受信者のメールサーバーへメッセージを転送します。このプロトコルは、世界中の異なるメールシステム間でメッセージを確実に配信するためのルールセットに基づいて動作します。

### SMTP の主な特徴

- **プッシュプロトコル**：SMTP は送信者から受信者へメールをプッシュします（メールを取得する POP3/IMAP とは異なります）
- **テキストベース**：コマンドと応答が人間が読める形式
- **接続指向**：信頼性の高い転送のために TCP/IP を使用
- **ストア・アンド・フォワード**：メッセージは転送前に中間サーバーに一時保存
- **標準化**：RFC 5321 が現在の SMTP 仕様を定義

### SMTP と他のメールプロトコルの比較

| プロトコル | 目的 | 方向 |
| --- | --- | --- |
| SMTP | メールを送信 | 送信 |
| POP3 | メールを取得 | 受信 |
| IMAP | メールにアクセス | 受信（同期） |

SMTP は POP3 や IMAP と連携して機能します。SMTP が送信メールを送る一方で、POP3 または IMAP が受信メールを受信トレイに取得します。ほとんどのメールクライアントは送信に SMTP、受信に IMAP を使用し、完全なメール体験を提供します。

## SMTP の仕組み

SMTP プロセスを理解すると、配信問題の診断とメールインフラの最適化に役立ちます。送信者から受信者までのメールの段階的な旅をご説明します。

### SMTP 通信プロセス

**ステップ 1：接続確立**

メールクライアント（メールユーザーエージェント）が、TCP ポート 25、587、または 465 を使って送信メールサーバー（メール転送エージェント）に接続します。サーバーが自己紹介する「ハンドシェイク」が行われます。

**ステップ 2：SMTP ハンドシェイク（HELO/EHLO）**

クライアントが HELO または EHLO コマンドで通信を開始します。

```
Client: EHLO mail.example.com
Server: 250-smtp.provider.com Hello
```

EHLO（拡張 HELO）は、認証や TLS 暗号化などの SMTP 拡張をサポートする最新版です。

**ステップ 3：送信者識別（MAIL FROM）**

クライアントが送信者のメールアドレスを指定します。

```
Client: MAIL FROM:<sender@example.com>
Server: 250 OK
```

**ステップ 4：受信者指定（RCPT TO）**

クライアントが 1 人または複数の受信者を識別します。

```
Client: RCPT TO:<recipient@destination.com>
Server: 250 OK
```

**ステップ 5：メッセージデータ転送（DATA）**

実際のメールコンテンツが転送されます。

```
Client: DATA
Server: 354 Start mail input
Client: Subject: Test Email
Client: From: sender@example.com
Client: To: recipient@destination.com
Client:
Client: This is the email body.
Client: .
Server: 250 OK
```

**ステップ 6：接続終了（QUIT）**

セッションが正常に終了します。

```
Client: QUIT
Server: 221 Bye
```

### メールの完全な旅

1. **作成**：メールクライアント（Gmail、Outlook など）でメールを作成
2. **送信**：クライアントが SMTP サーバーに接続
3. **DNS 検索**：サーバーが受信者の MX レコードを DNS に問い合わせ
4. **転送**：サーバーが受信者の SMTP サーバーに接続
5. **配信**：受信者のサーバーがメッセージを受け取る
6. **保存**：受信者が POP3/IMAP 経由で取得するためにメッセージを保存

### SMTP ポートの説明

| ポート | 名前 | セキュリティ | 用途 |
| --- | --- | --- | --- |
| 25 | SMTP | なし/STARTTLS | サーバー間リレー |
| 587 | Submission | STARTTLS | クライアントとサーバー間（推奨） |
| 465 | SMTPS | 暗黙的 TLS | レガシーセキュア送信 |
| 2525 | 代替 | STARTTLS | 587 がブロックされている場合 |

**ポート 587** は、アプリケーションやメールクライアントからメールを送信するための推奨ポートです。認証が必要で、STARTTLS 暗号化をサポートします。

**ポート 25** は元々の SMTP ポートですが、現在は主にサーバー間通信に使用されます。多くの ISP がスパムを防ぐためにポート 25 のアウトバウンドをブロックしています。

**ポート 465** は SMTPS（SSL 上の SMTP）用に一時的に指定されましたが、再割り当てされました。一部のプロバイダーはレガシー互換性のために今でもサポートしています。

## SMTP と メール API：どちらを使うべきか

現代のアプリケーションには、プログラム的にメールを送信するための主な選択肢が 2 つあります。従来の SMTP と HTTP ベースのメール API です。それぞれに明確な利点があります。

### SMTP アプローチ

SMTP では、アプリケーションが上記のプロトコルを使って SMTP サーバーに直接接続します。

**利点：**

- あらゆるメール送信ライブラリとの普遍的な互換性
- 既存のメールインフラで動作
- 特定の API 形式へのベンダーロックインなし
- 基本的なユースケースではシンプルな設定
- HTTP アクセスが制限された環境でも動作

**欠点：**

- より複雑なエラー処理
- 追加設定なしでの追跡が制限
- 同期送信は遅くなる可能性
- 接続管理のオーバーヘッド
- 高度な機能の実装が難しい

### メール API アプローチ

メール API は HTTP/REST を使ってメッセージを送信し、基礎となる SMTP の複雑さを抽象化します。

**利点：**

- 豊富な追跡機能（開封、クリック、バウンス）が組み込み済み
- Webhook による非同期送信
- HTTP ステータスコードでのシンプルなエラー処理
- テンプレート、スケジュール設定などの高度な機能がネイティブ対応
- より優れたアナリティクスとレポート
- 現代のアプリケーションとの統合が容易

**欠点：**

- ベンダー固有の実装
- インターネット接続が必要（ローカルリレーは不可）
- API レート制限が適用される場合
- API 固有の機能への習熟が必要

### SMTP を使う場面

- **レガシーシステム**：SMTP 向けに設計された古いアプリケーション
- **シンプルなトランザクションメール**：追跡ニーズのない基本的な通知
- **オンプレミスソフトウェア**：制限されたネットワーク環境のアプリケーション
- **メールクライアント設定**：デスクトップまたはモバイルメールアプリ
- **WordPress と CMS**：多くのプラグインが SMTP 認証情報を期待

### メール API を使う場面

- **マーケティングオートメーション**：詳細なアナリティクスが必要なキャンペーン
- **大量送信**：何千ものメールを送信するアプリケーション
- **現代のアプリケーション**：複雑なメールニーズを持つ SaaS 製品
- **高度な機能**：テンプレート管理、A/B テスト、ダイナミックコンテンツ
- **リアルタイム追跡**：即時の配信フィードバックが必要な場合

### ハイブリッドアプローチ

多くの組織が両方を使用しています。レガシーシステムからのシンプルなトランザクションメッセージには SMTP、マーケティングキャンペーンや複雑なオートメーションにはメール API を使います。Brevo のようなプラットフォームは両方の方法をサポートし、ユースケースごとに選択できます。

## SMTP 認証の説明

SMTP 認証は、無許可のユーザーがサーバーを通じてメールを送信するのを防ぎます。認証がなければ、誰でもサーバーを使ってスパムを送信でき、評判と到達率が損なわれます。

### SMTP 認証の種類

**SMTP AUTH（RFC 4954）**

送信前にユーザー名とパスワードを要求する標準的な認証メカニズムです。

```
Client: AUTH LOGIN
Server: 334 VXNlcm5hbWU6
Client: [base64-encoded username]
Server: 334 UGFzc3dvcmQ6
Client: [base64-encoded password]
Server: 235 Authentication successful
```

**一般的な AUTH メカニズム：**

| メカニズム | セキュリティ | 説明 |
| --- | --- | --- |
| PLAIN | 基本 | ユーザー名/パスワードをクリアテキストで（TLS が必要） |
| LOGIN | 基本 | PLAIN に類似、レガシー形式 |
| CRAM-MD5 | より良い | チャレンジレスポンス、パスワードをクリアで送らない |
| DIGEST-MD5 | 良い | 改善されたチャレンジレスポンス |
| OAUTH2 | 最良 | トークンベース、パスワード転送なし |

**TLS/SSL 暗号化**

認証情報を保護するため、常に暗号化を使用してください。

- **STARTTLS**：プレーン接続を暗号化にアップグレード（ポート 587）
- **暗黙的 TLS**：最初から接続が暗号化（ポート 465）

**API キーとパスワードの比較**

現代の SMTP サービスは、パスワードの代わりに API キーを使用することが多いです。

```
Username: apikey (literal string)
Password: your-api-key-here
```

API キーはアカウントパスワードを変更せずにローテーションでき、制限された権限を持てるため好まれます。

### SMTP 認証情報の設定

アプリケーションを SMTP 経由でメール送信するように設定する場合、通常以下が必要です。

1. **SMTP ホスト**：サーバーアドレス（例：smtp.brevo.com）
2. **SMTP ポート**：通常、認証済み送信には 587
3. **ユーザー名**：アカウントメールまたは API キー識別子
4. **パスワード**：アカウントパスワードまたは API キー
5. **暗号化**：TLS/STARTTLS を有効化

Brevo SMTP の設定例：

```
Host: smtp-relay.brevo.com
Port: 587
Username: your-email@example.com
Password: your-smtp-key
Encryption: STARTTLS
```

## メール認証：SPF、DKIM、DMARC

SMTP 認証（サーバーの使用権限の証明）を超えて、メール認証プロトコルはメールが主張する送信者から実際に送られてきたことを検証します。これらの DNS ベースのメカニズムはなりすましやフィッシングから保護します。

### SPF（Sender Policy Framework）

SPF は、ドメインに代わってメールを送信することが許可されている IP アドレスとサーバーを指定します。

**SPF の仕組み：**

1. ドメインの DNS に SPF レコードを公開する
2. 受信サーバーがメールを受け取ると、SPF を確認
3. 送信 IP が SPF レコードに一致すれば、メールはパス
4. 一致しなければ、メールはスパムとしてマークされるか拒否される

**SPF レコードの例：**

```
v=spf1 include:spf.brevo.com include:_spf.google.com -all
```

このレコードは Brevo と Google がドメインのメールを送信することを許可し、他のすべての送信者を拒否（-all）します。

**SPF の構文：**

| メカニズム | 説明 |
| --- | --- |
| include: | 別のドメインの SPF を信頼 |
| ip4: | 特定の IPv4 アドレス/範囲を許可 |
| ip6: | 特定の IPv6 アドレス/範囲を許可 |
| a | ドメインの A レコード IP を許可 |
| mx | ドメインの MX サーバー IP を許可 |
| -all | 他のすべてを拒否（ハードフェイル） |
| ~all | 他のすべてをソフトフェイル |
| ?all | 他のすべてをニュートラル |

**SPF のベストプラクティス：**

- 設定に自信がついたら -all（ハードフェイル）を使用
- permerror を避けるため DNS ルックアップを 10 回以内に抑える
- 正当な送信元をすべて含める
- デプロイ前に SPF バリデーターでテストする

### DKIM（DomainKeys Identified Mail）

DKIM はメールに暗号署名を追加し、転送中に変更されておらず、ドメインから送信されたことを証明します。

**DKIM の仕組み：**

1. メールサーバーが送信メッセージを秘密鍵で署名
2. 対応する公開鍵を DNS に公開
3. 受信サーバーが公開鍵を使って署名を検証
4. 有効な署名がメッセージの整合性と発信元を確認

**DKIM の DNS レコードの例：**

```
brevo._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4..."
```

セレクター（brevo）はどのキーを使用するかを識別し、複数のサービスが異なる DKIM キーで送信できます。

**DKIM のコンポーネント：**

| 部分 | 説明 |
| --- | --- |
| セレクター | 特定のキーを識別（例：brevo、google） |
| 公開鍵 | 検証のために DNS に公開された RSA キー |
| 秘密鍵 | 送信サーバーが保持し、メッセージに署名 |
| ヘッダー | メールに追加（DKIM-Signature） |

**DKIM のベストプラクティス：**

- 2048 ビット RSA キーを使用（最低 1024 ビット）
- 定期的にキーをローテーション
- 重要なヘッダー（From、Subject、Date）に署名
- 完全デプロイ前に署名をテスト

### DMARC（Domain-based Message Authentication, Reporting, and Conformance）

DMARC は SPF と DKIM の上に構築され、認証失敗の処理ポリシーとレポート機能を追加します。

**DMARC の仕組み：**

1. DNS に DMARC ポリシーを公開する
2. 受信サーバーが SPF と DKIM のアライメントを確認
3. 失敗したメールはポリシーに従って処理
4. 認証結果に関するレポートが送信される

**DMARC の DNS レコードの例：**

```
_dmarc.example.com IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; pct=100"
```

**DMARC ポリシー：**

| ポリシー | アクション |
| --- | --- |
| p=none | 監視のみ、失敗時にアクションなし |
| p=quarantine | 失敗したメールを迷惑メールフォルダへ |
| p=reject | 失敗したメールを完全にブロック |

**DMARC の実装手順：**

1. **p=none で開始**：配信に影響なく監視
2. **レポートを分析**：認証に失敗している正当な送信元を特定
3. **問題を修正**：不足している SPF のインクルードを追加し、DKIM を設定
4. **p=quarantine に移行**：ソフト適用で保護を開始
5. **p=reject に進む**：自信がついたら最大限の保護

**DMARC のベストプラクティス：**

- p=none と rua（集約レポート）から始める
- 適用前に 2〜4 週間レポートを監視
- すべての正当な送信者がアライメントで SPF または DKIM をパスすることを確認
- 適用時に pct（割合）を徐々に増やす

### 認証のアライメント

DMARC は From ヘッダーのドメインと SPF/DKIM をパスするドメイン間の「アライメント」を要求します。

- **SPF アライメント**：Return-Path ドメインが From ドメインと一致
- **DKIM アライメント**：DKIM 署名ドメインが From ドメインと一致

これにより攻撃者が SPF/DKIM インフラを使ってなりすましメールを送信するのを防ぎます。

## 最良の SMTP サービスとプロバイダー

適切な SMTP プロバイダーを選ぶことは、到達率、コスト、機能に影響します。2026 年の主要な選択肢をご紹介します。

### Brevo（旧 Sendinblue）

**最適な用途：** Eコマース、トランザクションメールとマーケティングメールの組み合わせ

Brevo は競争力のある価格で SMTP リレーと API アクセスの両方を提供します。強みはトランザクションメールをマーケティングオートメーション、CRM、マルチチャネルコミュニケーション（SMS、WhatsApp）と組み合わせることにあります。

| 機能 | 詳細 |
| --- | --- |
| 無料枠 | 1 日 300 通 |
| 価格 | 5,000 通から月 9 ドル |
| SMTP リレー | あり |
| API | あり（REST） |
| 到達率ツール | SPF、DKIM、専用 IP あり |
| アナリティクス | 開封、クリック、バウンス、リアルタイム |

**SMTP 設定：**

```
Host: smtp-relay.brevo.com
Port: 587
Authentication: Required
Encryption: STARTTLS
```

### Amazon SES（Simple Email Service）

**最適な用途：** AWS インフラを持つ大量送信者

Amazon SES は大量送信に対して非常に低い価格を提供し、他の AWS サービスとシームレスに統合します。

| 機能 | 詳細 |
| --- | --- |
| 無料枠 | 月 62,000 通（EC2 から） |
| 価格 | 1,000 通あたり 0.10 ドル |
| SMTP リレー | あり |
| API | あり（AWS SDK） |
| 到達率ツール | フル（手動設定が必要） |
| アナリティクス | CloudWatch 連携 |

**考慮事項：**

- 適切に設定するには技術的な専門知識が必要
- 評判管理は自己責任
- AWS に慣れたデベロッパーに最適

### SendGrid（Twilio）

**最適な用途：** 堅牢な API とスケーラビリティを必要とするデベロッパー

SendGrid は成長するビジネス向けに、優れたドキュメントとスケーラビリティを持つデベロッパーフレンドリーな API を提供します。

| 機能 | 詳細 |
| --- | --- |
| 無料枠 | 1 日 100 通 |
| 価格 | 50,000 通から月 19.95 ドル |
| SMTP リレー | あり |
| API | あり（REST、Webhook） |
| 到達率ツール | フルスイート含む |
| アナリティクス | 包括的なダッシュボード |

### Mailgun

**最適な用途：** 詳細なログを持つトランザクションメール

Mailgun は、強力なログ検索と検証機能を持つトランザクションとデベロッパーのユースケースに特化しています。

| 機能 | 詳細 |
| --- | --- |
| 無料枠 | 送信制限のあるトライアル |
| 価格 | 10,000 通から月 15 ドル |
| SMTP リレー | あり |
| API | あり（REST） |
| 到達率ツール | メール検証、ログ |
| アナリティクス | 検索可能なログ、統計 |

### Postmark

**最適な用途：** 最速配信が必要なトランザクションメール

Postmark は業界トップの配信速度と厳格なアンチスパムポリシーでトランザクションメールに特化しています。

| 機能 | 詳細 |
| --- | --- |
| 無料枠 | なし（トライアルあり） |
| 価格 | 10,000 通から月 15 ドル |
| SMTP リレー | あり |
| API | あり（REST） |
| 到達率ツール | 専用 IP 含む |
| アナリティクス | リアルタイム、詳細 |

### プロバイダー比較まとめ

| プロバイダー | 最適な用途 | 無料枠 | 開始価格 |
| --- | --- | --- | --- |
| Brevo | オールインワンマーケティング | 1 日 300 通 | 月 9 ドル |
| Amazon SES | 大量送信、AWS ユーザー | 月 62,000 通 | 1,000 通 0.10 ドル |
| SendGrid | デベロッパー向け | 1 日 100 通 | 月 19.95 ドル |
| Mailgun | トランザクション+ログ | トライアル | 月 15 ドル |
| Postmark | 高速トランザクション | トライアル | 月 15 ドル |

### 適切なプロバイダーの選び方

**以下の要素を検討してください：**

1. **送信量**：月に何通のメールを送りますか？
2. **タイプ**：マーケティング、トランザクション、または両方？
3. **技術リソース**：複雑な設定を管理できますか？
4. **必要な機能**：テンプレート、アナリティクス、A/B テスト？
5. **予算**：月間のメール予算は？
6. **連携**：どのシステムと接続する必要がありますか？

顧客データ同期、トランザクションメール、マーケティングキャンペーン、マルチチャネルコミュニケーションが 1 つの統合スタックで実現します。

## SMTP の設定方法

SMTP の設定はユースケースによって異なります。一般的なシナリオのガイドをご紹介します。

### WordPress での SMTP 設定

ほとんどの WordPress サイトでは、確実なメール配信のために SMTP が必要です。デフォルトの PHP mail() 関数は失敗したり迷惑メールに振り分けられることが多いです。

**ステップ 1：SMTP プラグインをインストールする**

人気のある選択肢：

- WP Mail SMTP
- Post SMTP
- Easy WP SMTP

**ステップ 2：プラグインを設定する**

Brevo で WP Mail SMTP を使用する場合：

```
From Email: noreply@yourdomain.com
From Name: Your Site Name
Mailer: Other SMTP
SMTP Host: smtp-relay.brevo.com
Encryption: TLS
SMTP Port: 587
Authentication: On
SMTP Username: your-email@example.com
SMTP Password: your-brevo-smtp-key
```

**ステップ 3：接続をテストする**

設定を確認するためにテストメールを送信してください。テストメールが届かない場合は迷惑メールフォルダを確認してください。

### アプリケーションでの SMTP 設定

カスタムアプリケーションには、プログラミング言語のメールライブラリを使用してください。

**Node.js（Nodemailer）：**

```javascript
const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
  host: 'smtp-relay.brevo.com',
  port: 587,
  secure: false,
  auth: {
    user: 'your-email@example.com',
    pass: 'your-smtp-key'
  }
});

await transporter.sendMail({
  from: 'sender@example.com',
  to: 'recipient@example.com',
  subject: 'Test Email',
  text: 'Hello from Node.js!'
});
```

**Python（smtplib）：**

```python
import smtplib
from email.mime.text import MIMEText

smtp_server = "smtp-relay.brevo.com"
port = 587
username = "your-email@example.com"
password = "your-smtp-key"

msg = MIMEText("Hello from Python!")
msg['Subject'] = "Test Email"
msg['From'] = "sender@example.com"
msg['To'] = "recipient@example.com"

with smtplib.SMTP(smtp_server, port) as server:
    server.starttls()
    server.login(username, password)
    server.send_message(msg)
```

**PHP（PHPMailer）：**

```php
use PHPMailer\PHPMailer\PHPMailer;

$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'smtp-relay.brevo.com';
$mail->SMTPAuth = true;
$mail->Username = 'your-email@example.com';
$mail->Password = 'your-smtp-key';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

$mail->setFrom('sender@example.com', 'Sender Name');
$mail->addAddress('recipient@example.com');
$mail->Subject = 'Test Email';
$mail->Body = 'Hello from PHP!';

$mail->send();
```

### DNS レコードの設定

送信前に認証 DNS レコードを設定してください。

**ステップ 1：SPF レコードを追加する**

ドメインルートに TXT レコードを作成します：

```
Type: TXT
Host: @
Value: v=spf1 include:spf.brevo.com ~all
```

既存の SPF がある場合は、include 文を追加します：

```
v=spf1 include:spf.brevo.com include:_spf.google.com ~all
```

**ステップ 2：DKIM レコードを追加する**

プロバイダーのセレクターを使って TXT レコードを作成します：

```
Type: TXT
Host: brevo._domainkey
Value: v=DKIM1; k=rsa; p=[your-public-key]
```

**ステップ 3：DMARC レコードを追加する**

監視モードで始めます：

```
Type: TXT
Host: _dmarc
Value: v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com
```

**ステップ 4：設定を検証する**

以下のようなツールを使用します：

- MXToolbox（mxtoolbox.com）
- Mail Tester（mail-tester.com）
- DMARC Analyzer

## よくある SMTP エラーと修正方法

SMTP エラーは標準化されたナンバリングシステムに従っています。これらのコードを理解することで配信問題を素早く診断できます。

### SMTP エラーコードのカテゴリ

| 範囲 | カテゴリ | 意味 |
| --- | --- | --- |
| 2xx | 成功 | コマンドが受け入れられた |
| 4xx | 一時的な失敗 | 後で再試行 |
| 5xx | 永続的な失敗 | 再試行しない |

### よくある SMTP エラーと解決策

**421 Service Not Available（サービス利用不可）**

サーバーが一時的にリクエストを処理できない状態です。

原因：サーバー過負荷、メンテナンスウィンドウ、接続制限に達した

解決策：待って再試行、プロバイダーのステータスページを確認、バックオフ付きの再試行ロジックを実装

**450 Mailbox Unavailable（メールボックス利用不可）**

受信者のメールボックスに一時的な問題があります。

原因：メールボックスがいっぱい、サーバーポリシーの制限、グレーリスト

解決策：遅延後に再試行、グレーリストは 2 回目の試行で解決、永続する場合は受信者に連絡

**500 Syntax Error（構文エラー）**

コマンドが認識されませんでした。

原因：不正な SMTP コマンド、サポートされていない拡張機能、エンコードの問題

解決策：コマンドの構文を確認、適切な行末（CRLF）を確保、クライアントの互換性を検証

**550 Mailbox Not Found（メールボックスが見つからない）**

受信者アドレスが存在しません。

原因：メールアドレスのタイポ、アカウント削除、ドメインがメールを受け入れない

解決策：受信者アドレスを確認、リストから削除（ハードバウンス）、メール検証を実装

**554 Transaction Failed（トランザクション失敗）**

スパム関連の一般的な拒否です。

原因：スパムフィルターが反応、送信者 IP がブラックリスト登録、コンテンツポリシー違反、認証の欠如

解決策：ブラックリストのステータスを確認、メールコンテンツを確認、認証（SPF、DKIM、DMARC）を検証、送信者の評判を確認

### SMTP 問題の診断

**ステップ 1：エラーメッセージを確認する**

コードだけでなく、完全な SMTP 応答をログに記録してください。コードの後のテキストがコンテキストを提供します。

**ステップ 2：接続をテストする**

SMTP サーバーに接続できることを確認します：

```bash
telnet smtp-relay.brevo.com 587
```

または TLS 用に openssl を使用します：

```bash
openssl s_client -starttls smtp -connect smtp-relay.brevo.com:587
```

**ステップ 3：認証を確認する**

メールクライアントまたはコマンドラインツールを使って、アプリケーションから独立して認証情報をテストします。

**ステップ 4：DNS を確認する**

認証レコードを検証します：

```bash
dig TXT yourdomain.com
dig TXT _dmarc.yourdomain.com
dig TXT selector._domainkey.yourdomain.com
```

**ステップ 5：ブラックリストを確認する**

送信 IP がブラックリストに登録されていないか確認します：

- MXToolbox ブラックリストチェック
- Spamhaus
- Barracuda Reputation

## SMTP のベストプラクティス

到達率を最大化し、良い送信者評判を維持するために、これらのプラクティスに従ってください。

### 認証

- **常に SMTP AUTH を使用**：オープンリレーは絶対に実行しない
- **TLS を有効化**：すべての接続を暗号化（ポート 587 で STARTTLS）
- **API キーを使用**：アカウントパスワードより API キーを優先
- **認証情報をローテーション**：定期的にキーを変更
- **3 つすべて実装**：SPF、DKIM、DMARC を一緒に使用

### 送信プラクティス

- **新しい IP をウォームアップ**：新しい送信 IP で徐々に送信量を増やす
- **一貫した送信**：定期的な送信パターンを維持
- **リストの衛生管理**：バウンスや非アクティブな購読者を削除
- **配信停止を尊重**：オプトアウトを即座に処理
- **評判を監視**：送信者スコアとブラックリストのステータスを追跡

### 技術的な実装

- **バウンスを処理**：バウンス通知を処理して分類
- **再試行ロジックを実装**：一時的な失敗には指数バックオフを使用
- **すべてをログに記録**：トラブルシューティングのための詳細なログを保持
- **配信を監視**：配信率とレイテンシを追跡
- **接続プーリングを使用**：効率のために接続を再利用

### コンテンツガイドライン

- **スパムトリガーを避ける**：一般的なスパムフレーズに注意
- **テキストと画像のバランス**：画像のみのメールは送らない
- **配信停止リンクを含める**：ほとんどの地域で法律で義務付けられている
- **認識できる送信者名を使用**：受信者が誰からか分かるように
- **送信前にテスト**：キャンペーン前にスパムスコアを確認

## まとめ

SMTP は世界中のメール通信を支える基本プロトコルです。トランザクション通知、マーケティングキャンペーン、内部コミュニケーションのいずれを送信する場合も、SMTP を理解することで信頼性の高いメールインフラを構築できます。

このガイドの重要なポイント：

- **SMTP は送信プロトコル**：送信者から受信者のサーバーへメールをプッシュ
- **認証は不可欠**：SMTP AUTH、TLS を使用し、SPF/DKIM/DMARC を実装
- **適切なプロバイダーを選ぶ**：プロバイダーの機能を送信量とニーズに合わせる
- **監視とメンテナンス**：到達率を追跡し、バウンスを処理し、リストの衛生管理を維持
- **SMTP と API**：互換性には SMTP、高度な機能には API を使用

Eコマースビジネスにとって、Brevo のような信頼性の高い SMTP プロバイダーと適切な顧客データ連携を組み合わせることで、トランザクションメールが顧客に確実に届く一方、マーケティングキャンペーンがエンゲージメントを促進します。

メールの到達率を改善する準備はできましたか？まず、このガイドの SPF、DKIM、DMARC ガイドラインを使って現在の認証設定を監査し、次に現在のプロバイダーが送信量、機能、信頼性のニーズを満たしているか検討してください。

## Tajo の役割

Tajoはエージェント型の統合ビルダーです。プロバイダーはそのままに。ほかのすべてはエージェントがつなぎ、各同期はあなたが承認します。Tajo は現在アーリーアクセス中です。 [早期アクセスを申し込む](https://tajo.io/jp/#early-access)

## よくある質問

**SMTP サーバーとは何ですか？**

SMTP（Simple Mail Transfer Protocol）は、インターネット上でメールを送信するための標準通信プロトコルです。SMTP の仕組み、API との比較、認証（SPF、DKIM、DMARC）の設定方法、最適なプロバイダーの選び方をこのガイドで解説します。

**SMTP サーバーの使い始め方は？**

基本から始めましょう。コアコンセプトを理解し、適切なツールを選び、ステップごとに実装します。このガイドは初心者から上級者まで網羅しています。

**SMTP サーバーに最適なツールは何ですか？**

最適なツールは予算とニーズによります。Brevo はメール、SMS、CRM、オートメーションをカバーする充実した無料枠を提供しています。詳細な推奨事項はこのガイドをご覧ください。

**SMTP とメールホスティングの違いは何ですか？**

SMTP はメールの送信のみに特化しています。メールホスティングには、ストレージと管理を含む送信（SMTP）と受信（POP3/IMAP）の両方が含まれます。メールを別の場所でホスティングしながら、サードパーティの SMTP サービスを使用できます。

**ビジネスに Gmail SMTP を使えますか？**

Gmail は SMTP アクセスを提供していますが制限があります。無料枠は 1 日 500 通、Google Workspace では 2,000 通に増加します。より高い送信量や配信率の管理には、Brevo のような専用の SMTP サービスが推奨されます。

**メールが迷惑メールに振り分けられるのはなぜですか？**

一般的な原因には以下があります。SPF/DKIM/DMARC の設定が欠如または誤っている、ウォームアップなしに新しい IP から送信、送信者評判が低い、スパムのようなコンテンツ、無効なアドレスへの送信、高い苦情率。まず認証を確認し、次にコンテンツと送信プラクティスを確認してください。

**使用する最適な SMTP ポートは何ですか？**

クライアントからサーバーへのメール送信にはポート 587 が推奨されます。認証が必要で、STARTTLS 暗号化をサポートします。ポート 25 はサーバー間リレー用で、ISP によってブロックされることが多いです。

**SMTP 経由で何通のメールを送信できますか？**

制限はプロバイダーによります。Gmail は 1 日 500〜2,000 通、Brevo 無料は 1 日 300 通、Amazon SES は 1 日 50,000 通（承認後）、専用サービスは価格帯別で多くの場合無制限です。

**SMTP に専用 IP が必要ですか？**

常に必要というわけではありません。適切なプラクティスを持つ中程度の送信量では共有 IP が良く機能します。専用 IP は、評判を完全にコントロールしたい大量送信者（月 100,000 通以上）に有益です。ほとんどのプロバイダーはアップグレードオプションとして専用 IP を提供しています。

**SMTP リレーとは何ですか？**

SMTP リレーは、メールサーバーが配信のためにメッセージを別のサーバー経由で転送する場合です。ローカルサーバーが直接送信できない（ブロックされたポート、低い評判）場合や、より良い到達率のために Brevo のようなサービスを使用する場合に便利です。

**SMTP 設定をテストするにはどうすればよいですか？**

以下の方法を使用します： 1. アプリケーションを通じてテストメールを送信 2. Mail Tester のようなオンラインツールで認証を確認 3. telnet または openssl で手動接続 4. プロバイダーのダッシュボードで配信ログを確認 5. 認証結果をレポートするテストアドレスに送信

**SPF または DKIM が失敗するとどうなりますか？**

DMARC なしでは、SPF/DKIM の失敗はメールにフラグが立つことはあっても、必ずしも拒否されるわけではありません。quarantine または reject に設定された DMARC では、失敗はスパム配置またはブロッキングにつながります。認証の問題を検出するために DMARC レポートを常に監視してください。

**SMTP は添付ファイルを処理できますか？**

はい。SMTP はメール本文にエンコードされた添付ファイル（バイナリファイルは通常 base64 エンコード）を転送します。ただし、大きな添付ファイルはサーバーのサイズ制限に引っかかる場合があります。数 MB を超えるファイルには、クラウドストレージリンクの使用を検討してください。

## 関連記事

### [無料 SMTP リレー：トランザクションメール送信におすすめのサービス](https://tajo.io/jp/blog/free-smtp-relay-guide/)

2026年3月26日 · 8 分読む

8 セクション

### [WP Mail SMTP：WordPress メール配信のための完全セットアップガイド（2026）](https://tajo.io/jp/blog/wp-mail-smtp-guide/)

2026年3月26日 · 4 分読む

6 セクション

### [メール API：プログラムからメールを送信する完全ガイド（2026 年版）](https://tajo.io/jp/blog/email-api-guide/)

2026年3月25日 · 17 分読む

15 セクション
