NodeJS發送郵件

其實這個功能不少人都寫過了,可是網上有的代碼不能用,版本較老,所以寫下本身摸索的方法來實現。javascript

配置篇

首先須要安裝nodemailer庫html

npm install nodemailer//默認會安裝最新的版本。

關於這個庫的文檔參見nodemailerjava

庫的一些使用介紹

這個庫使用方法很簡單的。首先是要建立一個用於發送郵件的實例node

var transporter = nodemailer.createTransport(transport[, defaults])

transport參數屬性

屬性太多了就只寫一些關鍵的屬性npm

  • port:鏈接的端口號,通常就是465數組

  • host:你用於發送郵件的服務器的host,好比163的host是stmp.163.com服務器

  • auth:這個就是和老版本不同的地方了。新版本是用一個字面量存儲用戶名和密碼。注意你的郵箱要開啓stmp。函數

    • user:用戶名code

    • pass:密碼。若是你的163設置了第三方登陸密碼的話這裏要填你的第三方登陸密碼、htm

設置好了這些就可使用啦~這裏貼上個人設置

var smtpConfig = {
    host: 'smtp.163.com',
    port: 465,
    auth: {
        user: 'xxxx',
        pass: 'xxxx'
    }
};
var transporter = nodemailer.createTransport(smtpConfig);

使用篇

如今咱們可使用如下函數進行發送郵件

transporter.sendMail(data[, callback])

data郵件內容

  • from 郵件的發件人

  • to 郵件的收件人

  • subject 主題

  • text 郵件是以文本的方式進行發送

  • html 郵件內容是html網頁效果

  • attachments 附件。詳細能夠看官方文檔

callback回調函數

接受兩個參數 err和info

err

若是失敗了就能夠打印這個對象看相關信息

info

能夠看不少發送狀態的信息

  • messageID 會返回信息的messageID值,我也不太懂

  • accepted 是一個數組,包括服務器接收的內容的地址

  • rejected 意義和上面差很少,就是相反的意思

好了說完了咱們就能夠發送郵件了

var sendmail = function(html){
    var option = {
        from:"sender",
        to:"accepter",
        subject : '來自node的郵件',
        html : html
    }
    transporter.sendMail(option, function(error, response){
        if(error){
            console.log("fail: " + error);
        }else{
            console.log("success: " + response.messageID);
        }
    });
}

sendmail("郵件內容:<br/>這是來自nodemailer發送的郵件");

完結~

相關文章
相關標籤/搜索