18

私の構造:

site
-- node_modules
---- nodemailer
-- webclient
---- js
------- controller.js

site/node_modules/nodemailer
site/webclient/js/controller.js

サイト/webclient/js/controller.js:

    var nodemailer = require('../../node_modules/nodemailer');

    var transport = nodemailer.createTransport('SES', {
        AWSAccessKeyID: 'xxx', // real one in code
        AWSSecretKey: 'xxx', // real one in code
        ServiceUrl: 'email-smtp.us-west-2.amazonaws.com'
    });

    var message = {
        from: 'example@mail.com', // verified in Amazon AWS SES
        to: 'example@mail.com', // verified in Amazon AWS SES
        subject: 'testing',
        text: 'hello',
        html: '<p><b>hello</b></p>' +
              'test'
    };

    transport.sendMail(message, function(error) {
        if (error) {
            console.log(error);
        } else {
            console.log('Message sent: ' + response.message);
        }
    });

このコードは、その中の他のすべての機能が完全に機能するコントローラーの一部です。

  • 足りないものはありますか?
  • おそらく、間違った nodemailer モジュールを呼び出しているのでしょうか?
  • または、トランスポートは SES ではなく SMTP にする必要がありますか?

私は立ち往生しています。

4

5 に答える 5

13

以下のコードは私が使用したもので、うまくいきました。これは現在の NodeMailer 用です。トランスポート モジュールを個別に含める必要がある場合。以前のバージョンでは、トランスポート モジュールが組み込まれていました。

var nodemailer = require('nodemailer');
var sesTransport = require('nodemailer-ses-transport');

var SESCREDENTIALS = {
  accessKeyId: "accesskey",
  secretAccessKey: "secretkey"
};

var transporter = nodemailer.createTransport(sesTransport({
  accessKeyId: SESCREDENTIALS.accessKeyId,
  secretAccessKey: SESCREDENTIALS.secretAccessKey,
  rateLimit: 5
}));

var mailOptions = {
  from: 'FromName <registeredMail@xxx.com>',
  to: 'registeredMail@xyz.com', // list of receivers
  subject: 'Amazon SES Template TesT', // Subject line
  html: < p > Mail message < /p> / / html body
};

// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info) {
  if (error) {
    console.log(error);
  } else {
    console.log('Message sent: ' + info);
  }
});

アップデート

この回答を最後に書いてから、nodemailer ライブラリが更新されました。AWS SES でライブラリを使用する正しい方法は、ドキュメントに記載されています。実際の例へのリンク

参考文献

于 2015-08-10T10:11:08.087 に答える