Nodemailer and Amazon SES
amazon-ses, javascript, nodemailer
Solution
Please use aws-sdk directly. It work for me. Hope it will help you.`
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: 'sender@example.com',
to: 'recipient@example.com',
subject: 'Message',
text: 'I hope this message gets sent!'
}, (err, info) => {
console.log(info.envelope);
console.log(info.messageId);
});
Problem
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.