Guest User

Untitled

a guest
May 9th, 2018
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. require("dotenv").config(); // read .env file if present.
  2.  
  3. const nodemailer = require("nodemailer");
  4. const createHtmlMail = require("./modules/mail-template"); // this function returns html email code
  5.  
  6. exports.handler = function(event, context, callback) {
  7. const user = process.env.MAIL_USER; // some@mail.com
  8. const pass = process.env.MAIL_PASSWORD; // 42isthecoolestnumber
  9.  
  10. let transporter = nodemailer.createTransport({
  11. host: "smtp.gmail.com",
  12. port: 587,
  13. secure: false,
  14. auth: { user, pass }
  15. });
  16.  
  17. // Parse data sent in form hook (email, name etc)
  18. const { data } = JSON.parse(event.body);
  19.  
  20. // make sure we have data and email
  21. if (!data || !data.email) {
  22. return callback(null, {
  23. statusCode: 400,
  24. body: 'Mailing details not provided'
  25. })
  26. }
  27.  
  28. let mailOptions = {
  29. from: `"Maciej ๐Ÿฅ Smoothielicious" <${user}>`,
  30. to: data.email, // send to email from contact form
  31. subject: "๐Ÿ‡ Contact submission received! ๐ŸŒ",
  32. html: createHtmlMail({ name: data.name }) // returns html code with interpolated variables
  33. };
  34.  
  35. transporter.sendMail(mailOptions, (error, info) => {
  36. // handle errors
  37. if (error) {
  38. return callback(null, {
  39. statusCode: 500,
  40. body: JSON.stringify(error)
  41. });
  42. }
  43.  
  44. // success!
  45. callback(null, {
  46. statusCode: 200,
  47. body: "mail sent"
  48. });
  49. });
  50. };
Add Comment
Please, Sign In to add comment