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 中文字符串处理额外注意事项
Nov 15 Javascript
javascript 模式设计之工厂模式学习心得
Apr 27 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
Feb 25 Javascript
巧用局部变量提升javascript性能
Feb 24 Javascript
jQuery实现鼠标点击弹出渐变层的方法
Jul 09 Javascript
javascript新闻跑马灯实例代码
Jul 29 Javascript
jQuery基础_入门必看知识点
Jul 04 Javascript
JQuery中解决重复动画的方法
Oct 17 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
关于iframe跨域POST提交的方法示例
Jan 15 Javascript
详解webpack4多入口、多页面项目构建案例
May 25 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
Sep 06 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
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
javascript返回顶部效果(自写代码)
2013/01/06 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
JavaScript的Vue.js库入门学习教程
2016/05/23 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
vue实现循环切换动画
2018/10/17 Javascript
puppeteer库入门初探
2019/01/09 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
简析Python的闭包和装饰器
2016/02/26 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
python cookie反爬处理的实现
2020/11/01 Python
2014年会策划方案
2014/05/11 职场文书
销售员岗位职责
2014/06/09 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
黄山导游词
2015/01/31 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
实习介绍信范文
2015/05/05 职场文书
困难补助申请报告
2015/05/19 职场文书
行政申诉状范文
2015/05/20 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js