JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端


Posted in Javascript onOctober 08, 2016

背景:

想在自己的网站中有这样一个设计:

JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端

用户点击提交按钮之后,就会打开本地邮件客户端,并自动将他在输入框中输入的内容作为邮件的内容,像下面这样:

JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端

mailto可以帮助实现这个功能。

简介:

mailto是一种电子邮件协议,通过该协议可以创建一个指向电子邮件地址的超级链接,通过该链接可以在Internet中发送电子邮件。就像在地址栏输入一个网址会打开一个网页一样,输入mailto:name@email.com,就会打开本地邮件客户端,并将邮件发送给name@email.com。

在HTML中使用mailto

 1.使用方式:

一种方式是将mailto链接写在a标签的href属性中:

<a href="mailto:name@email.com">Email</a>

另一种是写在form的action属性中

<form name='sendmail' action='mailto:name@email.com'>
 <input name='name' type='text'>
 <input name='subject' type='text' >
 <input name='email' type='text' >
 <input name='number' type='text' >
 <input name='body' type='text' >
</form>

2.传递参数:

mailto支持以下几种参数:

JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端

这两种方式都可以传递参数,但是效果不太一样。

如果使用a标签的话,只能在mailto链接中添加参数:

<a href="mailto:to?subject=subject&cc=cc&body=body">send mail</a>

第一个参数后面添加?,其他参数之间用&连接。

效果是这样的:

JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端

如果用form的话,在mailto链接中传递的参数和效果与使用a的相同,他的特别之处是他会把input中的name属性的值和其输入内容也传递进去:

JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端

这种方式不需要用JS获取输入框中的内容,直接可以将用户输入的内容更新到邮件内容区,但是有一个明显的缺点,就是它传进去的格式很不美观也很不方便。几乎没有人会用这样的方式发送邮件,用户还需要自己删掉等号,自己调整样式。

所以我选择用a标签来打开mailto链接,通过JS将内容格式化之后作为参数传递给a标签。

<p class="title">CONTACT ME</p>
  <ul class="email">
   <li><input type="text" name="name" placeholder="Name"></li>
   <li><input type="text" name="email" placeholder="Email Address"></li>
   <li><input type="text" name="number" placeholder="Phone Number"></li>
   <li class="message"><textarea name="message" placeholder="Message"></textarea> </li>
   <button class="btn btn-define">Submit</button>
   <a href="mailto" id="send"></a>
  </ul>

创建一个隐形的a标签,当用户输入好内容点击按钮之后,js会取得输入框中的内容,并且格式化后传递给a,然后模拟点击a标签。

JQuery代码:

function sendEmail(){
 var name=$("[name='name']").val(),
  email=$("[name='email']").val(),
  number=$("[name='number']").val(),
  message=$("[name='message']").val(),
  body="My Name is: "+name+"%0a%0d"
   +"My Email Address is: "+email+"%0a%0d"
   +"My Phone Number is: "+number+"%0a%0d"
   +"Message:"+"%0a%0d"+message;
 $("#send").attr("href","mailto:mamengyi1121@163.com?body="+body);
 document.getElementById("send").click();
}
$(document).load(
 $(".btn").click(sendEmail);
);

其中的%0d%0a是回车符合换行符,我的邮件客户端不能解析HTML格式的字符,(传递<br>无法实现换行),传递UTL编码则可以实现。

Javascript 相关文章推荐
JS Array对象入门分析
Oct 30 Javascript
Javascript结合css实现网页换肤功能
Nov 02 Javascript
基于JQuery框架的AJAX实例代码
Nov 03 Javascript
Jquery 常用方法经典总结
Jan 28 Javascript
使用jQuery插件创建常规模态窗口登陆效果
Aug 23 Javascript
Three.js学习之文字形状及自定义形状
Aug 01 Javascript
BootStrap Table对前台页面表格的支持实例讲解
Dec 22 Javascript
微信小程序 蓝牙的实现实例代码
Jun 27 Javascript
详解vue项目的构建,打包,发布全过程
Nov 23 Javascript
element-ui 上传图片后清空图片显示的实例
Sep 04 Javascript
AngularJS $http post 传递参数数据的方法
Oct 09 Javascript
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
Javascript单例模式的介绍和实例
Oct 08 #Javascript
jquery把int类型转换成字符串类型的方法
Oct 07 #Javascript
jquery判断类型是不是number类型的实例代码
Oct 07 #Javascript
js判断是否为空和typeof的用法(详解)
Oct 07 #Javascript
浅谈js的ajax的异步和同步请求的问题
Oct 07 #Javascript
jquery删除table当前行的实例代码
Oct 07 #Javascript
JS控制FileUpload的上传文件类型实例代码
Oct 07 #Javascript
You might like
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
PHP文件操作方法汇总
2015/07/01 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
javascript URL锚点取值方法
2009/02/25 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
老生常谈进程线程协程那些事儿
2017/07/24 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
django数据库自动重连的方法实例
2019/07/21 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
python实现简单井字棋游戏
2020/03/04 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
Python中return函数返回值实例用法
2020/11/19 Python
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
UNIX文件名称有什么规定
2013/03/25 面试题
四年级科学教学反思
2014/02/10 职场文书
平面设计求职信
2014/03/10 职场文书
出国留学单位推荐信
2015/03/26 职场文书
文艺委员竞选稿
2015/11/19 职场文书
导游词之岳阳楼
2019/09/25 职场文书
python urllib库的使用详解
2021/04/13 Python
Python Pandas常用函数方法总结
2021/06/15 Python
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库