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 以外のトランスポートを使用するように構成を変更するには? 私が望むのは、SendGrid で動作するように log4js を構成することです。

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 に答える