人気ブログランキング |
(PHP)日本語メール送信
レンタルサーバ上でのメール送信フォーム作成メモです。

phpにはデフォルトでsendmailが扱えるようになっているらしいですが、Windowsだとphp.ini,Linuxだとsendmail_pathの設定等が必要ですが、基本的にレンタルサーバ側がこれらを設定しててくれてるはずです。(アイルだとそうでした)

ということでPHP側からのメール送信は非常に簡単です。
基本的に mb_send_mail 関数を使うだけでOKです。

そのまま送ると送信元が、nobody@shared-server.netとかになっていたので、送信元の書き換えです。
mb_send_mail関数の第4引数にメールヘッダを設定できるみたいなので "From:送信元アドレス" で送信元のアドレスを変更します。なお、送信元アドレスのコメントに日本語を使うには mb_convert_encoding で文字コートをJISに変更した後、mb_encode_mimeheaderでMIMEエンコードしてやる必要があるようです。

(どっかで本文もMIMEエンコードが必要だとかあった気がしますが、それをしなくてもできたのでOKとします。)


//mb系関数を使うための前処理
mb_language("Japanese");
/* 内部文字エンコーディングをUTF-8に設定 */
mb_internal_encoding("UTF-8");
 
//メール送信

$mailTo = "info@example.com";
$mailFromAddr = "<info@example.com>";
$mailSubject = "メール題名";
 
//送信元に日本語付加

$mailFrom = mb_encode_mimeheader(mb_convert_encoding("【自動送信フォーム】","JIS","UTF-8")). $mailFromAddr;

 
//メール本文。
$mailBody = "メール本文。";
 
//メール送信(送信先、 件名、 本文、 送信元)
if( mb_send_mail( $mailTo , $mailSubject , $mailBody ,"From:" . $mailFrom ) ){

//メールが正常に送れたら
$res = "送信成功";
}else{
//メールが送れなかったら
$res = "送信失敗";

}
 
echo $res;


参考:
PHPで日本語メールを送る - 基本編
PHPでメール送信

by jehoshaphat | 2008-10-28 11:10 | PHP開発


<< (サーバ)WindowsSer... (PHP)入力チェックを行うた... >>