使用 nodejs 发送邮件

一直打算用 nodejs 做一些服务类功能,比如说定时抓取资料什么的,当拿到数据后,就需要进行通知我们。

比较简单的方案是,之际准备一个账号,用这个账号给自己发邮件。

nodejs 实现比较简单,主要依赖 nodemailer 这个包。

大概例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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,在正文中可以直接引用。