Как передать URL-адрес в теле mailto

мне нужно отправить URL-адрес моего сайта в теле, чтобы получатель почты мог щелкнуть по нему, чтобы присоединиться к моему сайту.

однако в настоящее время почтовый клиент отображает почту следующим образом:

ссылка идет здесь http://www.example.com/foo.php?this=a

URL усекается на & символ, таким образом, весь процесс работы не удалось. Как я могу передать URL-адрес, как http://www.example.com/foo.php?this=a&join=abc&user454 в соответствующей тела?

мой текущий HTML следующий:

<a href="mailto:test@test.test?body=Link goes here http://www.example.com/foo.php?this=a&amp;really=long&amp;url=with&amp;lots=and&amp;lots=and&amp;lots=of&prameters=on_it
">Link text goes here</a>

4 ответов


вам нужно закодировать URL. Это URL декодер / кодер инструмент будет делать трюк. Следующее кажется, что работает:

<a href="mailto:test@test.test?body=Link goes here http%3A%2F%2Fwww.example.com%2Ffoo.php%3Fthis%3Da%26join%3Dabc%26user454
">Link text goes here</a>

Я бы URL кодировал ссылку, которую вы используете, так что это будет:

<a href="mailto:test@test.test?body=Link%20goes%20here%20http%3A%2F%2Fwww.example.com%2Ffoo.php%3Fthis%3Da%26join%3Dabc%26user454">Link text goes here</a>

вы можете ввести javascript: alert (escape ("Ваш URL")); в адресной строке браузера и получить URL-адрес, безопасный для ссылки mailto. Например, введите следующее в поле Адрес браузера и нажмите клавишу Ввод.

javascript:alert(escape("http://www.example.com/foo.php?this=a"));

вы получите окно сообщения, которое будет отображаться.

http%3A//www.example.com/foo.php%3Fthis%3Da

браузеры Opera и Mozilla позволяют копировать отображаемое содержимое из окна предупреждения.

вы можете улучшить его путем ввода

javascript:alert("mailto:MyEmailAddress@Example.com?subject=My Subject&body="+escape("http://www.example.com/foo.php?this=a"));

так что вы получаете предмет и тело, включенные в ссылку. Другие улучшения могут быть с использованием имени From и разрывов строк с помощью %0a.

javascript:alert("mailto:Just Me <CMyEmailAddress@Example.com>?subject=My Subject&body=This is the link:%250a"+escape("http://www.example.com/foo.php?this=a"));

Как я вижу, вы используете php, тогда вы можете использовать функцию "urlencode ()"

<a href="mailto:test@test.test?body=Link goes here <?php echo urlencode('http://www.example.com/foo.php?this=a&amp;really=long&amp;url=with&amp;lots=and&amp;lots=and&amp;lots=of&prameters=on_it
');?>">Link text goes here</a>