使用nodemailer傳送郵件

向藍天招手發表於2016-06-04

開發網站的時候經常會遇到傳送驗證郵件的問題,今天介紹一種node平臺上功能強大的module——nodemailer

官方網址:http://nodemailer.com/nodemailer-0-7-deprecated/

nodemailer目前有三個版本,分別是0.7.X,1.X和2.X

三個版本中最大的區別在於建立連線池,其中2.X變化比較大,支援第三方傳送郵件動態的accessKeyId

如果我們使用自己的郵箱的話,0.7.x版本就足夠,本次的demo就是使用的該版本,如果有更多的需求請檢視官方網站

安裝:  npm install nodemailer@0.7.1 --save

安裝好之後,我們就來看看如何傳送郵件,在傳送郵件之前一定要保證郵箱已經開通了SMTP服務。

開啟方式: 設定=》賬戶=》開啟(按照說明開啟即可),這時候會得到一個密碼,當你使用SMTP服務就需要使用該密碼進行登入。

 1 var nodemailer = require("nodemailer");
 2 
 3 // 1. 開啟一個smtp連線
 4 var smtpTransporter = nodemailer.createTransport("SMTP",{
 5     host: "smtp.qq.com", // 主機
 6     secureConnection: true, // 使用 SSL加密
 7     port: 465, // SMTP 埠
 8     auth: {
 9         user: "user@qq.com", // 賬號
10         pass: "pass" // 密碼
11     }
12 });
13 
14 //要傳送內容
15 var mailoptions = {
16     from: "sender@qq.com",
17     to: "receive@qq.com",
18     subject: "i love u",  //標題
19     html: "<h1>hello dear</h1>"  //郵件內容
20 };
21 
22 // 2. 傳送郵件
23 smtpTransporter.sendMail(mailoptions,function(err,info){
24     if(err){
25         console.log(err);
26     }else{
27         console.log(info.response);
28     }
29     //如果不在傳送可以直接關閉,如果還需要傳送其他郵件,那麼就不要關閉連線池,直接傳送
30     smtpTransporter.close();
31 });

如果得到501錯誤,可能是未將該使用者設定該服務。開啟後的服務如下圖。

在配置郵件內容的時候,收件人可以是多個,中間用逗號隔開,當收件人是一個陣列的時候,我們使用  Array.prototype.toString()即可解析為逗號分隔。

 

相關文章