nodejs 发送qq邮件 nodemailer

一世执手 提交于 2020-08-11 09:30:20

官网

https://nodemailer.com/about/

https://www.cnblogs.com/jackson-yqj/p/10154296.html

 

获取qq邮箱授权码, 需要使用手机发送短信

 

 

 

 

发送成功

 

 

 

安装, 这里使用yarn安装时出现了错误, 换成npm就ok了

cnpm i nodemailer -D

 

官方案例

 

 

发送qq邮件

 

授权码十分重要, 主要保护好隐私

发送多个邮箱时, 使用的是字符串拼接, 而不是数组

可以发送html, 但是图片的话没有测试

https://www.jianshu.com/p/04e596da7d33

const nodemailer = require("nodemailer");
const _user = '504595380@qq.com'
const _pwd = 'xxx'

async function main() {
  let transporter = nodemailer.createTransport({
    host: "smtp.qq.com",
    port: 465,
    secure: true, // true for 465, false for other ports
    auth: {
      user: _user, // generated ethereal user
      pass: _pwd, // generated ethereal password
    },
  });
  let info = await transporter.sendMail({
    from: '504595380@qq.com', // sender address
    // to: "bar@example.com, baz@example.com", // list of receivers
    to: "504595380@qq.com", // list of receivers
    subject: "Hello ✔", // Subject line
    text: "Hello world?", // plain text body
    html: "<b>Hello world?</b>", // html body
  });
  console.log("Message sent: %s", info.messageId);
  console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
}

main().catch(console.error);

 

案例

const nodemailer = require('nodemailer');

// 开启一个 SMTP 连接池
let transporter = nodemailer.createTransport({
    host: 'smtp.qq.com',
    secureConnection: true, // use SSL
    port: 465,
    secure: true, // secure:true for port 465, secure:false for port 587
    auth: {
        user: '80583600@qq.com',
        pass: 'xxx' // QQ邮箱需要使用授权码
    }
});

// 设置邮件内容(谁发送什么给谁)
let mailOptions = {
    from: '"白小明 👻" <80583600@qq.com>', // 发件人
    to: 'xx1@qq.com, xx2@qq.com', // 收件人
    subject: 'Hello ✔', // 主题
    text: '这是一封来自 Node.js 的测试邮件', // plain text body
    html: '<b>这是一封来自 Node.js 的测试邮件</b>', // html body
    // 下面是发送附件,不需要就注释掉
    attachments: [{
            filename: 'test.md',
            path: './test.md'
        },
        {
            filename: 'content',
            content: '发送内容'
        }
    ]
};

// 使用先前创建的传输器的 sendMail 方法传递消息对象
transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        return console.log(error);
    }
    console.log(`Message: ${info.messageId}`);
    console.log(`sent: ${info.response}`);
});

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!