問題描述

我沒有必要搞砸 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="">Click</a>
    </body>
</html>

第四種方案

據我所知,由於連結需要 HTML,mailto 連結不會建立 HTML 電子郵件,這是不可能的。

這可能是為了安全,因為您可以新增 javascript 或 iframe 到此連結,電子郵件客戶端可能會為終端使用者開啟漏洞。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇