SmtpJS发送邮件教程

SmtpJS

什么是SmtpJS?

SmtpJS是一款通过前端js代码发送邮件的插件,导入插件后,只需简单几行代码就能实现邮件发送。当然了,由于是前端,其安全性自然比后端javamail封装等弱一点,不过SmtpJS十分简易方便,强力安利。

开通POP3/SMTP服务

在介绍SmtpJS使用前,我们需要先准备一个开通POP3/SMTP服务的邮箱,如果已有,可以跳过此步骤。
我们以QQ邮箱为例,登录QQ邮箱后,设置->账户
SmtpJS发送邮件教程插图
找到POP3/SMTP服务点击开启
SmtpJS发送邮件教程插图(1)
完成相应密保验证
SmtpJS发送邮件教程插图(2)
之后获取对应授权码。
SmtpJS发送邮件教程插图(3)
至此你的QQ邮箱就开通了POP3/SMTP服务。

导入插件

去到SmtpJS官网下载smtp.js
我也上传到了github
SmtpJS发送邮件教程插图(4)
如果不想下载的话也可以用官网地址,不过还是推荐前者。

<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>

SmtpJS发送邮件教程插图(5)
至此我们就成功的发送了邮件!(。・∀・)ノ

附上各邮箱的端口及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
SmtpJS发送邮件教程插图(6)
仍以QQ邮箱为例,点击Generate security token
SmtpJS发送邮件教程插图(7)
然后生成了一个密钥
SmtpJS发送邮件教程插图(8)
替换成你的密钥即可

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)
);

你的点赞将会是我最大的动力

没有账号? 忘记密码?

社交账号快速登录