カテゴリ: 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. 初心者がつまずきやすいポイント

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

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

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

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

カテゴリの一覧へ
新着記事
New1
PHP
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
New2
PHP
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
New3
PHP
PHPのメール送信でSPF・DKIM認証設定を完全解説!初心者でもわかるメール認証の基本
New4
Python
PythonでAPIのパフォーマンスを向上させる方法!キャッシュ活用を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
PHP
PHPのHTMLメールの作成方法を完全ガイド!初心者でもわかるメール送信の基本
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
Python
Pythonの例外を発生させる方法を完全解説!raise文の使い方を初心者向けにやさしく説明
No.8
Java&Spring記事人気No8
Python
Pythonで2次元リストを作成・操作する方法(リストのリスト)