プロ・クリエータの実践ウェブテクニック集



フォームからメール送信

 ウェブ上のフォームからメールを送信する、基本的なスクリプトのサンプルです。

<?php ### Literals ########################### $title = 'お問い合わせ'; $mailto = 'contact@example.com'; $names = array('name', 'address', 'tel', 'email', 'message'); ### Main Routine ####################### if(isset($_POST['submit'])) { send_mail(); completed(); } else { form(); } ### Sub Routine ######################## function send_mail() { global $title, $mailto, $names; mb_language('ja'); $subject = $title; $from = $_POST['email']; $message; foreach($names as $name) { $message .= "$name : $_POST[$name]\n"; } $header = "From: $from\n"; $header .= 'X-Mailer: myphpMail '. phpversion(). '\n'; mb_send_mail($mailto, $subject, $message, $header); } function completed() { global $title; print <<<_HTML_ <html lang="ja"> <head> <title>$title - Completed</title> </head> <body> <h1>送信を完了しました。</h1> </body> </html>\n _HTML_; } function form() { global $title; print <<<_HTML_ <html lang="ja"> <head> <title>$title</title> </head> <body> <h4>$title</h4> <form action="{$_SERVER['PHP_SELF']}" method="post"> <table> <tr> <td>名前</td> <td><input type="text" name="name" size="20"></td> </tr> <tr> <td>住所</td> <td><input type="text" name="address" size="20"></td> </tr> <tr> <td>電話</td> <td><input type="text" name="tel" size="20"></td> </tr> <tr> <td>Email</td> <td><input type="text" name="email" size="20"></td> </tr> <tr> <td>内容</td> <td><textarea name="message" cols="80" rows="5"></textarea></td> </tr> <tr> <td>&nbsp;</td> <td align="right"> <input type="submit" name="submit" value="送信"> </td> </tr> </table> </form> </body> </html>\n _HTML_; } ### END ############################### ?>