Skip to content

Instantly share code, notes, and snippets.

@AgtLucas
Created July 9, 2014 17:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AgtLucas/8c63af9fd2d6bf95216e to your computer and use it in GitHub Desktop.
Save AgtLucas/8c63af9fd2d6bf95216e to your computer and use it in GitHub Desktop.

#config/mailgun.js

  module.exports.mailgun = {
    usessl: true,
    port: 465,
    to: '<youremailaddress>',
    prepend_subject: 'Happy Contact Form | ',
    user: process.env.MAILGUN_USER,
    pass: process.env.MAILGUN_PASS
  }

#controllers/EmailController.js

  /**
   * EmailController
   *
   * @module    :: Controller
   * @description :: Contains logic for handling requests.
   */
  var nodemailer = require('nodemailer');
  module.exports = {
  
    send: function(req, res){
  
      var params = req.params.all();
      console.log(params);
      if(!params.name){
        res.send(500);
      }
  
      if(!params.subject){
        res.send(500);
      }
  
      if(!params.message){
        res.send(500);
      }
  
      var msg = [];
      msg = 'Someone Has Contact You From the Website!\n';
      msg += '------------------------------------------\n';
      msg += 'Name: ' + params.name + '\n';
  
      if(params.email){
        msg += 'Email: ' + params.email + '\n';
      }
  
      if(params.phoneNumber){
        msg += 'Phone Number: ' + params.phoneNumber + '\n';
      }
  
      msg += 'Subject: ' + params.subject + '\n';
      msg += 'Message: \n';
      msg += params.message + '\n';
  
      var transport = nodemailer.createTransport("SMTP", {
        host: sails.config.mailgun.host,
        secureConnection: sails.config.mailgun.usessl, // use SSL
        port: sails.config.mailgun.port, // port for secure SMTP
        auth: {
            user: sails.config.mailgun.user, 
            pass: sails.config.mailgun.pass 
        }
      });
  
      var mailOptions = {
        from: params.name + '<' + params.email + '>' || 'nobody@nobody.com',
        to: sails.config.mailgun.to, 
        subject: sails.config.mailgun.prepend_subject + params.subject,
        text: msg        
      }
  
      transport.sendMail(mailOptions, function(err, response){
        if(err){
          res.send(500, "Error Sending " + err);
        }else{
          res.send(200, response);
        }
      });
    }
  };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment