My structure:
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: '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);
}
});
This code is part of a controller where all other functions within it work perfectly.
- Is there something I am missing?
- Perhaps I'm calling for the incorrect nodemailer module?
- Or should the transport be SMTP, not SES?
I'm stuck.
The below code is what I used and it worked for me. This is for the current NodeMailer. Where the transport module needs to be included separately. In the previous versions the transport modules were built in. 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);
}
});
来源:https://stackoverflow.com/questions/23982299/nodemailer-and-amazon-ses