2014年8月28日 星期四

【Node.js】Send Email

需求為寄出帳號認證信件
開發環境為 ubuntu, nodejs, express, smtp server
以及需要安裝兩個 nodejs 模組
nodemailer 與 nodemailer-smtp-transport
使用 npm 安裝
  1. npm install nodemailer
  2. npm install nodemailer-smtp-transport
module.exports = {
 sendEmail: function(_recipient, _subject, _html, _callback) {
  var nodemailer = require('nodemailer');
  var smtpTransport = require('nodemailer-smtp-transport');
  var config = require("../config/config");
     var transporter = nodemailer.createTransport(smtpTransport({
         host: config.smtp.host,
         port: config.smtp.port,
         auth: {
             user: config.smtp.user,
             pass: config.smtp.pwd
         }
     }));

     transporter.sendMail({
         from: 'sender@domain.org.tw',
         to: _recipient,
         subject: _subject,
         html: _html
     }, function(err, info) {
         _callback(err, info);
     });
 }
}
使用 SMTP Server 的好處是
寄件人的位置可以自行定義
若不介意寄件人地址
也可以請 Gmail 幫忙寄信
更改 transporter 即可
var transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        user: 'sender@gmail.com',
        pass: 'password'
    }
});

2 則留言:

  1. 不好意思請問一下 這是自動發認證信的嗎?

    回覆刪除
    回覆
    1. 當初的需求的確是,安裝 nodejs 兩個模組(nodemailer & nodemailer-smtp-transport)之後,就可以完成發信的功能,應該說 Server 就可以發 mail 給 user。

      刪除