支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • メールフォームの作り方について、PH

はじめに

この記事では、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()関数の引数に宛先のメールアドレス、件名、本文、ヘッダー情報を渡し、メール送信機能を実装しています。

まとめ

いかがでしたでしょうか。メールフォームの作り方は難しいと思ってしまいがちですが、意外と簡単と感じた方が多いのではないでしょうか。メールフォームの作り方を習得すると作れるアプリケーションの幅が広がるので、是非この記事を参考にしてみてください。