SmtpJS发送邮件教程
SmtpJS
- 什么是SmtpJS?
- 开通POP3/SMTP服务
- 导入插件
- 发送邮件
- 加密SMTP
- 含附件
什么是SmtpJS?
SmtpJS是一款通过前端js代码发送邮件的插件,导入插件后,只需简单几行代码就能实现邮件发送。当然了,由于是前端,其安全性自然比后端javamail封装等弱一点,不过SmtpJS十分简易方便,强力安利。
开通POP3/SMTP服务
在介绍SmtpJS使用前,我们需要先准备一个开通POP3/SMTP服务的邮箱,如果已有,可以跳过此步骤。 我们以QQ邮箱为例,登录QQ邮箱后,设置->账户
找到POP3/SMTP服务点击开启
完成相应密保验证
之后获取对应授权码。
至此你的QQ邮箱就开通了POP3/SMTP服务。
导入插件
去到SmtpJS官网下载smtp.js 我也上传到了github
如果不想下载的话也可以用官网地址,不过还是推荐前者。
<script src="https://smtpjs.com/v3/smtp.js">
</script>
发送邮件
参数说明
参数 |
说明 |
---|---|
Host |
你所用邮箱的smtp地址 |
Username |
你的邮箱用户名(如xxx@qq.com) |
Password |
你的邮箱密码(之前开通服务的授权码) |
To |
收件人邮箱地址 |
From |
发件人邮箱地址 |
Subject |
邮件主题 |
Body |
邮件内容 |
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>发送邮件测试</title>
<%
pageContext.setAttribute("APP_PATH",request.getContextPath());
%>
<script type="text/javascript" src="${APP_PATH}/static/js/smtp.js"></script>
</head>
<body>
<script type="text/javascript">
Email.send({
Host : "smtp.yourisp.com",
Username : "username",
Password : "password",
To : 'them@website.com',
From : "you@isp.com",
Subject : "This is the subject",
Body : "And this is the body"
}).then(
message => alert(message)
);
</script>
</body>
</html>
至此我们就成功的发送了邮件!(。・∀・)ノ
附上各邮箱的端口及smtp地址:
邮箱 |
pop地址 |
smtp地址 |
端口 |
---|---|---|---|
188 邮箱 |
pop3.188.com |
smtp.188.com |
25 |
163 邮箱 |
pop3.163.com |
smtp.163.com |
25 |
126 邮箱 |
pop3.126.com |
smtp.126.com |
25 |
netease 邮箱 |
pop.netease.com |
smtp.netease.com |
25 |
yeah 邮箱 |
pop.yeah.net |
smtp.yeah.net |
25 |
QQ 邮箱 |
pop.qq.com |
smtp.qq.com |
465或587 |
网易企业邮箱 |
pop3.163.com |
smtp.qiye.163.com |
994 |
腾讯企业邮箱 |
pop.qq.com |
smtp.exmail.qq.com |
25 |
加密SMTP
在官网点击Encrypt your SMTP Credentials
仍以QQ邮箱为例,点击Generate security token
然后生成了一个密钥
替换成你的密钥即可
Email.send({
SecureToken : "密钥",
To : 'them@website.com',
From : "you@isp.com",
Subject : "This is the subject",
Body : "And this is the body"
}).then(
message => alert(message)
);
含附件
即多一个Attachments参数
Email.send({
SecureToken : "密钥",
To : 'them@website.com',
From : "you@isp.com",
Subject : "This is the subject",
Body : "And this is the body",
Attachments : [
{
name : "smtpjs.png",
path : "https://networkprogramming.files.wordpress.com/2017/11/smtpjs.png"
}]
}).then(
message => alert(message)
);
原创不易,请勿转载(
本不富裕的访问量雪上加霜) 博主首页:https://blog.csdn.net/qq_45034708
- 设计模式学习(三): 装饰者模式 (附C#实现)
- 浅谈非PE的攻击技巧
- hbase源码系列(十)HLog与日志恢复
- hbase源码系列(六)HMaster启动过程
- 如何写好一篇漏洞报告(国外篇)
- hbase源码系列(八)从Snapshot恢复表
- hbase源码系列(七)Snapshot的过程
- CVE-2017-3085:Adobe Flash泄漏Windows用户凭证
- hbase源码系列(九)StoreFile存储格式
- 如何确定恶意软件是否在自己的电脑中执行过?
- Carbondata源码系列(二)文件格式详解
- 挖洞经验 | 记一次针对Twitter(Periscope)API 的有趣挖洞经历
- 设计模式学习(二): 观察者模式 (C#)
- Carbondata源码系列(一)文件生成过程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS7 Docker私有仓库搭建及删除镜像 【转】
- spring的自定义标签都不会?你可能只学到了spring的皮毛
- 面试官:spring的BeanFatory和FactoryBean区别
- Saltstack_使用指南06_远程执行-指定目标
- 什么是缓存击穿、雪崩、穿透
- 如何卸载CDH7.1.1
- java8 stream的这些开发技巧,你值得好好收藏
- 面试官:mybatis中#{ }和${ }的区别
- python 学习笔记(9)——Python 正则表达式
- 万能的BeanPostProcessor是如何让spring无限扩展的?
- spring解决循环依赖为什么要用三级缓存?
- 深入剖析ThreadLocal
- spring事务的这10种坑,你稍不注意可能就会踩中!!!
- 面试前看了这篇spring事务的文章,让我多要了2k的工资
- 面试时被问到单例模式,怎么回答才能让面试官眼前一亮?