Мой скрипт PHP mail () изменяет !
восклицательный знак на некоторых почтовых клиентах, таких как hotmail to %21
когда !
находится в теге в теле письма.
Вот мой сценарий
$to = "[email protected]";
$subject = "Password Reset";
$body = "<a href=\"http://example.com/#!/page\">Link 1</a>
<br><br>
Without href: http://example.com/#!/page - regular text
";
$headers = "From: [email protected]\r\n";
$headers .= "Reply-To: [email protected]\r\n";
$headers .= "Return-Path: [email protected]\r\n";
$headers .= "X-Mailer: PHP5\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
mail($to,$subject,$body,$headers);
Так что в приведенном выше сценарии !
изменено на %21
только когда это ссылка, обычный текст сохраняет ее как /#!/
вместо того, чтобы преобразовать его в /#%21/
Как бы я решил эту проблему, чтобы она не изменилась на %21
?
Некоторые символы закодированы, потому что они не являются действительными URL-адресами. В твоем случае Кодовые точки URL заменяются байтами в процентах %
,
Других решений пока нет …