Guest User

Untitled

a guest
Nov 7th, 2018
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.39 KB | None | 0 0
  1. <form action="/send-email" method="post">
  2. <div class="row">
  3.  
  4. <div class="col-md-4"></div>
  5. <div class="form-group col-md-4">
  6. <label for="to">To:</label>
  7. <input type="email" class="form-control" name="to">
  8. </div>
  9. </div>
  10.  
  11. <div class="row">
  12. <div class="col-md-4"></div>
  13. <div class="form-group col-md-4">
  14. <label for="subject">Subject:</label>
  15. <input type="text" class="form-control" name="subject">
  16. </div>
  17. </div>
  18.  
  19. <div class="row">
  20. <div class="col-md-4"></div>
  21. <div class="form-group col-md-4">
  22. <label for="body">Body:</label>
  23. <textarea cols="5" rows="5" class="form-control" name="body"></textarea>
  24. </div>
  25. </div>
  26.  
  27. <div class="row">
  28. <div class="col-md-4"></div>
  29. <div class="form-group col-md-4">
  30. <button type="submit" class="btn btn-success">Send</button>
  31. </div>
  32. </div>
  33.  
  34. </div>
  35. </form>
  36.  
  37. // These are important and needed before anything else
  38. import 'zone.js/dist/zone-node';
  39. import 'reflect-metadata';
  40.  
  41. import { renderModuleFactory } from '@angular/platform-server';
  42. import { enableProdMode } from '@angular/core';
  43.  
  44. import * as express from 'express';
  45. import { join } from 'path';
  46. import { readFileSync } from 'fs';
  47.  
  48. // Import module map for lazy loading
  49. import { provideModuleMap } from '@nguniversal/module-map-ngfactory- loader';
  50.  
  51.  
  52. // Faster server renders w/ Prod mode (dev mode never needed)
  53. enableProdMode();
  54.  
  55. // Express server
  56. const app = express(),
  57. nodeMailer = require('nodemailer'),
  58. bodyParser = require('body-parser');
  59.  
  60. const PORT = process.env.PORT || 4000;
  61. const DIST_FOLDER = join(process.cwd(), 'dist');
  62. const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist/server/main');
  63. // Our index.html we'll use as our template
  64. const template = readFileSync(join(DIST_FOLDER, 'browser', 'index.html')).toString();
  65.  
  66. app.engine('html', (_, options, callback) => {
  67. renderModuleFactory(AppServerModuleNgFactory, {
  68. // Our index.html
  69. document: template,
  70. url: options.req.url,
  71. // DI so that we can get lazy-loading to work differently (since we need it to just instantly render it)
  72. extraProviders: [
  73. provideModuleMap(LAZY_MODULE_MAP)
  74. ]
  75. }).then(html => {
  76. callback(null, html);
  77. });
  78. });
  79.  
  80. app.set('view engine', 'html');
  81. app.set('views', join(DIST_FOLDER, 'browser'));
  82.  
  83. // Server static files from /browser
  84. app.get('*.*', express.static(join(DIST_FOLDER, 'browser')));
  85.  
  86. // All regular routes use the Universal engine
  87. app.get('*', (req, res) => {
  88. res.render(join(DIST_FOLDER, 'browser', 'index.html'), { req });
  89. });
  90.  
  91.  
  92. app.use(bodyParser.urlencoded({ extended: true }));
  93. app.use(bodyParser.json());
  94.  
  95. //My code for Nodemailer
  96. app.post('/send-email', function (req, res) {
  97. let transporter = nodeMailer.createTransport({
  98. service: 'gmail',
  99. auth: {
  100. user: '*****',
  101. pass: '*****'
  102. }
  103. });
  104. let mailOptions = {
  105. from: '"Krunal Lathiya" <xx@gmail.com>', // sender address
  106. to: req.body.to, // list of receivers
  107. subject: req.body.subject, // Subject line
  108. text: req.body.body, // plain text body
  109. html: '<b>NodeJS Email Tutorial</b>' // html body
  110. };
  111.  
  112. transporter.sendMail(mailOptions, (error, info) => {
  113. if (error) {
  114. return console.log(error);
  115. }
  116. console.log('Message %s sent: %s', info.messageId, info.response);
  117. res.render('index');
  118. });
  119. });
  120. // Start up the Node server
  121. app.listen(PORT, () => {
  122. console.log(`Node server listening on http://localhost:${PORT}`);
  123. });
Add Comment
Please, Sign In to add comment