I am sending a mail in PHP. This mail contains a long URL. If I send this mail from my website running in localhost I receive it with a valid URL. But if I send the same mail from my website running in hosting server I receive it with a corrupted URL: a space (%20) is added in the middle of the URL.
Here is a sample code I am executing either in localhost or in hosting server:
$body = "<table style='width:100%; border-collapse:collapse'><thead><tr style='background:blue; color:white;'><td style='padding:0.5em; font-size:2em;'>Test</td><td style='padding:1em; text-align:right'>Test</td></tr></thead><tbody><tr><td colspan='2'> this is a test this is a test this is a test </td></tr><tr><td><br/></td></tr><tr><td colspan='2'><p>Click <a href='http://www.test.com/test.php?url_parameter_test_1=url_parameter_test_1&url_parameter_test_2=url_parameter_test_2&url_parameter_test_3=url_parameter_test_3&url_parameter_test_4=url_parameter_test_4&url_parameter_test_5=url_parameter_test_5&url_parameter_test_6=url_parameter_test_6&url_parameter_test_7=url_parameter_test_7&url_parameter_test_8=url_parameter_test_8&url_parameter_test_9=url_parameter_test_9&url_parameter_test_10=url_parameter_test_10&url_parameter_test_11=url_parameter_test_11&url_parameter_test_12=url_parameter_test_12&url_parameter_test_13=url_parameter_test_13&url_parameter_test_14=url_parameter_test_14&url_parameter_test_15=url_parameter_test_15&url_parameter_test_16=url_parameter_test_16&url_parameter_test_17=url_parameter_test_17&url_parameter_test_18=url_parameter_test_18&url_parameter_test_19=url_parameter_test_19&url_parameter_test_20=url_parameter_test_20&url_parameter_test_21=url_parameter_test_21'>here</a></p></td></tr></tbody></table>";
$boundary = uniqid('mf');
$header = "MIME-Version: 1.0
";
$header .= "From: Test <test@mail.com>
";
$header .= "Content-Type: multipart/alternative;boundary=".$boundary."
";
$message = "
--".$boundary."
";
$message .= "Content-type: text/html;charset=UTF-8
";
$message .= $body;
$message .= "
--".$boundary."--";
mail("my_mail@mail.com", "test", $message, $header);
And here is the URL I receive in my mail when executed from hosting server (contains a %20 in parameter 15): http://www.test.com/test.php?url_parameter_test_1=url_parameter_test_1&url_parameter_test_2=url_parameter_test_2&url_parameter_test_3=url_parameter_test_3&url_parameter_test_4=url_parameter_test_4&url_parameter_test_5=url_parameter_test_5&url_parameter_test_6=url_parameter_test_6&url_parameter_test_7=url_parameter_test_7&url_parameter_test_8=url_parameter_test_8&url_parameter_test_9=url_parameter_test_9&url_parameter_test_10=url_parameter_test_10&url_parameter_test_11=url_parameter_test_11&url_parameter_test_12=url_parameter_test_12&url_parameter_test_13=url_parameter_test_13&url_parameter_test_14=url_parameter_test_14&url%20_parameter_test_15=url_parameter_test_15&url_parameter_test_16=url_parameter_test_16&url_parameter_test_17=url_parameter_test_17&url_parameter_test_18=url_parameter_test_18&url_parameter_test_19=url_parameter_test_19&url_parameter_test_20=url_parameter_test_20&url_parameter_test_21=url_parameter_test_21
Do you have any idea why the URL could be corrupted and what I could do to fix it ?
Thanks !