レンタルサーバ上でのメール送信フォーム作成メモです。
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;