メールフォームの作り方について、PHPを使って解説
はじめに
この記事では、PHPを使ったメールフォームの作り方について、解説していきます。 初心者にもわかりやすいようにHTMLやPHPの実際のコードを記述し、メールフォームの作り方を説明していきます。
sendmailとは
sendmailとは、メール転送エージェント(MTA)と呼ばれる種類のプログラムの一つです。世界中で広く使われており、有名なメール配信用のプログラムです。メール転送エージェントとは、メールを仕分けするプログラムで、メールサーバー(SMTPサーバー)というメールを送信相手に届けるコンピューターの中で動きます。メール配信の一連のながれをザックリ説明すると、メールは送信するとメールサーバーへと送られます。メールサーバーへと送られてきたメールはメール転送エージェントが仕分けをし、メール配信エージェントによって、宛先のメールアドレスへ届けられます。メール転送エージェントには、いろいろな種類があり、sendmailはその一つです。他にも、qmailやPostfixというメール転送エージェントがあります。いわゆるsendmailとはプログラムの名前なのです。
PHPでのメールフォームの作り方
sendmailのことをなんとなくでも、おわかりいただけたでしょうか。ここからはPHPでsendmailを使ったメールの送信方法を解説していきます。
HTMLのメールフォームの作り方
まず必要となるのが、名前やメッセージなどを入力するメールフォームです。HTMLでメールフォームを作りましょう。作り方は簡単です。以下にコードを記述します。
<!DOCTYPE html>
<head></head>
<body>
<form>
お名前<input type="text" name="name" ><br />
メールアドレス<input type="text" name="mail"><br />
メッセージ<textarea> name="message";</textareagt>
</form>
</body>
</html>
お名前、メールアドレス、メッセージを受け取るフォームを作りました。PHPでメールフォームを実装するにあたってname属性は必ず必要なので忘れずに記述してください。ここでは、お名前に「name」、メールアドレスに「mail」、メッセージに「message」というname属性を付けました。
PHPメール送信機能の作り方
HTMLでメールフォームを作ったら、次は、メール送信のためのプログラムをPHPで記述していきましょう。 まずは、メール送信に使う関数を以下にまとめました。
- html_entity_decode()関数
- mb_language()関数
- mb_internal_encoding()関数
- mb_send_mail()関数
では、作り方を記述していきます。
<?php
$name = $_POST['name'];
$mail = $_POST['mail'];
$message = $_POST['message'];
$honbun = '';
$honbun .= "お問い合わせありがとうございます ¥n"
$honbun .= "このメール自動で配信しております ¥n";
$title = 'お問い合わせ';
$header = 'From:info@acrovison.jp';
$honbun = html_entity_decode($honbun, ENT_QUOTES, 'UTF-8');
mb_language('Japanese');
mb_internal_encoding('UTF-8');
mb_send_mail($mail, $title, $header);
?>
メールフォームの作り方をわかりやすく説明すると、はじめにHTMLコードで作成したname属性は、$_POST['']で受け取る事ができ、「name」、「mail」、「message」をそれぞれ「$name」、「$mail」、「$message」変数に代入しています。$honbun変数にはメールの本文を入れます。「¥n」は改行です。$header変数には送信元のメールアドレスを代入します。html_entity_decode()関数でstringにあるHTMLエンティティを対応する文字列に変換します。そして、mb_language()関数で言語を設定し、mb_internal_encoding()関数でエンコードの設定を行います。最後にPHPであらかじめ用意されているメールを送信するmb_send_mail()関数の引数に宛先のメールアドレス、件名、本文、ヘッダー情報を渡し、メール送信機能を実装しています。
まとめ
いかがでしたでしょうか。メールフォームの作り方は難しいと思ってしまいがちですが、意外と簡単と感じた方が多いのではないでしょうか。メールフォームの作り方を習得すると作れるアプリケーションの幅が広がるので、是非この記事を参考にしてみてください。