我的结构:
site
-- node_modules
---- nodemailer
-- webclient
---- js
------- controller.js
site/node_modules/nodemailer
site/webclient/js/controller.js
site / 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: '[email protected]', // verified in Amazon AWS SES
to: '[email protected]', // 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。需要单独包括运输模块的地方。在以前的版本中,传输模块是内置的。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 <[email protected]>',
to: '[email protected]', // 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);
}
});
请直接使用aws-sdk。它对我有用。希望它能对您有所帮助。
let nodemailer = require('nodemailer');
let AWS = require('aws-sdk');
// configure AWS SDK
AWS.config.update({
accessKeyId: << SES_ACCESS_KEY >>,
secretAccessKey: << SES_SECRET_KEY >>,
region: << SES_REGION >>,
});
// create Nodemailer SES transporter
let transporter = nodemailer.createTransport({
SES: new AWS.SES({
apiVersion: '2010-12-01'
})
});
// send some mail
transporter.sendMail({
from: '[email protected]',
to: '[email protected]',
subject: 'Message',
text: 'I hope this message gets sent!'
}, (err, info) => {
console.log(info.envelope);
console.log(info.messageId);
});