0%

Programmingプログラミングナレッジ

Posted:2016.06.20

PHPで自動返信メール機能付きのコンタクトフォームを作成する(送信画面)

前回、前々回と3回にわたり紹介してきましたPHPでのコンタクトフォーム作成ですが、今回は最後となる送信画面を作成していきます。確認画面から引き継いだSESSION変数をメールで送信し、送信完了のメッセージを表示させます。

 

(過去の記事はこちら)

・PHPで自動返信メール機能付きのコンタクトフォームを作成する(入力画面)

・PHPで自動返信メール機能付きのコンタクトフォームを作成する(確認画面)

 

コンタクトフォームの送信画面

画面自体は入力画面や確認画面と同じようにHTMLで作成し、メール送信部分はPHPで作成していきます。また自動返信メールの本文もこちらで設定します。

 

【send.php】※一部抜粋

<?php  
session_start();
if(!$_SESSION){
  header('Location: ./form.php');
}
$add_header ="From:info@example.com\n";
$add_header .= "Reply-to: info@example.com\n";
$add_header .= "X-Mailer: PHP/". phpversion();
//自動返信メール本文
$messageuser = sprintf("%s",$_SESSION['name']);
$messageuser .= " 様\n\n";
$messageuser .= "この度はお問い合わせいただき誠にありがとうございます。\n\n";
$messageuser .= "下記の内容でお問い合わせを承りました。\n\n\n";
$messageuser .= "================================\n\n";
$messageuser .= sprintf("お名前:%s\n",$_SESSION['name']);
$messageuser .= sprintf("メールアドレス:%s\n",$_SESSION['email']);
$messageuser .= sprintf("電話番号:%s\n",$_SESSION['tel']);
$messageuser .= sprintf("URL:%s\n",$_SESSION['url']);
$messageuser .= sprintf("性別:%s\n",$_SESSION['sex']);
$messageuser .= sprintf("お住まいのエリア:%s\n",$_SESSION['location']);
$messageuser .= sprintf("お問い合わせ項目:\n");
$messageuser .= implode(",",$_SESSION['check']);
$messageuser .= "\n\n";
$messageuser .= sprintf("件名:%s\n",$_SESSION['subject']);
$messageuser .= sprintf("お問い合わせ内容:%s\n",$_SESSION['message']);
$messageuser .= "================================\n\n";
//管理者確認用メール本文
$messageadmin = "コンタクトフォームより下記の内容でお問い合わせがありました。\n\n\n";
$messageadmin .= "================================\n\n";
$messageadmin .= sprintf("お名前:%s\n",$_SESSION['name']);
$messageadmin .= sprintf("メールアドレス:%s\n",$_SESSION['email']);
$messageadmin .= sprintf("電話番号:%s\n",$_SESSION['tel']);
$messageadmin .= sprintf("URL:%s\n",$_SESSION['url']);
$messageadmin .= sprintf("性別:%s\n",$_SESSION['sex']);
$messageadmin .= sprintf("お住まいのエリア:%s\n",$_SESSION['location']);
$messageadmin .= sprintf("お問い合わせ項目:\n");
$messageadmin .= implode(",",$_SESSION['check']);
$messageadmin .= "\n\n";
$messageadmin .= sprintf("件名:%s\n",$_SESSION['subject']);
$messageadmin .= sprintf("お問い合わせ内容:%s\n",$_SESSION['message']);
$messageadmin .= "================================\n\n";
//メール設定
mb_language("ja");
mb_internal_encoding("UTF-8");
//自動返信メール送信設定
mb_send_mail($_SESSION['email'],"【コンタクトフォーム】お問い合わせありがとうございます",$messageuser,$add_header);
//管理者確認用メール送信設定
mb_send_mail("info@example.com","コンタクトフォームよりお問い合わせがありました",$messageadmin,$add_header);
session_destroy();
?>

〜 一部省略 〜

<div>
  <p>お問い合わせありがとうございます。メッセージの送信が完了しました。
  </p>
  <p>担当者から返信させていただきますので、今しばらくお待ちくださいませ。
  </p>
</div>

 

PHP部分にはメール送信に関する処理を行います。まずはsession_start()でセッションを開始します。次に確認画面以外からのアクセスした場合に入力画面へ遷移させるリダイレクトを設定します。そして$add_header変数にはメールヘッダ情報が入ります。

 

次に自動返信メールの本文を作成します。メール本文は$messageuser変数に入れていきます。複数行にまたぐ場合は、連結演算子(.=)で行を繋いでいきます。文字列はそのまま変数に代入しますが、SESSION変数の値を表示させる部分にはsprintf()を使い、文字列の中にSESSION変数を「%s」として扱います。

 

ただし、複数選択については情報を配列で扱っているので、implode()で配列を連結させた文字列として取り出します。第一引数にコンマを指定することで項目をコンマ区切りで表示できます。

 

そして同じように管理者確認用のメール本文も作成します。こちらは$messageadminの変数に入ります。

 

最後にメール設定で文字コードの指定と、自動返信メールと管理者確認用メールの送信設定を行います。送信設定にはmb_send_mail()を使います。この第一引数には「送信先メールアドレス」、第二引数には「メール本文」、第三引数には「メールヘッダ情報」を指定します。

 

最後にsession_destroy()でセッションを終了します。

 

 

以上でコンタクトフォームの送信画面は完成です。
入力画面、確認画面と合わせてPHPのコンタクトフォームについてまとめてきました。一見すると複雑ですが、一つひとつの画面の役割と流れ、そして処理を理解すればイメージしやすいと思います。

 

author
この記事を書いた人オガワ シンヤ
FacebookTwitter

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

制作のご依頼やお問い合わせ・パートナー業務提携のご相談はこちら

デザインやウェブ制作についてのご依頼やご相談、その他お問い合わせなどもお気軽にご連絡ください。フットワークの軽さやレスポンスの早さ、また豊富な経験や知識、技術を活かした対応力といったフリーランスクリエイターの強みでクライアント様、パートナー企業様のお力になります。デザインからコーディングやWordPress実装といったウェブサイト構築はもちろん、写真撮影や動画編集、コンテンツ制作からサイト運用サポートまで一括してお任せください。

ホームページ制作のご検討やウェブ運用でお悩みの経営者様や企業のウェブ担当者様をはじめ、個人で店舗を営んでいらっしゃるオーナー様、フリーで活動されているビジネスオーナー様はもちろんのこと、リソース不足でお困りの制作会社様、またクリエイターをお探しの代理店様も大歓迎です。

コンタクトをご希望の方はお手数ですが、下記よりお問い合わせフォームのページへアクセスしていただき、必要事項を入力の上メッセージを送信してください。確認でき次第すぐに折り返しご連絡致します。

こんな記事も読まれています

コメントもお気軽にどうぞ

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

CAPTCHA


ページトップへ
大阪市天王寺区のホームページ制作デザイン事務所(SOHO)DesignSupply.【デザインサプライ】