mailto标签来调用邮箱客户端
2024-10-21 13:30:52
最近项目需要使用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"
"Progid"="outlook.URL.mailto"
或者
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\mailto\UserChoice]
"Progid"="foxmail.URL.mailto"
"Progid"="foxmail.URL.mailto"
最新文章
- BZOJ2763 [JLOI2011]飞行路线(SPFA + DP)
- c# 正则提取小例子
- BSON 1.0版本规范(翻译)
- php--validate表单验证实例
- C++ 11中的右值引用以及std::move
- 3DSlicer源代码编译过程vs2008+windows xp [转]
- Windows添加在此处打开命令CMD
- 命名管道FIFO
- 关于Struts2中的值栈与OGNL表达式
- CIFS与NFS(转)
- 【Jade】
- spin_count
- /proc/sys/net/ipv4/ip_forward
- Cortex-M3寄存器等基础知识
- astah* professional 6.9.0
- octomap中3d-rrt路径规划
- PHPCMS V9表单向导调用及分页
- 结对编程--四则运算(Java)萧英杰 夏浚杰
- 【转】Java finally语句到底是在return之前还是之后执行?
- 56.关于vue项目的seo问题