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 相关文章推荐
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 Javascript
js改变文章字体大小的实例代码
Nov 27 Javascript
bootstrap data与jquery .data
Jul 07 Javascript
BootStrap响应式导航条实例介绍
May 06 Javascript
jQuery实现的简单分页示例
Jun 01 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
Jun 03 Javascript
js遍历json的key和value的实例
Jan 22 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
Jan 15 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
Aug 10 Javascript
vue input标签通用指令校验的实现
Nov 05 Javascript
Js图片点击切换轮播实现代码
Jul 27 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
Sep 04 Javascript
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
关于在php.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
php中{}大括号是什么意思
2013/12/01 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
php构造函数的继承方法
2015/02/09 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
Yii核心验证器api详解
2016/11/23 PHP
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
如何使用Python发送HTML格式的邮件
2020/02/11 Python
成人毕业生自我鉴定
2013/10/18 职场文书
单位提档介绍信
2014/01/17 职场文书
数控专业自荐书范文
2014/03/16 职场文书
机械工程师岗位职责
2014/06/16 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
学生检讨书范文
2014/10/30 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
实用求职信模板范文
2019/05/13 职场文书
java开发双人五子棋游戏
2022/05/06 Java/Android