問題描述
我沒有必要搞砸 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。