在html中电子邮件链接,关于电子邮件:与HTML正文的mailto链接

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

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

Mail me

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

有一个完全相同的想法,研究了一段时间。我试图在消息体中嵌入一个远程

5620324。mailto指令需要进行url编码才能工作。Thunderbird的结果是,HTML主体出现在字面上,包含所有

5620324指令和所有指令。我想这是雷鸟和大多数邮件客户机的安全问题——他们解析传入的邮件到内容,这样它就不会做任何可疑的事情。

我能找到的最好的信息来自这个页面,zapossphere.com/html-email-links-code.。下面给出了一个列表:"大多数其他网站没有提到的其他很酷的定制!"帮了我很多忙。

您可以将电子邮件的每个部分设置为基本文本。关于HTML格式不可能存在的局限性,我构建了一个工具来定制mailto中的各个字段:mailto.now.sh。

正如您在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.

@乔布的回答仍然正确。废除2368的RFC6068仍然说正文是纯文本。

如果您对这个答案感到失望,请继续阅读:stackoverflow.com/a/46699855/256272(tl;dr.eml files)

不,根本不可能。

不完全正确。虽然支持非常少,但其他答案表明,在iOS和IE+ActiveX+Outlook(urgh,yuck)的组合中,某些有限的HTML是可能的。

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

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

var formattedBody ="FirstLine

Second Line

Third Line";

var mailToLink ="mailto:x@y.com?body=" + encodeURIComponent(formattedBody);

window.location.href = mailToLink;

电子邮件客户端可以运行嵌入式javascript吗?运营商说这是一封电子邮件,而不是一个mailto:链接的网页。

谢谢,在Rails中,您可以使用raw("text

more text

\t")函数来封装文本,并将其转换为电子邮件正文的换行符和制表符。

这对我很有效,从chrome"mailto"发送到outlook。请注意,您只能对正文文本进行编码,而不能对整个mailto字符串进行编码;并且在之前/之后不需要空格。

我试过用粗体字。它不起作用。支持哪些其他转义序列?

我喜欢这种方法,这里有一个jsFiddle可以看到它的实际应用:jsFiddle.net/oligray/5uosngy4

您也可以使用%0a作为换行符,所以不需要从javascript中进行。

在Rails 5中,u或url_encode方法将转换换行符,并使字符串通常是URL安全的。stackoverflow.com/a/2353752/4686951

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

所以"%0d"是换行符。编码标签的代码等价物是什么?

%0d是一个换行符,它是ctrl-m,一个制表符是ctrl-i,它是%09。看看这样的ASCII图表[asciitable.com/index/asciifull.gif]。控制字符从1到31。@大眼睛的学生

执行此操作时,似乎删除了任何签名。

谢谢@andy我为Gmail客户工作

%0A将是

这不是HTML正文!

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

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

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

HTML

To: User

Subject: Subject

X-Unsent: 1

Content-Type: text/html

body, html, table {

font-family: Calibri, Arial, sans-serif;

}

.pastdue { color: crimson; }

table {

border: 1px solid silver;

padding: 6px;

}

thead {

text-align: center;

font-size: 1.2em;

color: navy;

background-color: silver;

font-weight: bold;

}

tbody td {

text-align: center;

}

PAST DUE INVOICE

Invoice #Days OverdueAmount Owed

OU8129$4395.00OU8129$4395.00OU8129$4395.00

Create file

Download

JavaScript

(function () {

var textFile = null,

makeTextFile = function (text) {

var data = new Blob([text], {type: 'text/plain'});

if (textFile !== null) {

window.URL.revokeObjectURL(textFile);

}

textFile = window.URL.createObjectURL(data);

return textFile;

};

var create = document.getElementById('create'),

textbox = document.getElementById('textbox');

create.addEventListener('click', function () {

var link = document.getElementById('downloadlink');

link.href = makeTextFile(textbox.value);

link.style.display = 'block';

}, false);

})();

现在这是一个奇特的想法

好主意,但只是为了记录,在最新的苹果邮件上,这个文件将打开,但不能编辑/发送,它就像一个已发送的电子邮件记录。

使用Apple Mail(11.2),打开.eml文件后,可以从菜单(shift-cmd-d)中选择message/send again以将电子邮件置于编辑模式。

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

例子:

EMail PDF Brochure

这不是HTML…静止文本。

如果您使用$mailheader.="content-type:text/html;charset=iso-8859-1,则不会这样做

";

@斯蒂芬考夫曼-你不是发送电子邮件的人,而是点击链接的客户。这意味着你不知道电子邮件客户端是如何设置的。您不知道它的头是如何设置的。这对一些电子邮件客户有效,而对其他客户无效。

谢谢@stephenkaufman!

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

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

是的,在iOS中添加简单的粗体、斜体标签确实非常有效。

在iOS上,我不能用

mybase64发送正确的电子邮件-在Gmail中,我在邮件中看到base64。

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

我是这样工作的:

var newLine = escape("

");

var body ="Hello" + newLine +"World";

输出为:

Hello

World

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

Shipping Request

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

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

href='mailto:me@me.com?subject=Me&body=ME'

…你可以尝试:

href='mailto:me@me.com?subject=Me&body=%3cb%3eME%3c%2fb%3e'

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

function OpenOutlookNewEmail()

{

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 ="Me";

mailItem.To ="me@me.com";

mailItem.HTMLBody ="ME";

mailItem.display(0);

}

catch (e)

{

alert(e);

// act on any error that you get

}

}

email

我正在努力理解这是如何回答作战问题的。

那是因为根本没有。几乎想投反对票。

它没有。它只是一堆从第三方网站复制/粘贴的无关紧要的相关内容,甚至连自己的字符编码都不能正确。

事实上,某人(或某物)投了反对票,这是我最关心的。

对于那些仍在挣扎的人,我添加了一个关于如何将此应用于海报的确切问题的注释。我也在本地测试过,它确实有效。然而,不同的电子邮件客户机如何处理这件事是另一回事,可能取决于本地设置。我不应该认为这是显而易见的。

URL编码不起作用。在IE 9中用Outlook邮件客户端测试。

这是在你的身体中获得特殊字符的正确方法,但它不会像对待HTML那样对待内容。你的身体里只会有HTML标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值