Tôi đã có một kịch bản mà sẽ gửi e-mail tựa hồ như thế này:Tôi nên sử dụng Mã hóa-Chuyển-Mã hóa nào khi gửi một thư PHP() chứa một liên kết http dài?
$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';
Nó kiểm tra kỹ lưỡng nhưng một số người dùng, tôi nghĩ rằng người dùng Outlook, có được một URL tìm kiếm như thế này: http://example.com/subpage/?id=3D1234&hash=3D3D23jh4lk2j3h4lkjh674598xzxlk2j34h&anotherhash=3Dh2k3j4h23kh42kj34h2lk3 Các bình đẳng dấu hiệu bây giờ được theo sau bởi '3D' làm cho URL vô dụng trong trường hợp của tôi. Tôi đoán điều này có liên quan đến Content-Transfer-Encoding hoặc có thể là Content-type, tôi có cần mã hóa thông điệp cơ thể thành base64 hay gì đó không?
Cập nhật
Chỉ cần tìm thấy diễn đàn bài này: https://stackoverflow.com/a/7289434/513321 Vì vậy, tôi loại bỏ các Content-Transfer-Encoding và có vẻ như để làm việc tốt nhưng mặt khác tôi không bao giờ có thể sao chép các lỗi nơi URL chứa '3D 'văn bản, vì vậy tôi không thể chắc chắn rằng điều này sẽ làm việc. Có ai biết nếu loại bỏ các Content-Transfer-Encoding sẽ giải quyết vấn đề của tôi?