其實這個功能不少人都寫過了,可是網上有的代碼不能用,版本較老,所以寫下本身摸索的方法來實現。javascript
首先須要安裝nodemailer庫html
npm install nodemailer//默認會安裝最新的版本。
關於這個庫的文檔參見nodemailerjava
這個庫使用方法很簡單的。首先是要建立一個用於發送郵件的實例node
var transporter = nodemailer.createTransport(transport[, defaults])
屬性太多了就只寫一些關鍵的屬性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])
from 郵件的發件人
to 郵件的收件人
subject 主題
text 郵件是以文本的方式進行發送
html 郵件內容是html網頁效果
attachments 附件。詳細能夠看官方文檔
接受兩個參數 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發送的郵件");
完結~