Nodejs 使用 nodemailer 发送邮件
# 安装
npm install nodemailer --save
1
# 基本使用
// 这里举简单例子,也可以封装成service来调用
// 引入nodemailer
const nodemailer = require('nodemailer');
// 封装发送者信息
const transporter = nodemailer.createTransport({
host: 'smtp.qq.com', // 调用qq服务器
secureConnection: true, // 启动SSL
port: 465, // 端口就是465
auth: {
user: 'mrcdh@qq.com', // 账号
pass: 'xxxxxxxxxx', // 授权码,
},
});
// 邮件参数及内容
const mailOptions = {
from: 'mrcdh@qq.com', // 发送者,与上面的user一致
// 可以指定发送者的名字,和发送邮箱用空格隔开
//from: 'mrcdh mrcdh@qq.com',
to: 'xxxx@xxx.com', // 接收者,可以同时发送多个,以逗号隔开
subject: '测试的邮件', // 标题
// text: '测试内容', // 文本
html: '<h2>测试一下:</h2><a href="https://baidu.com">测试链接</a>',
};
// 调用函数,发送邮件
await transporter.sendMail(mailOptions, function(err, info) {
if (err) {
console.log(err);
return;
}
console.log(info);
});
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
29
30
31
32
33
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
29
30
31
32
33
# 发送带附件的邮件
const mailOptions = {
from:'mrcdh@qq.com',
to: 'xxxxxxxxx@163.com',
subject: 'hello',
html: "<img src='cid:01' style='width:200px;height:auto'>",
attachments: [{
"filename":"好歌.mp3",
"path":"./haoge.mp3"
},{
"filename":"test.txt",
"content":"测试可写的文件"
},{
"filename":"test.JPG",
"path":"./test.JPG",
"cid":"01" // 插在邮件正文中的图片
}]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# attachments
附件参数说明
- 简单的添加一个附件,为一个mp4
{
"filename":"你懂的.mp4",
"path":"./video.mp4"
}
1
2
3
4
2
3
4
- 内容可修改的附件
{
"filename":"test.txt",
"content":"我写在了附件的内容里"
}
1
2
3
4
2
3
4
- 插入邮件正文中的图片
{
"filename":"test.png",
"path":"./test.png",
"cid":"01"
}
1
2
3
4
5
2
3
4
5
这个图片不会出现在邮件的附件列表里,而会出现在邮件的正文里,cid
是为该资源编的号,其值应为string
类型,使用方式是将img
图片的src
属性指向'cid:资源编号'
。
上次更新: 2023/09/22, 16:54:32