前回はPearを利用しましたが、利用しない方法。
こちらを利用しました。
ソースだけ書くと。
mailsample.php
--------------------------------------------------
require("mail.php");
$MailFrom = "hogehoge@○○.jp";
$MailTo = "hoge@○○.jp";
$Subject = "メール送信テスト";
$Message = <<< __EOF__
メール送信テスト
(サンプル)
ヒアドキュメントで生成する場合は、このようになります。
__EOF__;
$Kekka = MailSender($MailFrom, $MailTo, $Subject, $Message);
?>
--------------------------------------------------
mail.php
--------------------------------------------------
function MailSender($MailFrom, $MailTo, $Subject, $Message)
{
$xSubject = mb_convert_encoding($Subject, "JIS", "auto");
$xSubject = base64_encode($xSubject);
$xSubject = "=?iso-2022-jp?B?".$xSubject."?=";
$xMessage = htmlspecialchars($Message);
$xMessage = str_replace("&", "&", $xMessage);
if (get_magic_quotes_gpc()) $xMessage = stripslashes($xMessage);
$xMessage = str_replace("\r\n", "\r", $xMessage);
$xMessage = str_replace("\r", "\n", $xMessage);
$xMessage = mb_convert_encoding($xMessage, "JIS", "auto");
$GMT = date("Z");
$GMT_ABS = abs($GMT);
$GMT_HOUR = floor($GMT_ABS / 3600);
$GMT_MIN = floor(($GMT_ABS - $GMT_HOUR * 3600) / 60);
if ($GMT >= 0) $GMT_FLG = "+"; else $GMT_FLG = "-";
$GMT_RFC = date("D, d M Y H:i:s ").sprintf($GMT_FLG."%02d%02d", $GMT_HOUR, $GMT_MIN);
$Headers = "Date: ".$GMT_RFC."\n";
$Headers .= "From: $MailFrom\n";
$Headers .= "Subject: $xSubject\n";
$Headers .= "MIME-Version: 1.0\n";
$Headers .= "X-Mailer: PHP/".phpversion()."\n";
$Headers .= "Content-type: text/plain; charset=ISO-2022-JP\n";
$Headers .= "Content-Transfer-Encoding: 7bit";
if(mail($MailTo, $xSubject, $xMessage, $Headers)) return true;
return false;
}
?>
--------------------------------------------------
※mail関数、mbstring関連関数を使用できない場合は動作しません。