mailto標簽來調用郵箱客戶端


最近項目需要使用mailto標簽來調用客戶端,並且把郵件模板填到客戶端。

mailto 的用法:

a標簽直接調用:

 

<a href="mailto:example@qq.com?cc=example2@qq.com&subject=有未結算的單據&body=您有未付清的賬單">發送郵件</a>

js調用:

sendEmial(){
            var subject = "余額通知";
            var to = "test@qq.com";
            var cc = "bc.@126.com";
            var body = "你好,您的余額不足1 %0d%0a換行";
            var url="";
            url="mailto:"+to+"?cc="+cc+"&subject="+subject+"&body="+body;
            document.location.href=url;
}

使用mailto亂碼與mailto無關,所以解決方法從客戶端來做。

我們的項目只要求支持foxmail和outlook。我們直接按上面的寫法,outlook正常,foxmail亂碼。

經過測試發現foxmail支持GBK編碼,所有從后台直接把內容轉換成GBK:如:URLEncoder.encode("內容","gbk");則內容轉換成GBK:%b1%ea%cc%e2;把它直接賦給body,foxmail亂碼解決。

此時再看outlook,轉換成GBK后,outlook亂碼了。解決辦法:

 

打開outlook——工具——選項——郵件格式——國際選項——Internet協議(對mailto:協議啟用UTF-8支持)復選框去除選中——點擊確定就OK了。(outlook中文版默認是選中的,去除選中即可)
這樣亂碼問題就解決了。不過對於outlook可能得挨個設置了。
總結:針對不同的情況,我們去設置不同字符編碼即可。
附:更改window默認郵件客戶端,修改注冊表:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\mailto\UserChoice]
"Progid"="outlook.URL.mailto"
或者
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\mailto\UserChoice]
"Progid"="foxmail.URL.mailto"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM