Guest User

Untitled

a guest
Jun 13th, 2018
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. var express = require('express');
  2. var path = require('path');
  3. var bodyParser = require('body-parser');
  4. var validator = require('./config/validator.js');
  5. var mailer = require('nodemailer');
  6. var app = express();
  7.  
  8. app.use(bodyParser.urlencoded({extended:false}));
  9. app.use(bodyParser.json());
  10.  
  11. app.use(express.static(path.join(__dirname, 'public')))
  12.  
  13. app.get('/', (req, res) => res.send(__dirname + '/public/index.html'));
  14. app.get('/feedback', (req, res) => res.sendFile(__dirname + '/public/form.html'));
  15.  
  16. app.post('/form', (req, res) => {
  17. console.log(req.body);
  18. const formConfig = validator.getFormConfig('suggestions');
  19. const errorFields = validator.validate(req.body, formConfig);
  20.  
  21. if(errorFields.length === 0) {
  22. let transporter = mailer.createTransport("SMTP", {
  23. service: 'gmail',
  24. auth: {
  25. user: '*email*',
  26. pass: '*emailPassword*'
  27. }
  28. });
  29.  
  30. let noGenderSelected = 'You did not select your gender.';
  31.  
  32. var mailOptions = {
  33. from: '*email from*',
  34. to: req.body.email,
  35. subject: 'Response Recieved',
  36. text: `Hello ${req.body.fname} ${req.body.lname}!
  37. We have recieved your response! Thank you for your feedback!
  38.  
  39. The data you entered was:
  40.  
  41. - First Name: ${req.body.fname}
  42. - Last Name: ${req.body.lname}
  43. - Email: ${req.body.email}
  44. - Country: ${req.body.country}
  45. - Suggestion: ${req.body.suggestion}
  46. - Gender: ${req.body.gender ? `${req.body.gender}` : `${noGenderSelected}`}`,
  47. html: `Hello ${req.body.fname} ${req.body.lname}!
  48. We have recieved your response! Thank you for your feedback!
  49.  
  50. The data you entered was:
  51.  
  52. <ul>
  53. <li>First Name: ${req.body.fname}</li>
  54. <li>Last Name: ${req.body.lname}</li>
  55. <li>Email: ${req.body.email}</li>
  56. <li>Country: ${req.body.country}</li>
  57. <li>Suggestion: ${req.body.suggestion}</li>
  58. <li>Gender: ${req.body.gender ? `${req.body.gender}` : `${noGenderSelected}`}</li>
  59. </ul>`
  60. };
  61.  
  62. transporter.sendMail(mailOptions, (error, info) => {
  63. if (error) {
  64. console.log(error);
  65. res.send(error);
  66. } else {
  67. console.log('Email sent: ' + info.response);
  68. res.send('Email sent: ' + info.response);
  69. }
  70. });
  71. }
  72.  
  73. res.json(errorFields);
  74. });
  75.  
  76. app.listen(8080, () => console.log('Server listening on port 8080'));
Add Comment
Please, Sign In to add comment