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 相关文章推荐
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
Aug 08 Javascript
实现51Map地图接口(示例代码)
Nov 22 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
Jan 27 Javascript
javascript每日必学之循环
Feb 19 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
Mar 04 Javascript
关于微信中a链接无法跳转问题
Aug 02 Javascript
jQuery中的AjaxSubmit使用讲解
Sep 25 Javascript
利用原生JS与jQuery实现数字线性变化的动画
Feb 24 Javascript
用jQuery实现圆点图片轮播效果
Mar 19 Javascript
Koa2微信公众号开发之消息管理
May 16 Javascript
微信小程序实现留言板功能
Nov 02 Javascript
使用post方法实现json往返传输数据的方法
Mar 30 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 基本语法格式
2009/12/15 PHP
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
php调用KyotoTycoon简单实例
2015/04/02 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
javascript onmouseout 解决办法
2010/07/17 Javascript
基于jquery的表格排序
2010/09/11 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
JS继承用法实例分析
2015/02/05 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
2016/10/01 Javascript
canvas实现刮刮卡效果
2017/03/14 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
java直接调用python脚本的例子
2014/02/16 Python
Python中的rjust()方法使用详解
2015/05/19 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
用Python解决x的n次方问题
2019/02/08 Python
标准毕业生自荐信范文
2013/11/04 职场文书
公司合作协议书范本
2014/04/18 职场文书
交通安全温馨提示语
2015/07/14 职场文书
学子宴致辞大全
2015/07/27 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js