我需要在正文中发送我网站的网址,以便邮件收件人可以点击该网址加入我的网站。
但是目前邮件客户端会像这样呈现邮件:
网址在&
符号上被截断,因此整个加入过程失败。如何在mailto正文中传递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&really=long&url=with&lots=and&lots=and&lots=of&prameters=on_it
">Link text goes here</a>
答案 0 :(得分:23)
您需要对网址进行编码。这个URL Decoder/Encoder tool可以解决问题。以下seems to work:
<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>
答案 1 :(得分:10)
我会对您正在使用的链接进行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>
答案 2 :(得分:3)
您可以输入javascript:alert(escape(“您的网址”));在浏览器的地址框中,获取对mailto链接安全的URL。例如,在浏览器的地址框中键入以下内容,然后按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: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"));
答案 3 :(得分:1)
因为我看到你正在使用php然后你可以使用“urlencode()”函数
<a href="mailto:test@test.test?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>