1

如果您阅读了SMTP appender 的 log4js 文档,您会看到 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。

4

1 回答 1

2

经过几个小时的反复试验,我找到了解决方案。这是带有控制台和 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、...)。请参阅您要使用的传输文档以了解如何实例化它。

于 2015-04-06T22:03:52.140 回答