このエントリーをブックマークに追加 このエントリをlivedoorクリップに追加 Yahoo!ブックマークに登録

mb_send_mailで文字化けが発生する

2008年11月21日金曜日 by mikuta

大体、mb_send_mailは文字化けがおきてしまい、使い勝手が悪い。
mail関数に適切なエンコードを施して送信した方が、具合がいいようだ。

function jp_mail( $to, $subject, $body, $from){
  $body = mb_convert_encoding( $body, "ISO-2022-JP", mb_internal_encoding());
  $subject = mb_convert_encoding( $subject, "ISO-2022-JP", mb_internal_encoding());
  $subject = mb_encode_mimeheader( $subject, "ISO-2022-JP");
  $headers = "From: " . $from . "\r\n";
  $headers .= "MIME-Version: 1.0\r\n";
  $headers .= "Content-Type: text/plain; charset=iso-2022-jp\r\n";
  $headers .= "Content-Transfer-Encoding: 7bit\r\n";
  $headers .= "X-Mailer: PHP/" . phpversion() . "\r\n";
  return mail( $to, $subject, $body, $headers);
}

Filed under having  

0 コメント: