/** * This is a sample Lambda function that sends an email on click of a * button. It requires these SES permissions.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ses:GetIdentityVerificationAttributes", "ses:SendEmail", "ses:VerifyEmailIdentity" ], "Resource": "*" } ]} * * The following JSON template shows what is sent as the payload:{ "serialNumber": "GXXXXXXXXXXXXXXXXX", "batteryVoltage": "xxmV", "clickType": "SINGLE" | "DOUBLE" | "LONG"} * * A "LONG" clickType is sent if the first press lasts longer than 1.5 seconds. * "SINGLE" and "DOUBLE" clickType payloads are sent for short clicks. * * For more documentation, follow the link below. * http://docs.aws.amazon.com/iot/latest/developerguide/iot-lambda-rule.html */'use strict';constAWS=require('aws-sdk');constSES=newAWS.SES();constEMAIL_ADDRESS='dhogue@learning.com';// change it to your email address// Send a verification email to the given email address.functionsendVerification(email,callback){SES.verifyEmailIdentity({EmailAddress:email},(err)=>{callback(err||'Verification email sent. Please verify it.');});}// Check whether email is verified. Only verified emails are allowed to send emails to or from.functioncheckEmail(email,callback){SES.getIdentityVerificationAttributes({Identities:[email]},(err,data)=>{if(err){callback(err);return;}constattributes=data.VerificationAttributes;if(!(emailinattributes)||attributes[email].VerificationStatus!=='Success'){sendVerification(email,callback);}else{callback(err,data);}});}exports.handler=(event,context,callback)=>{console.log('Received event:',event);checkEmail(EMAIL_ADDRESS,(err)=>{if(err){console.log(`Failed to check email: ${EMAIL_ADDRESS}`,err);callback(err);return;}constpayload=JSON.stringify(event);constsubject=`Hello from your IoT Button ${event.serialNumber}`;constbodyText=`Hello from your IoT Button ${event.serialNumber}. Here is the full event: ${payload}.`;constparams={Source:EMAIL_ADDRESS,Destination:{ToAddresses:[EMAIL_ADDRESS]},Message:{Subject:{Data:subject},Body:{Text:{Data:bodyText}}},};SES.sendEmail(params,callback);});};
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.