使用 Node.js 实现发送邮件功能
以下是通过 Nodemailer 实现邮件发送的教程。
1. 安装 Nodemailer
使用以下命令安装 Nodemailer 模块:
npm install nodemailer
2. 基本代码示例
// 引入 Nodemailer 模块
const nodemailer = require('nodemailer');
// 创建邮件传输对象
const transporter = nodemailer.createTransport({
host: 'smtp.example.com', // 邮件服务器地址,例如:Gmail 是 smtp.gmail.com
port: 587, // SMTP 端口,常用端口是 587 或 465
secure: false, // 使用安全连接 (TLS),如果端口是 465 则为 true
auth: {
user: 'your_email@example.com', // 邮箱地址
pass: 'your_password' // 邮箱密码或应用专用密码
}
});
// 定义邮件内容
const mailOptions = {
from: '"发件人名称" <your_email@example.com>', // 发件人
to: 'recipient@example.com', // 收件人,可以是多个,用逗号分隔
subject: '来自 Node.js 的问候', // 邮件主题
text: '这是一封纯文本邮件。', // 纯文本内容
html: '<b>这是一封 HTML 格式的邮件。</b>' // HTML 内容
};
// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.error('发送失败:', error);
}
console.log('邮件发送成功:', info.response);
});
3. 注意事项
- 邮箱服务配置: 不同邮箱服务商的 SMTP 配置不同。例如:
- Gmail:
smtp.gmail.com
,端口587
或465
- Outlook/Hotmail:
smtp.office365.com
,端口587
- Yahoo:
smtp.mail.yahoo.com
,端口465
- Gmail:
- 安全性:
- 如果使用 Gmail,需要启用“应用专用密码”并关闭“两步验证”。
- 确保认证信息(如密码)保存在安全的地方,例如环境变量。
- 避免垃圾邮件:
- 确保
from
地址与认证邮箱一致。 - 避免频繁发送测试邮件。
- 确保
4. 高级功能 (可选)
- 添加附件:
使用attachments
字段添加文件,例如:attachments: [ { filename: 'example.txt', path: './example.txt' } ]
- 邮件模板:
使用 HTML 模板或第三方库生成动态内容。
完成以上步骤后,就可通过 Node.js 成功发送邮件!