How to pass an URL in mailto's body

柔情痞子 提交于 2019-12-08 14:56:20

问题


I need to send an URL of my site in the body so the mail recipient can click on that to join my site.

However currently mail client renders the mail like this:

Link goes here http://www.example.com/foo.php?this=a

The URL is truncated on the & symbol, thus the whole process of joining failed. How can I pass the URL like http://www.example.com/foo.php?this=a&join=abc&user454 in mailto body?

My current HTML is the following:

<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>

回答1:


You need to encode the URL. This URL Decoder/Encoder tool will do the trick. The following 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>



回答2:


I would URL encode the link you are using, so it would be:

<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>



回答3:


You can type javascript:alert(escape("YOUR URL")); in the address box of a browser and get the URL made safe for a mailto link. For example, type the following inside the address box of a browser and press Enter.

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

You will get a message box that will display.

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

Opera and Mozilla-based browsers allow you to copy the displayed content from the alert box.

You could improve it by typing

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

so that you get the subject and body included in the link. Other improvements could be using a From name and line breaks using %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"));



回答4:


as I see you are using php then you can use "urlencode()" function

<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>


来源:https://stackoverflow.com/questions/4710349/how-to-pass-an-url-in-mailtos-body

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!