メールフォーム

webからメールを送信できるメールフォームを作ってみましょう。

メールを送信するプログラムを作ってみましょう。 商品の注文など、メールと連動するプログラムも多いので、 メール送信の仕組みを知っておくことは、 他のプログラムを学ぶためにも重要です。

メールを送信するプログラム

メールを送信するには、関数 mb_send_mail を使用します。 なお、この関数は PHP4 以降でのみ使用できます (たいていのサーバは PHP4 対応なので、問題ないでしょう)。

プログラムはフォーム部とメール送信部に分けています。 フォーム部は以下のようになります。

	<form action="mail.php" method="post">

	あなたのお名前:	
	<input type="text" size=50 name="Name"><br>

	あなたのメールアドレス:
	<input type="text" size=50 name="FromAddress"><br>

	件名:
	<input type="text" size=50 name="Subject"><br>

	メッセージ本文<br>
	<textarea cols=50 rows=6 name="Text"></textarea><br>

	<input type="submit" value=" 送信 ">
	<input type="reset" value=" 取消 ">	
	</form> 

メール送信部は以下のようになります。

01: <?php
02: // メールの送り先を指定
03: // 自分がメールを受け取りたいアドレスを指定してください。
04: $ToAddress = "あなたのメールアドレス";
05:
06: // ホームページの指定
07: // メール送信後、戻るページを指定してください。
08: $Home = "ホームページの URL";
09:
10: ?>
11: 
12: <html>
13: <head>
14: <title></title>
15: </head>
16: <body>		
17: <?php
18:         // 言語を日本語に設定
19: 	mb_language("ja");
20: 
21:         // メール本文の設定
22: 	$Message = $_POST['Name'] ;
23: 	$Message .= "さんからのメールです。\n";
24: 	$Message .= "------------------------------ \n";
25: 	$Message .= $_POST['Text'] ."\n";
26: 	$Message .= "------------------------------ \n";
27: 
28: 
29:         // メールを送信
30: 	mb_send_mail($ToAddress, $_POST['Subject'], $Message, "From:$_POST['FromAddress']");
31: ?>
32: 	
33: <?php
34:   print $_POST['Name'] ."様メールありがとうございました。<br>";
35:   print "<a href=$Home>戻る</a>";
36: ?>
37: </body>		
38: </html>  

PHP では、受け取った変数をそのまま利用できます。 フォーム部の name="xxx" の xxx の部分が変数名になり、 中身はフォーム入力された内容になります。

1行目から10行目は各自の環境に合わせて設定してください。

17行目から31行目はメール送信部です。 30行目が実際にメールを送信する関数 mb_send_mail です。 関数 mb_send_mail は、 「宛先」「題名」「本文」の3つの引数を必要とします。 さらに、その他のヘッダをその後に書くことができます。 上の例では、「From(送り主)」を設定しています。 (サーバの設定によっては、From のドメインが異なる場合にメール配信を行わないこと があります。 ソの場合は、From 部分も自分のメールアドレスにし、 送信者のメールアドレスはメール本文に入れるようにしてください。)

33行目から38行目はブラウザに表示する内容で、 この例ではメールのお礼と、「戻る」リンクを表示するようにしています。

このサンプルプログラムをダウンロードしたい方は、 こちらからどうぞ。

※PHP4.2.0 以降では、外部からの変数は、 $_POST['Message'] という形式で参照するようになりました。 お使いのサーバでの PHP のバージョンを確認するようにしてください。

Copyright (C) 2003-2013. PHP で WEB 作成 All rights reserved.