Webアプリケーションであってもシステム自体がメール送信する機会は非常に多いです。問い合わせフォームはもちろん、ユーザ登録時のメール通知機能など、入力された文字列をデータベースに書き込むのと同じように、情報をメールで送信します。

メール送信において注意すべき点は、「日本語」かどうかです。日本語の場合、件名はISO-2022-JPでエンコードし、本文は7ビットのJISでエンコードする必要があります。しかし、PHPの場合はあまり気にしなくても良いように関数が用意されています。

今回は、お問い合わせフォームの簡易版を用意しましたので、そのフォームに書かれた内容を特定のメールアドレスに送信するプログラムを作ってみましょう。

PHPを知る上でHTMLの構文・仕組みが非常に重要になってきますので、今回はPHPを見て、それに見合うHTMLを作成してみましょう。


実際のメール送信としては、セキュリティを考慮すると使えません。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>PHP Mail</title></head>
<body>
<?php
$to = 'あなたのメールアドレス';
$na = $_POST['yname'];
$fr = $_POST['faddr'];
$su = $_POST['subject'];
$me = $_POST['mbody'];
$ac = $_POST['act'];
if($ac != "isp" || $to == "") {
  $htmlmessage = "<h2>Error</h2>";
}
else {
  $me = "Name: ".$na."\n"."Mail Address: ".$fr."\n\n".$me;
  $header = "From: ".$fr;
  mb_language("Japanese");
  mb_internal_encoding("SHIFT-JIS");
  mb_send_mail($to, $su, $me, $header);
  $htmlmessage = "<h2>Successful</h2>";
}
print $htmlmessage;
?>
</body>
</html>

このプログラムをWebサーバに入れ文字化けする場合があります。文字化け対応をする事で技術が一気に向上します。文字化け対応をしなかった人は損をしたと思った方が良いくらいです。

PHPマスター関連記事