我在一个HTML文档中有几个mailto链接。
<a href="mailto:etc...">
我可以插入HTML格式的身体在mailto: href的一部分?
<a href="mailto:me@me.com?subject=Me&body=<b>ME</b>">Mail me</a>
请注意(2016)在iOS中,添加<i>和<b>标签用于简单的斜体、粗体格式是完全没问题的。
我在一个HTML文档中有几个mailto链接。
<a href="mailto:etc...">
我可以插入HTML格式的身体在mailto: href的一部分?
<a href="mailto:me@me.com?subject=Me&body=<b>ME</b>">Mail me</a>
请注意(2016)在iOS中,添加<i>和<b>标签用于简单的斜体、粗体格式是完全没问题的。
当前回答
正如你在RFC 6068中看到的,这根本不可能:
特殊的<hfname> "body"表示相关的<hfvalue> . body 是消息的主体。“body”字段值用于 控件的第一个文本/普通主体部分的内容 消息。“body”伪报头字段主要用于 用于自动处理的短文本消息的生成(例如 作为邮件列表的“订阅”消息),而不是一般的MIME 的身体。
其他回答
任何人都可以尝试以下(mailto函数只接受明文,但在这里我展示如何使用HTML内文属性,以及如何添加锚作为mailto主体参数):
//Create as many html elements you need.
const titleElement = document.createElement("DIV");
titleElement.innerHTML = this.shareInformation.title; // Just some string
//Here I create an <a> so I can use href property
const titleLinkElement = document.createElement("a");
titleLinkElement.href = this.shareInformation.link; // This is a url
...
let mail = document.createElement("a");
// Using es6 template literals add the html innerText property and anchor element created to mailto body parameter
mail.href =
`mailto:?subject=${titleElement.innerText}&body=${titleLinkElement}%0D%0A${abstractElement.innerText}`;
mail.click();
// Notice how I use ${titleLinkElement} that is an anchor element, so mailto uses its href and renders the url I needed
It is worth pointing out that on Safari on the iPhone, at least, inserting basic HTML tags such as <b>, <i>, and <img> (which ideally you shouldn't use in other circumstances anymore anyway, preferring CSS) into the body parameter in the mailto: does appear to work - they are honored within the email client. I haven't done exhaustive testing to see if this is supported by other mobile or desktop browser/email client combos. It's also dubious whether this is really standards-compliant. Might be useful if you are building for that platform, though.
正如其他响应所指出的,在将encodeURIComponent嵌入到mailto:链接之前,还应该在整个正文上使用encodeURIComponent。
正如你在RFC 6068中看到的,这根本不可能:
特殊的<hfname> "body"表示相关的<hfvalue> . body 是消息的主体。“body”字段值用于 控件的第一个文本/普通主体部分的内容 消息。“body”伪报头字段主要用于 用于自动处理的短文本消息的生成(例如 作为邮件列表的“订阅”消息),而不是一般的MIME 的身体。
有些事情是可能的,但不是所有的,例如你想要换行,而不是使用<br />使用%0D%0A
例子:
<a href="mailto:?subject=&body=Hello,%0D%0A%0D%0AHere is the link to the PDF Brochure.%0D%0A%0D%0ATo view the brochure please click the following link: http://www.uyslist.com/yachts/brochure.pdf"><img src="images/email.png" alt="EMail PDF Brochure" /></a>
不。这根本不可能。