メールフォームって自分で作ろうとすると結構面倒なので、クラスとか無いかなぁ、と思ったらJPHPMailerというものを見つけたので、導入レポートです。
JPHPMailer
JPHPMailerは、PHPMailerのラッパークラスです。
mb_send_mailなどと違い、添付ファイルなども送信することが出来ます。
ダウンロードはこちらJPHPMailer
PHP5用、PHPMailer
使い方
[php]
//ライブラリ読み込み
include("./jphpmailer.php");
//言語設定、内部エンコーディングを指定する
mb_language("japanese");
mb_internal_encoding("UTF-8");
//日本語添付メールを送る
$to = "[email protected]";
$senderAddress = htmlspecialchars($senderAddress, ENT_QUOTES,’UTF-8′);
$senderName = htmlspecialchars($senderName, ENT_QUOTES,’UTF-8′);
$messageSubject = htmlspecialchars($messageSubject, ENT_QUOTES,’UTF-8′);
$messageBody = htmlspecialchars($messageBody, ENT_QUOTES,’UTF-8′);
$mail = new JPHPMailer();
//文字コード設定
$mail->in_enc = "UTF-8";
$mail->addTo($to);
$mail->setFrom($senderAddress,$senderName);
$mail->setSubject($messageSubject );
$mail->setBody($messageBody);
//添付ファイル
$mail->addAttachment($attachfile);
if ($mail->send()){
echo "送信されました。";
}else{
die("メールが送信できませんでした。エラー:".$mail->getErrorMessage());
}
[/php]
のような感じでメールが送信できます。
デフォルトの文字コードがEUCなので、UTF-8に変換するのを忘れると文字化けします。
また、jphpmailer.phpはデフォルトで、
[php]
require("./phpmailer/class.phpmailer.php");
[/php]
となっているので、ここらへんは適宜書き換える必要がありそうです。もしくは、この行をコメントアウトして、記述するスクリプト本体のほうでincludeしたほうが良いかもです。
“JPHPMailerでのメールフォームの作成” への2件のフィードバック
まったくわかりません。jphpmailer.phpを実行したら、画面が真っ白でした。
もしかして、入力フォームは自分で新たに作らなきゃ?
載せているコードはメールの送信部分だけなので、フォーム部分と$_POST等でデータを受け取る部分は自作する必要がありますね。