如何在mailto正文中传递URL

时间:2011-01-17 05:50:07

标签: html css url mailto

我需要在正文中发送我网站的网址,以便邮件收件人可以点击该网址加入我的网站。

但是目前邮件客户端会像这样呈现邮件:

  

链接到这里http://www.example.com/foo.php?this=a

网址在&符号上被截断,因此整个加入过程失败。如何在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&amp;really=long&amp;url=with&amp;lots=and&amp;lots=and&amp;lots=of&prameters=on_it
">Link text goes here</a>

4 个答案:

答案 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&amp;really=long&amp;url=with&amp;lots=and&amp;lots=and&amp;lots=of&prameters=on_it
');?>">Link text goes here</a>