最近项目需要使用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"

最新文章

  1. BZOJ2763 [JLOI2011]飞行路线(SPFA + DP)
  2. c# 正则提取小例子
  3. BSON 1.0版本规范(翻译)
  4. php--validate表单验证实例
  5. C++ 11中的右值引用以及std::move
  6. 3DSlicer源代码编译过程vs2008+windows xp [转]
  7. Windows添加在此处打开命令CMD
  8. 命名管道FIFO
  9. 关于Struts2中的值栈与OGNL表达式
  10. CIFS与NFS(转)
  11. 【Jade】
  12. spin_count
  13. /proc/sys/net/ipv4/ip_forward
  14. Cortex-M3寄存器等基础知识
  15. astah* professional 6.9.0
  16. octomap中3d-rrt路径规划
  17. PHPCMS V9表单向导调用及分页
  18. 结对编程--四则运算(Java)萧英杰 夏浚杰
  19. 【转】Java finally语句到底是在return之前还是之后执行?
  20. 56.关于vue项目的seo问题

热门文章

  1. 微信小程序中的事件绑定
  2. 配置MySQL,使其与PyCharm相关联
  3. CVE-2019-2725修复(删包)
  4. conda创建、删除、重命名环境
  5. k8s ingres 的安装与使用
  6. Word 查找替换高级玩法系列之 -- 通配符大全A篇
  7. Python06之分支和循环1(三目运算符)
  8. C++_自引用指针this
  9. 修改织梦DedeCMS投票漏洞
  10. 【Leetcode】746. Min Cost Climbing Stairs