Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var aws = require("aws-sdk");
- var ses = new aws.SES({
- accessKeyId: "xxxxxxxx",
- secretAccesskey: "xxxxxxxx/xxxxxxx"
- });
- var s3 = new aws.S3({
- apiVersion: "2006-03-01",
- region: "us-west-2"
- });
- var getPieceOfMail = function (path, mapObj, replace) {
- return new Promise(function (resolve, reject) {
- s3.getObject({
- Bucket: "myBucket",
- Key: "mailing/" + path
- }, function (err, data) {
- if (err) {
- reject(err);
- } else {
- if (replace === true) {
- var re = new RegExp(Object.keys(mapObj).join("|"), "gi");
- data = data.Body.toString().replace(re, function (matched) {
- return mapObj[matched.toLowerCase()];
- });
- resolve(data);
- } else {
- resolve(data.Body.toString());
- }
- }
- });
- });
- };
- var getRegisterSource = function (nickname, user_id) {
- var activate_link, pieces;
- activate_link = "https://mydomain/" + user_id;
- pieces = [
- getPieceOfMail("starts/start.html", {}, false),
- getPieceOfMail("headers/a.html", {}, false),
- getPieceOfMail("sections/a.html", { "user": nickname, "activate": activate_link }, true),
- getPieceOfMail("footers/a.html", {}, false),
- getPieceOfMail("footers/b.html", {}, false),
- getPieceOfMail("footers/c.html", {}, false),
- getPieceOfMail("end.html", {})
- ];
- return Promise.all(pieces)
- .then(function (data) {
- return (data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6]);
- })
- .catch(function (err) {
- return err;
- });
- };
- var sendEmail = function (email, data) {
- return new Promise(function (resolve, reject) {
- var params = {
- Destination: { ToAddresses: [email] },
- Message: {
- Body: {
- Html: {
- Data: data
- },
- Text: {
- Data: data
- }
- },
- Subject: {
- Data: "Account validation"
- }
- },
- Source: "xxx <noreply@mydomain.co>",
- };
- ses.sendEmail(params, function (err, data) {
- if (err) {
- reject(err);
- } else {
- resolve(data);
- }
- });
- });
- };
- exports.handler = function (event, context) {
- getRegisterSource(event['nickname'], event['user_id'])
- .then(function (data) {
- return sendEmail(event["email"], data);
- })
- .then(function (data) {
- context.done(null, data);
- })
- .catch(function (err) {
- console.log("==ERROR==");
- context.done(err, err);
- });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement