目录
5.1 "Greeting never received" 错误
1. 简介
Nodemailer是Node.js平台上最流行的电子邮件发送库,它提供了一个简单而强大的解决方案,支持Unicode内容、HTML内容、附件、图片嵌入等功能。
2. 安装
首先需要安装Nodemailer包:
npm install nodemailer
3. 基本配置
3.1 创建传输器
首先需要创建一个传输器(transporter),这是发送邮件的核心配置:
const nodemailer = require("nodemailer");
const transporter = nodemailer.createTransport({
host: "smtp.example.com", // SMTP服务器地址
port: 465, // SMTP端口
secure: true, // 使用SSL/TLS
auth: {
user: "your-email@example.com", // 邮箱账号
pass: "your-password" // 邮箱密码或应用专用密码
}
});
3.2 配置说明
host: SMTP服务器地址
port: 常用端口
- 465 (SSL/TLS)
- 587 (STARTTLS)
secure:
- true: 使用465端口
- false: 使用其他端口
auth: 认证信息
4. 发送邮件
4.1 基本发送示例
async function sendEmail(to, subject, content) {
const mailOptions = {
from: '"发送者名称" <sender@example.com>', // 发件人
to: to, // 收件人
subject: subject, // 主题
text: content, // 纯文本内容
html: `<b>${content}</b>` // HTML内容
};
try {
const info = await transporter.sendMail(mailOptions);
console.log("邮件发送成功:", info.messageId);
return info;
} catch (error) {
console.error("邮件发送失败:", error);
throw error;
}
}
4.2 发送验证码示例
以下是一个完整的发送验证码的实现:
const nodemailer = require("nodemailer");
const transporter = nodemailer.createTransport({
host: MAIL_HOST,
port: MAIL_PORT,
secure: true,
auth: {
user: MAIL_USER,
pass: MAIL_PWD,
}
});
const sendMail = async (to, subject, html) => {
const mailOptions = {
from: MAIL_USER, // 发送者
to, // 接收者
subject, // 主题
html, // HTML内容
};
return await transporter.sendMail(mailOptions);
};</