カテゴリ: PHP 更新日: 2026/04/30

PHP(ピーエイチピー)のSMTP(エスエムティーピー)を利用したメール送信を完全ガイド!初心者でもわかるPHPMailer(ピーエイチピーメーラー)とSwiftMailer(スイフトメーラー)

PHP の SMTP を利用したメール送信(PHPMailer, SwiftMailer)
PHP の SMTP を利用したメール送信(PHPMailer, SwiftMailer)

先生と生徒の会話形式で理解しよう

生徒

「PHP(ピーエイチピー)でメールを送れると聞いたのですが、どうやって送るんですか?」

先生

「PHPでは、SMTP(エスエムティーピー)という仕組みを使うと、安定してメールを送れますよ。」

生徒

「SMTPって難しそうです…。パソコンをあまり触ったことがなくても大丈夫ですか?」

先生

「大丈夫です。郵便局に手紙を出す感覚で考えると、とても分かりやすいですよ。」

1. SMTP(エスエムティーピー)とは?

1. SMTP(エスエムティーピー)とは?
1. SMTP(エスエムティーピー)とは?

SMTPとは「メールを送るための決まりごと」です。現実の世界で例えると、郵便局の仕組みのようなものです。自分で相手の家まで手紙を届けるのは大変ですが、郵便局に預ければ正しく届けてくれます。PHPのメール送信も同じで、SMTPサーバーにメールを預けることで、安全で確実に相手へ届けてもらえます。

このSMTPを使うことで、迷惑メール判定をされにくくなり、Gmail(ジーメール)などにも届きやすくなります。

2. PHP(ピーエイチピー)でSMTPを使う理由

2. PHP(ピーエイチピー)でSMTPを使う理由
2. PHP(ピーエイチピー)でSMTPを使う理由

PHPには簡単にメールを送る方法もありますが、設定が難しかったり、送信エラーが起きやすかったりします。SMTPを使うと、送信元がはっきりした安全なメールとして扱われます。

特にお問い合わせフォームや会員登録メールでは、SMTPを使ったメール送信がほぼ必須です。

3. PHPMailer(ピーエイチピーメーラー)とは?

3. PHPMailer(ピーエイチピーメーラー)とは?
3. PHPMailer(ピーエイチピーメーラー)とは?

PHPMailerは、PHPでSMTPメール送信を簡単にしてくれる便利な道具です。難しい設定を自分で書かなくても、決められた書き方に沿って書くだけでメールが送れます。

初心者の方にとっては、自転車の補助輪のような存在で、失敗しにくく安心して使えます。


use PHPMailer\PHPMailer\PHPMailer;

$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'test@example.com';
$mail->Password = 'password';
$mail->setFrom('test@example.com', '送信者名');
$mail->addAddress('user@example.com');
$mail->Subject = 'テストメール';
$mail->Body = 'これはテストメールです。';
$mail->send();

4. PHPMailerの処理の流れを理解しよう

4. PHPMailerの処理の流れを理解しよう
4. PHPMailerの処理の流れを理解しよう

PHPMailerのコードは、順番に読むと理解しやすくなります。まず「SMTPを使います」と宣言し、次に「どの郵便局を使うか(Host)」を決めます。その後、送り主、送り先、件名、本文を書いて、最後に送信します。


メールが送信されました

このように結果が表示されれば、正常にメールが送れています。

5. SwiftMailer(スイフトメーラー)とは?

5. SwiftMailer(スイフトメーラー)とは?
5. SwiftMailer(スイフトメーラー)とは?

SwiftMailerもPHPMailerと同じく、SMTPを使ってメールを送るためのライブラリです。考え方はほぼ同じで、違う道具を使っているだけです。

料理で例えると、フライパンが違うだけで、作る料理は同じ、というイメージです。


$transport = new Swift_SmtpTransport('smtp.example.com', 587);
$transport->setUsername('test@example.com');
$transport->setPassword('password');

$mailer = new Swift_Mailer($transport);
$message = new Swift_Message('テストメール');
$message->setFrom(['test@example.com' => '送信者名']);
$message->setTo(['user@example.com']);
$message->setBody('これはSwiftMailerのテストメールです。');

$mailer->send($message);

6. PHPMailerとSwiftMailerの違い

6. PHPMailerとSwiftMailerの違い
6. PHPMailerとSwiftMailerの違い

どちらもSMTPメール送信ができますが、PHPMailerは情報が多く、日本語の解説記事も豊富です。SwiftMailerは構造がシンプルで、読みやすいのが特徴です。

初心者の方には、まずPHPMailerを選ぶと安心です。

7. SMTP設定でよく使う用語の解説

7. SMTP設定でよく使う用語の解説
7. SMTP設定でよく使う用語の解説

Host(ホスト):メールを送る郵便局の住所です。

Port(ポート):郵便局の窓口番号のようなものです。

Username(ユーザー名):郵便局を使うための名前です。

Password(パスワード):本人確認のための合言葉です。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

メールが届かない場合、多くは設定ミスです。特にユーザー名やパスワードの入力間違いが多くあります。コピーするときは、前後に空白が入らないように注意しましょう。

落ち着いて一つずつ確認すれば、必ず原因は見つかります。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

PHP のメール送信の記事一覧へ
新着記事
New1
PHP
PHPでファイルの存在確認・削除・移動を行う方法!初心者向けにfile_exists・unlink・renameを解説
New2
Python
Pythonでネットワークスキャナーを作る方法!Scapy入門ガイド(初心者向け)
New3
ChatGPT
ChatGPTでPythonのバグを見つける方法!初心者が確認すべきチェックポイント
New4
Python
PythonでICMP(Ping)を送信する方法を徹底解説!subprocessとscapyでネットワーク確認
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.2
Java&Spring記事人気No2
ChatGPT
ChatGPTでPythonコード作成とは?初心者向けに使い方・メリット・注意点を徹底解説
No.3
Java&Spring記事人気No3
Python
PythonでAPIリクエストを送信する方法を完全解説!requestsライブラリで簡単API通信
No.4
Java&Spring記事人気No4
Python
Pythonのrequestsライブラリ完全入門!HTTPリクエストの送り方を初心者向けにやさしく解説
No.5
Java&Spring記事人気No5
Python
Pythonの非同期HTTPリクエスト(asyncio + aiohttp)完全ガイド!初心者でもわかるネットワークプログラミング
No.6
Java&Spring記事人気No6
Python
Pythonのtimedeltaで日付の加算・減算をしよう!初心者でもわかる時間操作の基本
No.7
Java&Spring記事人気No7
Python
Pythonでzip圧縮・解凍する方法を徹底解説!初心者でもわかるzipfileモジュールの使い方
No.8
Java&Spring記事人気No8
PHP
PHPの変数の命名規則とベストプラクティスをやさしく解説!初心者向け完全ガイド