问题描述

我没有必要搞砸 mailto 链接很多。但是,如果可能,我现在需要在 mailto 的正文中添加一个链接。

有没有办法添加链接或将打开的电子邮件更改为 html 电子邮件与文本电子邮件?

就像是:

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

最佳解决方案

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

不过即使您使用纯文本,一些现代邮件客户端也可能会将 URL 呈现为可点击的链接。

次佳解决方案

添加完整的链接:

 "http://"

到一行的开始,最体面的电子邮件客户端将在发送之前将 auto-link 或接收到的另一端。

对于由于所有参数而可能包装的真正长的 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 链接不会创建 HTML 电子邮件,这是不可能的。

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

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛