PHPのメールを使用して£を含むメールを送信すると、Outlookの/ hotmailに£が表示されます。 Gmail/thunderbirdではうまくいきます。PHPは電子メールの件名を送信しました - Hotmail/Outlookは£を表示します。
どのように私はこれを修正できますか?
PHPのメールを使用して£を含むメールを送信すると、Outlookの/ hotmailに£が表示されます。 Gmail/thunderbirdではうまくいきます。PHPは電子メールの件名を送信しました - Hotmail/Outlookは£を表示します。
どのように私はこれを修正できますか?
を使用しています。 Content-Type
ヘッダーにアプリケーションが設定したものは、電子メールの本文にのみ適用され、ヘッダーには適用されません。のように(
に
は、通常、これは次のヘッダーに影響しますRFC 2047)を使用して、base64(B)または修正されたquoted-printable(Q)の2つの方法のいずれかを使用します。
Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
:エンコードされた被験者は、通常、次のようになりますまた
あなたは下の議論に見えることがあります。
quoted_printable_encode()
を使用する前に_」quoted-printableの文字列に8ビット文字列に変換"
ちょうど今日、私が代わりにPHPの組み込みmail
のphpmailerを使用して、同様の主題エンコードの問題を修正:
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->CharSet = "utf8";
$mail->Subject = $mail->EncodeHeader("You won £10000000!");
....
$retval = $mail->Send();
メールでUTF-8エンコーディングを使用してみてください。
通常私はこの問題は、クライアントが被写体をエンコードするために使用されているものエンコーディングを知らない、あるmb_convert_encoding()
機能
mb_convert_encoding($string, "UTF-8"); //AUTO DETECT AND CONVERT
mb_convert_encoding($string, "UTF-8", "latin1"); //MANUAL SET - CHANGE latin1 TO CURRENT ENCODING
これは、あなたがこのテキストにどのような文字エンコーディングを使用している私の
<?php $subject = "=?UTF-8?B?" . base64_encode($subject) . "?="; ?>
の結果を持っていましたか? – jimw
これはUTFの問題です。他の文字セットを使用している文書にUTF-8文字を埋め込んでいます。 –