使用Node(Express)发送邮件
Node(Express)能创建一个服务端(器),但是创建一个邮件服务器是很困难的,处理邮件与处理传入的请求和响应完全不同。我们基本上没有办法创建自己的邮件服务器,所以一般使用第三方的邮件服务器。
第三方邮件服务器:MailChimp、SendGrid 等
下载 Nodemailer
需要利用 nodemailer 发送邮件:
npm install --save nodemailer
使用 SendGrid 作为第三方邮件服务器
使用 SendGrid 作为第三方邮件服务器还需要安装nodemailer-sendgrid-transport来与之交互:
npm install --save nodemailer-sendgrid-transport
注意:注册 SendGrid 账号和开启后续服务均需要挂 VPN,连接外网。
初始化传输器
app.js
const nodemailer = require("nodemailer"); // 引入nodemailer
const sendgridTransport = require("nodemailer-sendgrid-transport"); // 引入nodemailer-sendgrid-transport
const transporter = nodemailer.createTransport(
sendgridTransport({
auth: {
api_user: "fxh", // SendGrid用户名
api_key: "dsafdsfdsf", // SendGrid获取的密钥
},
})
); // 设置node传输邮件的方式,并通过sendgridTransport执行(这样可以用nodemailer配置SendGrid)
发送邮件
通过sendMail()发送邮件,它返回一个 Promise:
transporter.sendMail({
to: userEmail, // 邮件发送的地址(用户的邮件地址)
from: "shop@node-cm.com", // 发出邮件的地址
subject: "Signup succeeded", // 邮件主题
html: "<h1>You successfully signed up!</h1>", // 邮件内容
});