案例:用户注册成功提交表单后,您需要发送确认电子邮件,或者有活动的时候需要发送邮件告诉客户。
那么就可以使用Nodemailer可以在 nodejs 本身中免费完成,Nodemailer是MIT许可协议。
一、首先,安装 Node Mailer,直接使用npm安装
npm install nodemailer
二、然后引入使用
require('nodemailer')
三、创建一个传输器
Transporter 是能够发送电子邮件的对象。它包含有关连接的数据。
我正在使用 gmail 发送电子邮件,这就是传输器查找我的方式:
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: [email protected],
pass: password
}
});
四、我们还需要一个包含要发送的消息的对象
const mailOptions = {
from: 'The Idea project',
to: toAddress,
subject: 'My first Email!!!',
text: "This is my first email. I am so excited!"
};
您可以使用 html 键而不是文本发送 html 电子邮件。
五、接下来,要实际发送电子邮件,请使用transporter.sendMail(mailOptions, callback)
完整代码示例:
"use strict";
const nodemailer = require("nodemailer");
async function main() {
let testAccount = await nodemailer.createTestAccount();
// 使用默认的 SMTP 传输创建可重用的传输器对象
let transporter = nodemailer.createTransport({
host: "smtp.ethereal.email",
port: 587,
secure: false,
auth: {
user: testAccount.user, // 测试用户
pass: testAccount.pass, // 测试密码
},
});
//使用定义的传输对象发送邮件
let info = await transporter.sendMail({
from: '"Fred Foo " ', // 发件地址
to: "[email protected], [email protected]", // 收件人
subject: "Hello ✔", // 主题
text: "Hello world?", // 标题
html: "Hello world?", // 内容
});
console.log("发送成功: %s", info.messageId);
// 发送成功:
// 预览仅在通过 Ethereal 帐户发送时可用
console.log("预览地址: %s", nodemailer.getTestMessageUrl(info));
// 预览地址: https://ethereal.email/message/WaQKMgKddxQDoou...
}
main().catch(console.error);