是否可以在MAILTO链接的主体中添加HTML链接

我没有太多乱七八糟的mailto链接。 但是,我现在需要添加一个邮件正文链接,如果可能的话。

有没有办法添加一个链接或改变打开一个HTML电子邮件比文本电子邮件的电子邮件?

就像是:

<a href="mailto:test@test.test?body=The message's first paragraph.%0A%0aSecond paragraph.%0A%0AThird Paragraph.%0A%0ALink goes here">Link text goes here</a> 

RFC 2368的第2部分指出, body字段应该是text/plain格式,所以你不能做HTML。

但是,即使使用纯文本,也可能某些现代邮件客户端将URL呈现为可点击的链接。

添加完整的链接,与:

  "http://" 

到一行的开头,最正派的电子邮件客户端将自动链接它在发送之前,或在另一端接收。

对于可能由于所有参数而缠绕的真正长的URL,将链接包装在小于/大于符号中。 这告诉电子邮件客户端不要包装url。

例如

  <http://www.example.com/foo.php?this=a&really=long&url=with&lots=and&lots=and&lots=of&prameters=on_it> 

请在IE下面检查javascript。 不知道其他现代浏览器是否会工作。

 <html> <head> <script type="text/javascript"> function OpenOutlookDoc(){ try { var outlookApp = new ActiveXObject("Outlook.Application"); var nameSpace = outlookApp.getNameSpace("MAPI"); mailFolder = nameSpace.getDefaultFolder(6); mailItem = mailFolder.Items.add('IPM.Note.FormA'); mailItem.Subject="a subject test"; mailItem.To = "an@email.here"; mailItem.HTMLBody = "<b>bold</b>"; mailItem.display (0); } catch(e){ alert(e); // act on any error that you get } } </script> </head> <body> <a href="javascript:OpenOutlookDoc()">Click</a> </body> </html> 

据我所知,这是不可能的,因为链接需要HTML,并且mailto链接不会创buildHTML电子邮件。

这可能是为了安全,因为您可以将javascript或iframe添加到此链接,并且电子邮件客户端可能会打开最终用户的漏洞。

这是我放在一起。 它适用于我所需的select移动设备,但我不确定解决scheme的普遍性

 <a href="mailto:me@me.com?subject=Me&body=%3Chtml%20xmlns%3D%22http:%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%3C%2Fhead%3E%3Cbody%3EPlease%20%3Ca%20href%3D%22http:%2F%2Fwww.w3.org%22%3Eclick%3C%2Fa%3E%20me%3C%2Fbody%3E%3C%2Fhtml%3E"> 

“mailto”正文的规范说:

消息的正文只是US-ASCII字符的行。 身体上唯一的两个限制如下:

  • CR和LF只能一起作为CRLF出现; 它们绝不能独立出现在体内。
  • 正文中的字符行必须限制为998个字符,并且应该限制为78个字符,不包括CRLF。

https://tools.ietf.org/html/rfc5322#section-2.3

通常现在大多数电子邮件客户端都擅长自动链接,但由于安全问题,并非全部都是这样。 你可能会find一些解决方法,但它不一定普遍。

我有实现下面的iOS设备工作,但在Android设备上失败

 <a href="mailto:?subject=Your mate might be interested...&body=<div style='padding: 0;'><div style='padding: 0;'><p>I found this on the site I think you might find it interesting. <a href='@(Request.Url.ToString())' >Click here </a></p></div></div>">Share This</a>