日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP事はじめ » メール本文が文字化けしてしまいます。助けていただけませんでしょうか。

メール本文が文字化けしてしまいます。助けていただけませんでしょうか。

ページ: 1

投稿者 投稿
会員
登録者: 5 月 2009
返信数: 1
はじめまして、ベトナムのCuongです。
以下の関数で日本語のメールを送信しますが、どうもoutlook等のメーラーは問題なく閲覧できますが、ウェーブメールで見ますと、件名は正常に日本語を表示してますけれども、本文にはそのままbase64でエンコードされた文字列を複合化されずにそのまま出力されています。
只今私はさじを投げておりますが。具体的にどのように修正できるかを教えていただければと思っております。
ありがとうございます。 :(

===============================
private static function _sendPc( $from, $to, $subject, $body, $contentType, $charSet="shift_jis", $header="", $parameter=""){
Debugger::snap();
//make header
$headers = "From: $from\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: $contentType; charset=ISO-2022-JP\n";
//$headers .= "Content-type: $contentType; charset=SHIFT_JIS\n";
//$headers .= "Content-Transfer-Encoding: base64";
$headers .= "Content-Transfer-Encoding: quoted-printable";


// add header to mail
if( strlen( $header ) > 0 ){
$headers .= "\n";
$headers .= $header;
}

//make parameter
$parameters = $parameter;

//make subject
$subject = '=?ISO-2022-JP?B?'.base64_encode(mb_convert_encoding($subject, 'ISO-2022-JP', 'AUTO' )).'?=';
//$subject = '=?SHIFT_JIS?B?'.base64_encode($subject).'?=';
//$body = base64_encode($body);
$body = mb_convert_encoding( $body, 'ISO-2022-JP', "AUTO");

// a,b@mail.com こんなEMAILアドレスがたまにあるための回避策
$pos1 = strpos($to, ",");
$pos2 = strpos($to,"<");
if( $pos1 !== FALSE && $pos2 === FALSE ){
$to = "<" . $to .">";
}

if( $parameters != null && strlen( $parameters ) > 0 )
mail( $to, $subject, $body, $headers, $parameters );
else
mail( $to, $subject, $body, $headers,"-f" . $from );

Debugger::debug( "sended" );
return true;
}
会員
登録者: 10 2007
返信数: 71
mail()の代わりにmb_send_mail()を使ってみてはいかがでしょうか?。
mb_language('ja'); も使うと思います。

mb_send_mail() (日本語)
mb_send_mail() (English)
mb_language() (日本語)
mb_language() (English)
管理者
登録者: 10 2005
返信数: 38
> $headers .= "Content-Transfer-Encoding: quoted-printable";

少なくともこの実装だとquoted-printableじゃないと思いますよ.
会員
登録者: 7 2009
返信数: 1
Encoding
Unicode

ページ: 1

日本PHPユーザ会 掲示板 » PHP事はじめ » メール本文が文字化けしてしまいます。助けていただけませんでしょうか。

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています