64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var secrets = require('../config/secrets');
 | |
| var nodemailer = require("nodemailer");
 | |
| var transporter = nodemailer.createTransport({
 | |
|   service: 'Mandrill',
 | |
|   auth: {
 | |
|     user: secrets.mandrill.user,
 | |
|     pass: secrets.mandrill.password
 | |
|   }
 | |
| });
 | |
| 
 | |
| /**
 | |
|  * GET /contact
 | |
|  * Contact form page.
 | |
|  */
 | |
| 
 | |
| exports.getContact = function(req, res) {
 | |
|   res.render('contact', {
 | |
|     title: 'Free Code Work for Nonprofits Project Submission Page'
 | |
|   });
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * POST /contact
 | |
|  * Send a contact form via Nodemailer.
 | |
|  * @param email
 | |
|  * @param name
 | |
|  * @param message
 | |
|  */
 | |
| 
 | |
| exports.postContact = function(req, res) {
 | |
|   req.assert('name', 'Name cannot be blank').notEmpty();
 | |
|   req.assert('email', 'Email is not valid').isEmail();
 | |
|   req.assert('message', 'Message cannot be blank').notEmpty();
 | |
| 
 | |
|   var errors = req.validationErrors();
 | |
| 
 | |
|   if (errors) {
 | |
|     req.flash('errors', errors);
 | |
|     return res.redirect('/nonprofits');
 | |
|   }
 | |
| 
 | |
|   var from = req.body.email;
 | |
|   var name = req.body.name;
 | |
|   var body = req.body.message;
 | |
|   var to = 'team@freecodecamp.com';
 | |
|   var subject = "CodeNonprofit Project Idea from " + name;
 | |
| 
 | |
|   var mailOptions = {
 | |
|     to: to,
 | |
|     from: from,
 | |
|     subject: subject,
 | |
|     text: body
 | |
|   };
 | |
| 
 | |
|   transporter.sendMail(mailOptions, function(err) {
 | |
|     if (err) {
 | |
|       req.flash('errors', { msg: err.message });
 | |
|       return res.redirect('/nonprofits');
 | |
|     }
 | |
|     req.flash('success', { msg: 'Email has been sent successfully!' });
 | |
|     res.redirect('/nonprofits');
 | |
|   });
 | |
| };
 |