PHP(ピーエイチピー)のSMTP(エスエムティーピー)を利用したメール送信を完全ガイド!初心者でもわかるPHPMailer(ピーエイチピーメーラー)とSwiftMailer(スイフトメーラー)
生徒
「PHP(ピーエイチピー)でメールを送れると聞いたのですが、どうやって送るんですか?」
先生
「PHPでは、SMTP(エスエムティーピー)という仕組みを使うと、安定してメールを送れますよ。」
生徒
「SMTPって難しそうです…。パソコンをあまり触ったことがなくても大丈夫ですか?」
先生
「大丈夫です。郵便局に手紙を出す感覚で考えると、とても分かりやすいですよ。」
1. SMTP(エスエムティーピー)とは?
SMTPとは「メールを送るための決まりごと」です。現実の世界で例えると、郵便局の仕組みのようなものです。自分で相手の家まで手紙を届けるのは大変ですが、郵便局に預ければ正しく届けてくれます。PHPのメール送信も同じで、SMTPサーバーにメールを預けることで、安全で確実に相手へ届けてもらえます。
このSMTPを使うことで、迷惑メール判定をされにくくなり、Gmail(ジーメール)などにも届きやすくなります。
2. PHP(ピーエイチピー)でSMTPを使う理由
PHPには簡単にメールを送る方法もありますが、設定が難しかったり、送信エラーが起きやすかったりします。SMTPを使うと、送信元がはっきりした安全なメールとして扱われます。
特にお問い合わせフォームや会員登録メールでは、SMTPを使ったメール送信がほぼ必須です。
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の処理の流れを理解しよう
PHPMailerのコードは、順番に読むと理解しやすくなります。まず「SMTPを使います」と宣言し、次に「どの郵便局を使うか(Host)」を決めます。その後、送り主、送り先、件名、本文を書いて、最後に送信します。
メールが送信されました
このように結果が表示されれば、正常にメールが送れています。
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の違い
どちらもSMTPメール送信ができますが、PHPMailerは情報が多く、日本語の解説記事も豊富です。SwiftMailerは構造がシンプルで、読みやすいのが特徴です。
初心者の方には、まずPHPMailerを選ぶと安心です。
7. SMTP設定でよく使う用語の解説
Host(ホスト):メールを送る郵便局の住所です。
Port(ポート):郵便局の窓口番号のようなものです。
Username(ユーザー名):郵便局を使うための名前です。
Password(パスワード):本人確認のための合言葉です。
8. 初心者がつまずきやすいポイント
メールが届かない場合、多くは設定ミスです。特にユーザー名やパスワードの入力間違いが多くあります。コピーするときは、前後に空白が入らないように注意しましょう。
落ち着いて一つずつ確認すれば、必ず原因は見つかります。