使用 nodejs 发送邮件
· 阅读需 2 分钟
一直打算用 nodejs 做一些服务类功能,比如说定时抓取资料什么的,当拿到数据后,就需要进行通知我们。
比较简单的方案是,之际准备一个账号,用这个账号给自己发邮件。
nodejs 实现比较简单,主要依赖 nodemailer
这个包。
大概例子如下:
const nodemailer = require('nodemailer')
const mailTransport = nodemailer.createTransport({
host: 'smtp.qq.com',
secureConnection: true,
auth: {
user: 'abcd@foxmail.com',
pass: '123456'
}
})
const options = {
from: '"yukapril" <fake@qq.com>',
to: '"JasonLee" <someone@163.com>',
cc: ''
bcc: ''
subject: 'test',
text: 'test text',
html: '<h1>test test</h1>'
};
mailTransport.sendMail(options, (err, msg) => {
if (err) {
console.log(err)
return
}
console.log(msg)
})
其中:
mailTransport.host
邮件 smtp 服务器地址
mailTransport.secureConnection
表示使用 SSL 方式连接
mailTransport.auth
邮箱账号密码,如果是网易 QQ 等邮箱,可能需要使用授权码替代密码
options.from
对方显示的发件人(可以和上面的账号不同)
options.to
收件人
options.cc
抄送
options.bcc
密送
支持多种附件,如果是图片附件,可以设置sid,在正文中可以直接引用。