ホームページに簡単メールフォームを自作する(HTML+PHP)

ワードプレスならばプラグインを使えば簡単に設置できるメールフォームですが、ホームページに設置するとなるとレンタルか、Googleなどのツールか自作ですね。

ということで覚書きの自作サンプル。コピペOKですが動作の責任は取れません。あしからず。

ホームページに設置する自作メールフォーム・サンプル

本当にただの覚え書きなので。デザインなどはCSSで調整を。

HTMLコード

「contact」フォルダを作成。

以下のコードをindex.htmlとしてフォルダ内にUPします。

 

       
<form action="confirm.php" method="post">
<form class="form1 mt-5">
<div class="form-group">
<label for="formName">お名前</label><span class="require">(必須)</span>
<p><input name="name" type="text"></p>
</div>
<div class="form-group">
<label for="formEmail1">メールアドレス</label>
<p><input type="email" name="mail" autocomplete="email"></p>
</div>
<div class="form-group">
<label for="formContent">お問い合わせ内容</label>
<p><textarea name="detail" textarea class="form-control" id="formContent" rows="5"></textarea></p>
</div>
<p class="align-center"><button type="submit" class="btn btn-warning">送信</button></p>
</form>

PHPコード

以下のコードをconfirm.phpとして「contact」フォルダ内にUP。入力画面を作ります。

<?php
/*----- 入力フォーム -----*/

  session_start();
 
  $key = md5(time()."任意の文字");
 
  $_SESSION['key'] = $key;
?>

<?php
mb_language("japanese");
mb_internal_encoding("utf-8");
//入力漏れがないか確認する  
if(!empty($_POST['mail']) && !empty($_POST['name']) && !empty($_POST['detail'])){
    $name=$_POST['name'];
    $mail=$_POST['mail'];
    $detail = $_POST['detail'];
    $detailDisp=nl2br($_POST['detail']);  
    $success = true;
}
?>
  
<?php if($success){//確認画面 ?>
<form action="submit.php" method="post">
<input name="company_name" type="hidden" value="<?php echo $company_name; ?>"></p>
    <p class="form_tit">お名前</p>
    <p><?php echo $name; ?><input name="name" type="hidden" value="<?php echo $name; ?>"></p>
    <p class="form_tit">メールアドレス</p>
    <p><?php echo $mail; ?><input type="hidden" name="mail" value="<?php echo $mail; ?>"></p>
    <p class="form_tit">お問い合わせ内容</p>
    <p><?php echo $detailDisp; ?><input type="hidden" name="detail" value="<?php echo $detail; ?>"></p>
    <p class="align-center"><input name="submit" type="submit" value="送信"></p>
  <p class="align-center"><a href="index.html">戻る</a></p>
</form>
<?php }else{//不備 ?>
             <p>申し訳ございません、入力内容に不備があります。<br>
                    前ページに戻って入力してください。</p>
                    <p class="align-center"><a href="index.html">戻る</a></p>
<?php } ?>

以下のコードをsubmit.phpとしてフォルダ内にUP。送信完了画面を作ります。

 

<?php
/*----- 完了画面 -----*/

  session_start();
  
  $msg = "";
 
      if (  isset($_SESSION['key']) &&
      isset($_POST['key']) &&
      $_SESSION['key'] == $_POST['key']) {

      }
unset($_SESSION['key']);
?>

<?php
mb_language("japanese");
mb_internal_encoding("utf-8");
 
if(!empty($_POST['mail']) && !empty($_POST['name']) && !empty($_POST['detail'])){
$name=$_POST['name'];
$mail=$_POST['mail'];
$detail=htmlspecialchars($_POST['detail']);

$success=mb_send_mail("あなたの@アドレス","「あなたのホームページ名」からのお問い合わせ","\n名前:".$name."\nメールアドレス:".$mail."\nお問い合わせ内容\n".$detail,"from:".$mail);
}
?>
<?php
if($success){//送信完了 ?>
<p>お問い合わせありがとうございます。</p>
 <p class="align-center"><a href="トップページURL">TOPに戻る</a></p>
<?php }else{//送信失敗 ?>
<p>大変申し訳ございません。お問い合わせの送信に失敗しました。</p>
<? } ?>
文字コードは必ずUTF-8で保存。

お名前とアドレスと用件だけのシンプルなフォームです。

自作メールフォーム

エックスサーバーの提供CGI

この記事を書いている最中に気づいたのですが、エックスサーバーさんでメールフォームを提供してくださっているのですね。

自作が面倒だったら、こういうものを使ってみるのもいいかも。

レンタルサーバー「エックスサーバー」のご利用マニュアル|お問い合わせフォームなどに利用可能な「メールフォーム」を設置する…

サポートよろしくお願いします

 

いつもありがとうございます。この記事を気に入って下さった方、「寄付してあげてもいいよ」という方がいらっしゃったらサポートしていただけると嬉しいです。


Amazonギフト券- Eメールタイプ – Amazonベーシック


金額は空白欄に適当に(15円から)書きこんで下さい。(あらかじめ入っている金額はAmazonの設定なので気になさらないでください)。

メールのあて先は 「ageru15@gmail.com」です。

※上記のアドレスは投げ銭受け取り専用です。他のメールは受け取れない設定にしてあるのでご注意ください。

 

 

 

よろしくお願いいたします。

なお、この投げ銭システムに関する記事はこちら→『ブログに「投げ銭」システムをつける方法を考えてみたまとめ』