Как передать URL-адрес в тело mailto
Мне нужно отправить URL-адрес моего сайта в теле, чтобы получатель почты мог нажать на него, чтобы присоединиться к моему сайту.
Однако в настоящее время почтовый клиент отображает почту следующим образом:
Ссылка идет здесь http://www.example.com/foo.php?this=a
URL-адрес усечен символом &
, поэтому весь процесс объединения не удался. Как передать URL-адрес, например http://www.example.com/foo.php?this=a&join=abc&user454 в тело mailto?
Мой текущий HTML следующий:
<a href="mailto:[email protected]?body=Link goes here http://www.example.com/foo.php?this=a&really=long&url=with&lots=and&lots=and&lots=of&prameters=on_it
">Link text goes here</a>
Ответы
Ответ 1
Вам нужно закодировать URL-адрес. Этот инструмент для декодирования/кодирования URL будет делать трюк. Следующий работает:
<a href="mailto:[email protected]?body=Link goes here http%3A%2F%2Fwww.example.com%2Ffoo.php%3Fthis%3Da%26join%3Dabc%26user454
">Link text goes here</a>
Ответ 2
Я бы кодировал URL-адрес используемой вами ссылки, поэтому это будет:
<a href="mailto:[email protected]?body=Link%20goes%20here%20http%3A%2F%2Fwww.example.com%2Ffoo.php%3Fthis%3Da%26join%3Dabc%26user454">Link text goes here</a>
Ответ 3
Вы можете ввести javascript: alert (escape ( "YOUR URL" )); в поле адреса браузера и получить URL-адрес, безопасный для ссылки mailto. Например, введите следующее в поле адреса браузера и нажмите Enter.
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:[email protected]?subject=My Subject&body="+escape("http://www.example.com/foo.php?this=a"));
чтобы вы получили объект и тело, включенные в ссылку. Другие улучшения могут заключаться в использовании от имени и разрывов строк с использованием% 0a.
javascript:alert("mailto:Just Me <[email protected]>?subject=My Subject&body=This is the link:%250a"+escape("http://www.example.com/foo.php?this=a"));
Ответ 4
как я вижу, вы используете php, тогда вы можете использовать функцию "urlencode()"
<a href="mailto:[email protected]?body=Link goes here <?php echo urlencode('http://www.example.com/foo.php?this=a&really=long&url=with&lots=and&lots=and&lots=of&prameters=on_it
');?>">Link text goes here</a>