如何在 log4js smtp appender 中使用非 SMTP 传输?
How to use non SMTP transport in log4js smtp appender?
如果您阅读 log4js documentation for SMTP appender,您将看到 SMTP 传输的示例,它甚至不能很好地与最新的 nodemailer 一起工作(我在撰写本文时使用的是 nodemailer 1.3.0)。
文档以这种错误的配置为例:
{ "appenders": [
{
"type": "smtp",
"recipients": "foo@bar.com",
"sendInterval": 60,
"transport": "SMTP",
"SMTP": {
"host": "smtp.gmail.com",
"secureConnection": true,
"port": 465,
"auth": {
"user": "foo@bar.com",
"pass": "bar_foo"
}
}
}
] }
如何更改配置以使用 SMTP 以外的传输方式?我想要的是配置 log4js 以与 SendGrid 一起工作。
经过几个小时的反复试验,我找到了解决方案。这是带有控制台和 smtp 附加程序的示例 log4js 配置:
sendgridTransport = require('nodemailer-sendgrid-transport');
log4js.configure({
appenders: [{
type: 'console'
}, {
type: 'logLevelFilter',
level: 'ERROR',
appender: {
type: 'smtp',
recipients: 'admin@example.com',
sender: 'system@example.com',
sendInterval: 60,
transport: sendgridTransport({
auth: {
api_user: config.smtpUsername,
api_key: config.smtpPassword
}
})
}
}]
});
您可以以类似的方式使用任何其他交通工具。支持传输是 nodemailer 支持的所有传输(例如:AWS SES、SMTP 等)。请参阅您要使用的传输的文档以了解如何对其进行实例化。
如果您阅读 log4js documentation for SMTP appender,您将看到 SMTP 传输的示例,它甚至不能很好地与最新的 nodemailer 一起工作(我在撰写本文时使用的是 nodemailer 1.3.0)。
文档以这种错误的配置为例:
{ "appenders": [
{
"type": "smtp",
"recipients": "foo@bar.com",
"sendInterval": 60,
"transport": "SMTP",
"SMTP": {
"host": "smtp.gmail.com",
"secureConnection": true,
"port": 465,
"auth": {
"user": "foo@bar.com",
"pass": "bar_foo"
}
}
}
] }
如何更改配置以使用 SMTP 以外的传输方式?我想要的是配置 log4js 以与 SendGrid 一起工作。
经过几个小时的反复试验,我找到了解决方案。这是带有控制台和 smtp 附加程序的示例 log4js 配置:
sendgridTransport = require('nodemailer-sendgrid-transport');
log4js.configure({
appenders: [{
type: 'console'
}, {
type: 'logLevelFilter',
level: 'ERROR',
appender: {
type: 'smtp',
recipients: 'admin@example.com',
sender: 'system@example.com',
sendInterval: 60,
transport: sendgridTransport({
auth: {
api_user: config.smtpUsername,
api_key: config.smtpPassword
}
})
}
}]
});
您可以以类似的方式使用任何其他交通工具。支持传输是 nodemailer 支持的所有传输(例如:AWS SES、SMTP 等)。请参阅您要使用的传输的文档以了解如何对其进行实例化。