シンプルなメールフォームをPHPで作成します。
コード
メールフォーム画面のコードです。メールの本文、Subject、送信者のメールアドレスを入力します。
<html>
<head>
</head>
<body>
<form method="post" action="mailconfirm.php">
お名前: <input type="text" name="textBox_Name" size=40 /><br/>
メールアドレス: <input type="text" name="textBox_Address" size=40 /><br/>
件名: <input type="text" name="textBox_Subject" size=60 /><br/>
本文: <textarea cols=50 rows=10 name="textBox_MailBody"></textarea><br/>
<input type="submit" name="button_Send" value="確認"/>
<input type="reset" name="button_Send" value="クリア"/>
</form>
</body>
</html>
送信メールの内容確認画面です。フォーム入力後[確認]ボタンをクリックするとこの画面が表示され、メールの送信内容を確認できます。[送信]ボタンをクリックするとメールを送信します。
<html>
<head>
</head>
<body>
<?php
$button = $_POST['button_Send'];
if ($button != ""){
$sender_name = $_POST['textBox_Name'];
$mail_address = $_POST['textBox_Address'];
$mail_subject = $_POST['textBox_Subject'];
$mail_body = $_POST['textBox_MailBody'];
}
?>
<form method="post" action="mailsend.php">
<div>この内容でよろしいですか?</div>
お名前: <?php echo $sender_name; ?><br/>
メールアドレス: <?php echo $mail_address; ?><br/>
件名: <?php echo $mail_subject; ?><br/>
本文: <?php echo $mail_body; ?><br/>
<?php
echo "<input type=\"hidden\" name=\"H_Name\" value=\"$sender_name\">";
echo "<input type=\"hidden\" name=\"H_Address\" value=\"$mail_address\">";
echo "<input type=\"hidden\" name=\"H_Subject\" value=\"$mail_subject\">";
echo "<input type=\"hidden\" name=\"H_Body\" value=\"$mail_body\">";
?>
<input type="submit" name="button_SendMail" value="送信"/>
</form>
</body>
</html>
メールを送信します。
<html>
<head>
</head>
<body>
<?php
require_once("C:/php/PEAR/Mail.php");
require_once("C:/php/PEAR/Mail/mime.php");
$button = $_POST['button_SendMail'];
if ($button != ""){
$sender_name = $_POST['H_Name'];
$mail_address = $_POST['H_Address'];
$mail_subject = $_POST['H_Subject'];
$mail_body = $_POST['H_Body'];
$params = array(
"host" => "post-central.ipentec.com",
"port" => 25,
"auth" => false
);
$mailObject = Mail::factory("smtp", $params);
$recipients = "postman@ipentec.com";
$fromstr = sprintf("%s <%s>", $sender_name, $mail_address);
$header = array(
"To" => "postman@ipentec.com",
"From" => $fromstr,
"Subject" => $mail_subject
);
$mailObject -> send($recipients, $header, $mail_body);
echo '<div>メールを送信しました</div>';
}
?>
<a href="mailform.php">Back</a>
</body>
</html>
解説
mailform.php
mailform.phpは一般的なPOST型のWebフォームです。フォームのaction先を mailconfirm.phpにします。
mailconfirm.php
Submitボタンの取得をしフォームデータがPOSTされたかを判定します。フォームデータがPOSTされた場合はif文の内部を実行します。
$button = $_POST['button_Send'];
if ($button != ""){
POSTで送信されたテキストボックスの内容を変数に格納します。
$sender_name = $_POST['textBox_Name'];
$mail_address = $_POST['textBox_Address'];
$mail_subject = $_POST['textBox_Subject'];
$mail_body = $_POST['textBox_MailBody'];
変数に格納したメールの本文や件名を画面に表示します。メールの内容の確認部分になります。
お名前: <?php echo $sender_name; ?><br/>
メールアドレス: <?php echo $mail_address; ?><br/>
件名: <?php echo $mail_subject; ?><br/>
本文: <?php echo $mail_body; ?><br/>
hiddenフィールドに変数の内容を格納します。変数の保持方法にはCookieを用いる方法や、セッション変数を用いる方法などがありますが今回はhiddenフィールドを用います。
<?php
echo "<input type=\"hidden\" name=\"H_Name\" value=\"$sender_name\">";
echo "<input type=\"hidden\" name=\"H_Address\" value=\"$mail_address\">";
echo "<input type=\"hidden\" name=\"H_Subject\" value=\"$mail_subject\">";
echo "<input type=\"hidden\" name=\"H_Body\" value=\"$mail_body\">";
?>
mailsend.php
hiddenフィールドからPOSTされた値を読み取り変数に格納します。
以下、格納した変数を使いメールを送信します。メールの送信方法とコードの説明については
こちらの記事を参照してください。
$sender_name = $_POST['H_Name'];
$mail_address = $_POST['H_Address'];
$mail_subject = $_POST['H_Subject'];
$mail_body = $_POST['H_Body'];
実行結果
mailform.php - メールフォーム画面
![](https://resources.ipentec.com/document/image/php-create-mailform-application-use-pear-mail-01)
フォームに件名、メールアドレス、本文など入力します。入力後[確認]ボタンをクリックします。
confirm.php - メール確認画面
メールフォーム画面で確認ボタンを押すとメール確認画面に遷移します。フォーム画面で入力した内容が表示されますので内容を確認して[送信]ボタンをクリックします。
mailsend.php - メール送信画面
メール確認画面で送信ボタンを押すと、メールを送信し、メール送信画面を表示します。
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-05-31