私はちょっとこのようになり、電子メールを送信するスクリプト持っている:それは徹底的にテストされたが、一部のユーザーは、私はOutlookユーザーを考えて、このように見えるURLを取得しています長いHTTPリンクを含むPHPメール()を送信するときに、どのようなコンテンツ転送エンコーディングを使用する必要がありますか?
$headers = "From: [email protected]\r\n";
$headers .= "Reply-To: [email protected]\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: 8bit";
$orgsubject = "A subject with some swedish characters like å, ä and ö";
$newsubject='=?UTF-8?B?'.base64_encode($orgsubject).'?=';
$body = 'A lot of text.
Some more text.
A long URL:
http://example.com/subpage/?id=1234&hash=23jh4lk2j3h4lkjh674598xzxlk2j34h&anotherhash=h2k3j4h23kh42kj34h2lk3';
を: http://example.com/subpage/?id=3D1234&hash=3D3D23jh4lk2j3h4lkjh674598xzxlk2j34h&anotherhash=3Dh2k3j4h23kh42kj34h2lk3 等しいです私の場合、URLを役に立たないようにするために、3Dの後に記号が表示されます。私はContent-Transfer-EncodingやContent-typeと何か関係があると思います。body64をbase64などにエンコードする必要がありますか?
更新
はちょうどこのフォーラムの投稿を見つけた:https://stackoverflow.com/a/7289434/513321 だから私は、コンテンツ転送エンコードを削除し、正常に動作するようですが、一方で私は、URLが「3Dに含まれる誤差を再現することができませんでした'テキスト、私はこれが動作することを確認することはできません。 Content-Transfer-Encodingを削除すると問題が解決するかどうかは誰にも分かりますか?