PHPで作るメールフォーム
PHPで作るメールフォームです。
今回はデータベースには値をpostせず、入力されたデータをただメールで送信するだけのシンプルなもの。
自信ないのであんまり使わない方がいいかも。またリベンジしたいです。
※サーバーによっては動かなかったり、文字化けしたりします。
contact.php
<form id="mailform" action="thanks.php" method="POST" name="form1" accept-charset="UTF-8">
<table>
<tr>
<th>お名前<span class="text_red">※</span></th>
<td><input type="text" id="name" name="name" required /></td>
</tr>
<tr>
<th>フリガナ<span class="text_red">※</span></th>
<td> <input type="text" id="kana" name="kana" required/> </td>
</tr> <!-- 中略-->
</table>
</form>
formのaccept-charseを指定することで、入力された値を指定の文字コードでPOSTすることができます。
※サーバーによってはこれが効かないものもあるので注意(デラ○ストとか)
thanks.php(メール自動送信部分)
<?php
// 文字コードを合わせます
header("Content-type: text/html; charset=UTF-8");
mb_language("ja"); mb_internal_encoding("UTF-8");
mb_http_output("UTF-8"); ob_start("mb_output_handler");
// お問合わせフォームで入力した値をPOSTで持ってきます
$name =$_POST['name']; $kana =$_POST['kana']; $zip01 =$_POST['zip01']; $pref01 =$_POST['pref01']; $addr01 =$_POST['addr01']; $addr3 =$_POST['addr3']; $addr4 =$_POST['addr4']; $tel =$_POST['tel']; $email =$_POST['email']; $old =$_POST['old']; $contact =$_POST['contact'];
// メール自動送信テンプレ
$post_deta ="\n\nお名前:" . $_POST["name"]. "\nフリガナ:" . $_POST["kana"]. "\n住所:"."〒". $_POST["zip01"]. "\n". $_POST["pref01"].$_POST["addr01"].$_POST["addr3"].$_POST["addr4"]. "\n電話番号:" . $_POST["tel"]. "\nメールアドレス:" . $_POST["email"]. "\n年齢:" . $_POST["old"]."歳". "\nお問い合せ内容:" . $_POST["contact"]; $message_shomei ="\n\n──────────────". "\nこのメールに心当たりの無い場合は、お手数ですが". "\n下記連絡先までお問い合わせください。". "\nこの度はお問い合わせ重ねてお礼申し上げます。". "\n\n━━━━━━━━━━━━━━". "\n 株式会社○○". "\n URL:○○". "\n TEL:000-0000-0000". "\n━━━━━━━━━━━━━━";
// 入力者に確認メール
$message_1 = $_POST["name"]."様"."\nこの度はお問合せ頂き誠にありがとうございました。"; $send1 = "From:" .mb_encode_mimeheader("株式会社○○") ."<dummy1@test.jp>"; if (!mb_send_mail($_POST["email"], "お問い合せありがとうございました", $message_1.$post_deta.$message_shomei, $send1)) { exit('エラーが発生しました。'."<br>".'ブラウザバックでお戻りになり、もう一度送信ボタンを押してください。'); }
// 管理者に確認メール
$message_2 = "お問い合せフォームより以下のメールを受付ました。"; $send2 = "From:" .mb_encode_mimeheader("株式会社○○") ."<dummy2@test.jp>";
if (!mb_send_mail("dummy@test.jp", "株式会社○○お問合せフォームより", $message_2.$post_deta.$message_shomei,$send2)) {
exit('エラーが発生しました。'."<br>".'ブラウザバックでお戻りになり、もう一度送信ボタンを押してください。');
}
?>
サーバーによっては文字コードの指定が出来ない場合があります。(某サーバーではサーバー内の言語がEUC-JPで、しかもPOSTしたデータを強制的にEUC-JPに変換されたので文字化けしました)