PHPで日本語メールを送信するスクリプトの一番簡単な例。
機能としては
- メール件名(日本語可)
- 差出人アドレス
- 送信先アドレス
- メール本文(日本語可)
をそれぞれ指定可能です。
文字コードはEUC-JPで保存してください。
submit.php
<html>
<head>
<title>メール送信PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
</head>
<body>
<h1>メール送信</h1>
<form action="submit.php" method="POST">
件名:<input type="text" name="subject" size="50" value="テスト" /><br />
差出元アドレス:<input type="text" name="from" size="40" value="from@example.com" /><br />
送信先アドレス:<input type="text" name="to" size="40" value="to@example.com" /><br />
<textarea name="mailbody">
本文です。
本文2。
</textarea><br />
<input type="submit" value="送信" />
<input type="hidden" name="mode" value="send" />
</form>
<?php
if (!$_POST{"submit"}) {
//POSTデータを全て受け取りエスケープして変数に入れる
foreach($_POST as $k => $v) {
if(get_magic_quotes_gpc()) {
$v=stripslashes($v);
}
$v=htmlspecialchars($v);
$array[$k]=$v;
}
extract($array);
// メールヘッダー
$headers = "MIME-Version: 1.0\n" ;
$headers .= "From: $from\n";
$headers .= "Reply-To: $from\n";
$headers .= "Content-Type: text/plain;charset=ISO-2022-JP";
// メールボディーの文字コードを変換
$mailbody = mb_convert_encoding($mailbody, "ISO-2022-JP","AUTO");
// 件名にはASCIIコードのみを含むように変換
mb_language("ja");
$subject = mb_convert_encoding($subject, "ISO-2022-JP","AUTO");
$subject = mb_encode_mimeheader($subject);
// メール送信
mail($to, $subject, $mailbody, $headers);
}
?>
</body>
</html>
途中、PHPプログラムを作る人のメモ帳さんの フォームのデータを受け取りエスケープして変数に入れるを使っています。