关于电子邮件:与HTML正文的mailto链接

mailto link with HTML body

我在HTML文档中有几个mailto链接。

我可以在hrefmailto:部分插入HTML格式的正文吗?

注意,(2016)在iOS中,添加标签可以非常好地实现简单的斜体、粗体格式。


正如您在RFC 6068中看到的,这根本不可能:

The special "body" indicates that the associated
is the body of the message. The"body" field value is intended to
contain the content for the first text/plain body part of the
message. The"body" pseudo header field is primarily intended for
the generation of short text messages for automatic processing (such
as"subscribe" messages for mailing lists), not for general MIME
bodies.


不,根本不可能。


虽然不可能使用HTML来格式化电子邮件正文,但是您可以像前面建议的那样添加换行符。

如果您能够使用javascript,那么"encodeuricomponent()"的用法可能如下…


我用过这个,它似乎与Outlook一起工作,而不是使用HTML,但是至少当正文作为输出添加时,您可以用换行符来格式化文本。

4


这不完全是您想要的,但是可以使用现代的javascript在客户端创建一个EML文件,并将其传输到用户的文件系统,该系统将在其邮件程序中打开一封包含HTML的富电子邮件,如Outlook:

https://stackoverflow.com/a/27971771/8595398

这是一封包含图片和表格的电子邮件的jsfidle:https://jsfiddle.net/seanodotcom/yd1n8lfh/

HTML

JavaScript


有些事情是可能的,但不是全部,比如说你想要换行,而不是使用
使用%0D%0A

例子:


值得指出的是,在iPhone上的Safari上,至少可以在等基本HTML标签(理想情况下,在其他情况下,您不应该再使用这些标签,而更喜欢css)中的body参数中插入mailto:似乎确实有效——它们在电子邮件客户端中很受欢迎。我还没有做过详尽的测试,看看其他移动或桌面浏览器/电子邮件客户端组合是否支持这种功能。这是否真的符合标准也值得怀疑。不过,如果您正在为该平台构建,可能会很有用。

正如其他反应所指出的,在将其嵌入mailto:链接之前,还应该在整个身体上使用编码成分。


可以输入unicode值来插入换行符(例如:\u0009),但是HTML标记有不同程度的支持,应该避免。


我是这样工作的:

输出为:


以下是如何将所有内容添加到mailto链接:

每个组件都由符号(&;)分隔。只有初始电子邮件地址后的第一个组件有问号(?)在与号之前。

URL编码是关键!所以以你的身体为例,而不是

…你可以尝试:

这是你可以尝试的另一条路线。创建一个javascript函数来打开一个ActiveX对象。这具有只在IE和Outlook中工作的不幸限制,并且可能导致页面显示ActiveX警告。但如果你能接受这些警告,它就可以做到。以下是您可以从中提取的工作样本: