HTML フォームメール送信:ウェブページから情報を収集し、メールを送信する
このチュートリアルでは、HTML を使用してフォームを作成し、サーバーサイドスクリプト (PHP など) と組み合わせて、フォームデータを送信する方法について詳しく説明します。 フォームの作成、データ処理、メール送信の手順をコード例とセキュリティに関する推奨事項とともに示します。
HTML フォームの基本
HTML フォームは、ユーザーがウェブページから情報を送信するために使用されます。 フォームを作成するには、次の HTML 要素を使用します。
フォームタグ
フォームを作成するには、<form>
タグを使用し、action
属性でフォームデータを処理するサーバーサイドスクリプトのアドレスを指定し、method
属性でデータの送信方法 (GET または POST) を指定します。
<form action="process.php" method="post">
<!-- フォームフィールド -->
</form>
フォームフィールド
フォームフィールドは、ユーザーが情報を入力する場所です。 フォームフィールドを作成するには、<input>
、<textarea>
、<select>
などのタグを使用します。
- <input> タグ: テキストフィールド、パスワードフィールド、ラジオボタン、チェックボックスなどのさまざまなタイプのフォームフィールドを作成するために使用されます。
- <textarea> タグ: 複数行のテキストを入力するために使用されます。
- <select> タグ: ドロップダウンリストを作成するために使用されます。
<label for="name">名前:</label>
<input type="text" id="name" name="name">
<label for="email">メールアドレス:</label>
<input type="email" id="email" name="email">
<label for="message">メッセージ:</label>
<textarea id="message" name="message"></textarea>
フォームボタン
フォームボタンは、フォームを送信するために使用されます。 フォームボタンを作成するには、<button>
または <input type="submit">
タグを使用します。
<button type="submit">送信</button>
PHP を使用したフォームデータの処理
フォームが送信されると、フォームデータはサーバーに送信され、サーバーサイドスクリプトで処理されます。 PHP を使用してフォームデータを処理するには、次の手順に従います。
フォームデータの受信
PHP のスーパーグローバル変数 $_GET
または $_POST
を使用して、送信されたフォームデータを受信できます。 使用する変数は、フォームの method
属性で指定した送信方法によって異なります。
<?php
// POST メソッドの場合
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
// GET メソッドの場合
$name = $_GET['name'];
$email = $_GET['email'];
$message = $_GET['message'];
?>
データの検証
受信したフォームデータは、有効性とセキュリティのために検証する必要があります。
<?php
// 空白チェック
if (empty($name) || empty($email) || empty($message)) {
// エラー処理
}
// メールアドレスの形式チェック
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
// エラー処理
}
?>
データの処理
フォームデータが検証されたら、データベースへの保存、メール送信、その他の処理など、必要な処理を実行できます。
PHP を使用したメール送信
PHP の mail()
関数を使用して、メールを送信できます。 mail()
関数は、次のパラメーターを受け取ります。
- $to: 受信者のメールアドレス。
- $subject: メールの件名。
- $message: メールの本文。
- $headers: オプションのメールヘッダー。
<?php
// メールヘッダー
$headers = 'From: ' . $email . "\r\n" .
'Reply-To: ' . $email . "\r\n" .
'Content-type: text/html; charset=UTF-8' . "\r\n";
// メール送信
mail('[email protected]', 'ウェブサイトからのお問い合わせ', $message, $headers);
?>
セキュリティに関する注意事項
HTML フォームを扱うときは、セキュリティに注意することが重要です。
データの検証
ユーザーが入力したデータは、クロスサイトスクリプティング (XSS) や SQL インジェクションなどの攻撃を防ぐために、常に検証する必要があります。
メールアドレスの検証
ユーザーが送信したメールアドレスが有効かどうかを確認して、スパムメールの送信を防ぎます。
エラー処理
メール送信プロセス中のエラーを適切に処理し、ユーザーにわかりやすいメッセージを表示します。
まとめ
HTML フォームとサーバーサイドスクリプト (PHP など) を組み合わせることで、ウェブページからユーザー情報を簡単に収集し、メールで送信できます。 この機能を実装する際は、セキュリティの問題に注意し、ユーザーデータの安全を確保するために必要な対策を講じることが不可欠です。
関連情報
Q&A
Q1: フォームデータを送信する方法には、GET と POST のどちらを使用すればよいですか?
機密情報 (パスワードなど) を送信する場合は、POST メソッドを使用する必要があります。 GET メソッドは、機密情報を含まないデータを送信する場合に適しています。
Q2: フォームデータの検証には、どのような方法がありますか?
データの検証には、空白チェック、データ型のチェック、正規表現を使用したパターンマッチングなど、さまざまな方法があります。
Q3: メールが送信されない場合は、どうすればよいですか?
メールが送信されない場合は、メールサーバーの設定を確認するか、サーバー管理者に問い合わせてください。