Skip to content

Instantly share code, notes, and snippets.

Created Mar 27, 2018
What would you like to do?
var aws = require('aws-sdk');
var nodemailer = require('nodemailer');
var ses = new aws.SES();
var s3 = new aws.S3();
function getS3File(bucket, key) {
return new Promise(function (resolve, reject) {
Bucket: bucket,
Key: key
function (err, data) {
if (err) return reject(err);
else return resolve(data);
exports.handler = function (event, context, callback) {
getS3File('xoor-email-attachments', 'attachment.pdf')
.then(function (fileData) {
var mailOptions = {
from: '',
subject: 'This is an email sent from a Lambda function!',
html: `<p>You got a contact message from: <b>${event.emailAddress}</b></p>`,
to: '',
// bcc: Any BCC address you want here in an array,
attachments: [
filename: "An Attachment.pdf",
content: fileData.Body
console.log('Creating SES transporter');
// create Nodemailer SES transporter
var transporter = nodemailer.createTransport({
SES: ses
// send email
transporter.sendMail(mailOptions, function (err, info) {
if (err) {
console.log('Error sending email');
} else {
console.log('Email sent successfully');
.catch(function (error) {
console.log('Error getting attachment from S3');

This comment has been minimized.

Copy link

@nautymanish nautymanish commented Apr 9, 2020

No the code in lamda is failing at the first point
var nodemailer = require('nodemailer');
Please note I am using nodejs12.x and inbuilt code editor of Lambda.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment