特点
CabloyJS内置了邮件发送模块a-mail
,对当前最流行的nodemailer进行了封装,具有以下特点:
- 更简洁的配置和Api调用
- 采用队列发送邮件
- 失败自动重发
- 基于场景配置邮件账号
- 内置测试账号,便于开发调试
场景与邮件账号
CabloyJS基于场景配置邮件账号,从而支持更灵活的业务需求。CabloyJS内置两个场景
名称 | 说明 |
---|---|
system | 系统场景。比如认证模块 就会使用此场景的邮件账号发送确认邮件 |
test | 测试场景。此场景采用nodemailer 内置的测试账号发送邮件,并且自动把邮件URL链接 打印到控制台,从而便于开发调试 |
若需要增加其他场景,直接修改模块Config配置即可
Config配置
a-mail/backend/src/config/config.js
// scenes
config.scenes = {
system: {
transport: {
host: '',
port: 0,
secure: false,
auth: {
user: '',
pass: '',
},
logger: false,
debug: false,
},
defaults: {
from: '',
},
},
};
- transport
名称 | 说明 |
---|---|
host | 邮件发送服务器的域名或IP |
port | 邮件发送服务器的端口号 |
secure | 是否使用TLS用于安全连接 |
auth.user | 用户名 |
auth.pass | 密码 |
logger | 是否打印日志 |
debug | 是否打印详细的SMTP通讯信息 |
- defaults
名称 | 说明 |
---|---|
from | 缺省的邮件from字段 |
nodemailer
还支持其他字段,也可在Config配置中设置,具体请参考:SMTP TRANSPORT
Api调用
src/suite-vendor/test-party/modules/test-party/backend/src/controller/test/feat/sendMail.js
async sendMail() {
// send
await this.ctx.bean.mail.send({
scene: 'test',
message: {
to: 'test@cabloy.com',
subject: 'this is a test',
text: 'message body!',
},
});
// done
this.ctx.success();
}
名称 | 说明 |
---|---|
scene | 场景值 |
message.to | 邮件的to字段 |
message.subject | 邮件的subject字段 |
message.text | 邮件的text字段 |
message
还可传入其他字段,具体请参考:MESSAGE CONFIGURATION
评论: