2013年2月27日水曜日

Expressフレームワークで、Nodemailerを利用してのメール送信

Expressフレームワークで、Nodemailerを利用してのメール送信です。Nodemailerを利用すると、HTMLメールや添付ファイルなども送信できるようです。今回は、GmailをSMTPサーバーとして利用しました。良い感じで、送信できています。

package.json
{
  "dependencies": {
    "nodemailer": "0.3.x"
  }
}
app.js
app.post('/message', message.home);
/routes/message.js
//モジュールロード
var nodemailer = require("nodemailer");
var mailOpts, smtpTrans, mailErr;

smtpTrans = nodemailer.createTransport('SMTP', {
  service: 'Gmail',
  auth: {
      user: "youname@gmail.com",
      pass: "yourpassword" 
  }
});

exports.home = function(req, res, next){
  mailOpts = {
    from: 'youname@gmail.com', 
    to: 'to@gmail.com',
    subject: req.body.username,
    text: req.body.letter 
  };

  if ( req.body.username != "" && req.body.letter != "" ) {
    smtpTrans.sendMail(mailOpts, function (error, response) {
      if (error) {
          mailErr = error ;
      } else {
          mailErr = null ;
      }
    });
  }
  res.render('message', { title: title, username: req.body.username, letter: req.body.letter, error: mailErr });
};

実際に設定してみたサイトがこちら

参考サイト
Simple form handling with Express and Nodemailer(QScriptsさん)

0 件のコメント:

コメントを投稿