我的结构:
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: 'hello
' + 'test' }; transport.sendMail(message, function(error) { if (error) { console.log(error); } else { console.log('Message sent: ' + response.message); } });
该代码是控制器的一部分,该控制器中的所有其他功能都可以正常运行。
我有什么想念的吗?
也许我要求使用错误的nodemailer模块?
还是传输应该是SMTP,而不是SES?
我被卡住了。
下面的代码是我使用的,并且对我有用。这是针对当前的NodeMailer。需要单独包括运输模块的地方。在以前的版本中,传输模块是内置的 。https://andrisreinman.com/nodemailer-v1-0/#migrationguide
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); } });