カテゴリ: PHP 更新日: 2025/12/03

PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介

PHP のメールフォームの作成(mail関数, PHPMailer)
PHP のメールフォームの作成(mail関数, PHPMailer)

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

生徒

「PHPでお問い合わせフォームを作って、入力された内容をメールで受け取りたいんですけど、どうすればいいですか?」

先生

「PHPにはメールを送るmail関数という機能が用意されていて、メールフォームを簡単に作ることができますよ。さらに、より高機能なPHPMailerというライブラリもあります。」

生徒

「難しそうだけど、初心者でも使えるんですか?」

先生

「もちろんです!今日は、mail関数を使った基本的なメールフォームの作り方と、PHPMailerを使ったより安全で確実な方法の両方を、丁寧に解説していきます。」

-

1. PHPでメールフォームを作る流れ

1. PHPでメールフォームを作る流れ
1. PHPでメールフォームを作る流れ

メールフォームとは、ユーザーがWebサイト上で名前やメールアドレス、お問い合わせ内容などを入力し、その情報をサーバーが受け取って指定のメールアドレスに送信する仕組みです。

PHPでは、以下のような流れでメールフォームを作ります:

  • HTMLで入力フォームを作る
  • PHPで送信処理をする
  • サーバーからメールを送信する

2. HTMLでメールフォームを作成する

2. HTMLでメールフォームを作成する
2. HTMLでメールフォームを作成する

まずは、ユーザーが入力するための画面(フォーム)をHTMLで作ります。


<form action="send.php" method="POST">
    <label>名前:</label>
    <input type="text" name="name" required><br>
    <label>メールアドレス:</label>
    <input type="email" name="email" required><br>
    <label>メッセージ:</label><br>
    <textarea name="message" rows="5" required></textarea><br>
    <button type="submit">送信する</button>
</form>

このフォームは、send.phpというPHPファイルにデータを送信します。

3. mail関数でメールを送信する

3. mail関数でメールを送信する
3. mail関数でメールを送信する

PHPのmail関数を使えば、簡単にメールを送ることができます。ただし、サーバーの設定によっては動かないこともあるので注意が必要です。


if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $to = "your@email.com";
    $subject = "お問い合わせがありました";
    $message = "名前: " . $_POST["name"] . "\n"
             . "メール: " . $_POST["email"] . "\n"
             . "メッセージ:\n" . $_POST["message"];
    $headers = "From: " . $_POST["email"];

    if (mail($to, $subject, $message, $headers)) {
        echo "メールを送信しました。";
    } else {
        echo "送信に失敗しました。";
    }
}

mail関数はシンプルですが、スパム対策や文字化けの問題が起きることもあるため、メール送信がうまくいかない場合は次のPHPMailerがおすすめです。

4. PHPMailerとは?

4. PHPMailerとは?
4. PHPMailerとは?

PHPMailerは、メール送信の機能を強化したPHPのライブラリです。GmailなどのSMTPサーバーを使って、安全にメールを送ることができます。

以下のような特徴があります:

  • Gmailと連携できる
  • HTML形式のメールが送れる
  • 添付ファイルも送信できる
  • 文字化けやエラーに強い
-

5. PHPMailerの導入と使い方

5. PHPMailerの導入と使い方
5. PHPMailerの導入と使い方

PHPMailerはComposerというツールで簡単にインストールできます。Composerが使えない場合は、ZIPファイルをダウンロードして使う方法もあります。

以下はGmailを使ったメール送信の例です。


use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);
try {
    $mail->isSMTP();
    $mail->Host = 'smtp.gmail.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'あなたのGmailアドレス';
    $mail->Password = 'アプリパスワード';
    $mail->SMTPSecure = 'tls';
    $mail->Port = 587;

    $mail->setFrom($_POST["email"]);
    $mail->addAddress('送信先メールアドレス');
    $mail->Subject = 'お問い合わせ';
    $mail->Body = $_POST["message"];

    $mail->send();
    echo 'メールが送信されました';
} catch (Exception $e) {
    echo '送信に失敗しました: ', $mail->ErrorInfo;
}

Gmailを使うには、セキュリティの都合で「アプリパスワード」を発行する必要があります。これは通常のパスワードとは異なり、外部アプリからのログイン専用のコードです。

6. お問い合わせフォームの活用例

6. お問い合わせフォームの活用例
6. お問い合わせフォームの活用例
  • お問い合わせや相談を受け付ける窓口
  • 資料請求やセミナー申込フォーム
  • キャンペーン応募用フォーム

PHPで作るメールフォームは、個人ブログや企業サイトなど、さまざまな場面で使われています。最初は難しそうに感じるかもしれませんが、HTMLとPHPの基本を押さえれば、初心者でも作れるようになります。

まとめ

まとめ
まとめ

PHPでメールフォームを作成する方法は、一見すると難しそうに感じるかもしれませんが、基本的な流れを理解すれば、初心者でも十分に実装可能です。この記事では、まずmail関数を使った簡単なメール送信の仕組みから始め、次により高機能で信頼性のあるPHPMailerを使った方法までを紹介しました。 メールフォームは、Webサイトにとって非常に重要な役割を果たします。たとえば、ユーザーからのお問い合わせを受け付けたり、イベントへの申込みを管理したり、企業と顧客をつなぐ窓口として利用されることが多くあります。PHPのmail関数はサーバーが対応していればすぐに使える利点がありますが、環境によっては文字化けや迷惑メール扱いされることもあります。そのため、安定してメールを送信したい場合はPHPMailerを使うのが一般的です。 PHPMailerでは、Gmailや他のSMTPサーバーと連携でき、HTMLメールや添付ファイルにも対応しているため、ビジネス用途にも適しています。とくにGmailと連携する際には「アプリパスワード」の取得やSMTP設定の正確な記述が重要になるため、設定内容をしっかり確認しながら実装しましょう。

PHPのメールフォームを安全に構築するポイント

フォームを安全に運用するためには、以下のような対策もあわせて行うことをおすすめします:

  • 送信データのバリデーション(空欄チェック・メール形式チェック)
  • XSSやスパム送信を防ぐためのサニタイズ処理
  • reCAPTCHAやワンタイムトークンの導入で自動送信をブロック
  • フォームページと送信処理を分離し、セキュリティを向上

以下は、メールフォーム送信前にデータのバリデーションを行う基本例です。

    
if ($_SERVER["REQUEST_METHOD"] === "POST") {
    $name = trim($_POST["name"]);
    $email = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL);
    $message = trim($_POST["message"]);

    if ($name && $email && $message) {
        // PHPMailerやmail関数で送信処理を行う
    } else {
        echo "入力内容に不備があります。すべての項目を正しく入力してください。";
    }
}
    
    

このような事前チェックを行うことで、無効なデータの送信を防ぐことができ、ユーザーにも安心感を与えることができます。特にお問い合わせフォームはサイトの信頼性にも関わる要素なので、安易に動作するだけではなく、ユーザー体験や安全性を意識した設計が求められます。 PHPの学習初期にメール送信の仕組みを理解しておくことは、今後の開発でも非常に役立ちます。小さなフォームでも「メールを確実に相手に届ける」仕組みを構築することが、Web制作の大切な第一歩です。

先生と生徒の振り返り会話

生徒

「PHPでメールフォームを作るのって、正直もっと難しいものだと思ってました。でも流れが分かると意外とシンプルですね。」

先生

「そうだね。フォームの作り方と、mail関数PHPMailerを選ぶところが分かれば、あとは組み立てるだけなんだ。」

生徒

「PHPMailerって最初は名前だけで難しそうって思ってたけど、Gmailで送信できるのはかなり便利ですね。HTMLメールにも対応してるし。」

先生

「うん、実務ではPHPMailerのようなライブラリを使う方が主流だよ。安定してるし、トラブルにも対応しやすい。フォームのバリデーションやセキュリティ対策も意識していこうね。」

生徒

「はい、次はreCAPTCHAの実装にも挑戦してみたいです。フォームってただ送るだけじゃなくて、ちゃんと守ることも大事なんですね。」

先生

「まさにその通り。Webの仕組みは便利な分、守りも重要になるんだ。今日の学びを活かして、どんどん実践していこう!」

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

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

カテゴリの一覧へ
新着記事
Pythonの例外発生の基本をマスター!初心者でもわかるraise文の使い方ガイド
Pythonでタプルの要素数を取得する方法(len()の使い方)初心者でもわかる数え方の基本
Pythonの辞書をデータフレーム(Pandas)に変換する方法 初心者向け完全ガイド
PHPでスパム対策!CAPTCHAの使い方を初心者向けにやさしく解説
人気記事
No.1
PHP&Python記事人気No1
Pythonの例外処理をやさしく解説!初心者でもわかるtry-exceptの基本と使い方
No.2
PHP&Python記事人気No2
PHPでJSONデータを扱う方法をやさしく解説!初心者でもわかるjson_encodeとjson_decode
No.3
PHP&Python記事人気No3
Pythonのデータ型変換まとめ!int, float, str, list などの変換方法
No.4
PHP&Python記事人気No4
PHPのデフォルト引数の設定方法をやさしく解説!初心者でも安心の入門ガイド
-