使用 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. 注意事项

  1. 邮箱服务配置: 不同邮箱服务商的 SMTP 配置不同。例如:
    • Gmail: smtp.gmail.com,端口 587465
    • Outlook/Hotmail: smtp.office365.com,端口 587
    • Yahoo: smtp.mail.yahoo.com,端口 465
  2. 安全性:
    • 如果使用 Gmail,需要启用“应用专用密码”并关闭“两步验证”。
    • 确保认证信息(如密码)保存在安全的地方,例如环境变量。
  3. 避免垃圾邮件:
    • 确保 from 地址与认证邮箱一致。
    • 避免频繁发送测试邮件。

4. 高级功能 (可选)

  • 添加附件:
    使用 attachments 字段添加文件,例如: attachments: [ { filename: 'example.txt', path: './example.txt' } ]
  • 邮件模板:
    使用 HTML 模板或第三方库生成动态内容。

完成以上步骤后,就可通过 Node.js 成功发送邮件!