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 拖拽实例代码
Sep 21 Javascript
微信小程序 实战小程序实例
Oct 08 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
Oct 24 Javascript
jQuery插件WebUploader实现文件上传
Nov 07 Javascript
利用vue写todolist单页应用
Dec 15 Javascript
微信小程序url与token设置详解
Sep 26 Javascript
JS动画定时器知识总结
Mar 23 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
vue中typescript装饰器的使用方法超实用教程
Jun 17 Javascript
javascript实现滚动条效果
Mar 24 Javascript
写一个Vue loading 插件
Nov 09 Javascript
浅谈es6中的元编程
Dec 01 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
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
同学会主持词
2014/03/18 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
10的分与合教学反思
2014/04/30 职场文书
我读书我快乐演讲稿
2014/05/07 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server