Node.js使用NodeMailer發(fā)送郵件

姓名:謝艾芳? 學(xué)號:16040410073

轉(zhuǎn)自http://www.reibang.com/p/985d26b40199

〖嵌牛導(dǎo)讀〗使用NodeMailer發(fā)送郵件

〖嵌牛鼻子〗NodeMailer? 發(fā)送郵件

〖嵌牛提問〗如何自己用NodeMailer發(fā)送郵件

〖嵌牛正文〗

0.目標(biāo)

這一節(jié),我將實現(xiàn)一個簡單的發(fā)送郵件功能刷允。

參考代碼

1.部署

1.1 部署Express

如果不知道如何部署,可參照: 部署Express

1.2 準(zhǔn)備一個郵箱并開始SMTP服務(wù)

為了實現(xiàn)這個功能柑司,你首先要有一個郵箱;由于需要使用SMTP方式發(fā)送,你還需要開啟相關(guān)功能挡闰。你可以登錄你的郵箱逗扒,然后開啟這個設(shè)置古戴,以新浪郵箱和QQ郵箱為例:

開啟SMTP
QQ郵箱

2.服務(wù)器端

2.1 使用nodemailer

這里要用到nodemailer,需要自行安裝:

npm install nodemailer --save

在routes/index.js中引用nodemailer:

var nodemailer? = require('nodemailer');

2.2 配置

在routes/index.js中創(chuàng)建一個傳輸方式:

var mailTransport = nodemailer.createTransport({

? ? host : 'smtp.sina.com',

? ? secureConnection: true, // 使用SSL方式(安全方式矩肩,防止被竊取信息)

? ? auth : {

? ? ? ? user : '你的郵箱地址',

? ? ? ? pass : '你的郵箱密碼'

? ? },

});

注意现恼,低版本的nodemailer可能需要多傳入一個參數(shù)“SMTP”:

var mailTransport = nodemailer.createTransport('SMTP', {

? ? host : 'smtp.sina.com',

? ? secureConnection: true, // use SSL

? ? auth : {

? ? ? ? user : '你的郵箱地址',

? ? ? ? pass : '你的郵箱密碼'

? ? },

});

2.3 發(fā)送郵件

/* 瀏覽器輸入地址(如127.0.0.1:3000/sned)后即發(fā)送 */

router.get('/send', function(req, res, next) {

? ? var options = {

? ? ? ? from? ? ? ? : '"你的名字" <你的郵箱地址>',

? ? ? ? to? ? ? ? ? : '"用戶1" <郵箱地址1>, "用戶2" <郵箱地址2>',

? ? ? ? // cc? ? ? ? : ''? //抄送

? ? ? ? // bcc? ? ? : ''? ? //密送

? ? ? ? subject? ? ? ? : '一封來自Node Mailer的郵件',

? ? ? ? text? ? ? ? ? : '一封來自Node Mailer的郵件',

? ? ? ? html? ? ? ? ? : '<h1>你好,這是一封來自NodeMailer的郵件!</h1><p><img src="cid:00000001"/></p>',

? ? ? ? attachments :

? ? ? ? ? ? ? ? ? ? [

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? filename: 'img1.png',? ? ? ? ? ? // 改成你的附件名

? ? ? ? ? ? ? ? ? ? ? ? ? ? path: 'public/images/img1.png',? // 改成你的附件路徑

? ? ? ? ? ? ? ? ? ? ? ? ? ? cid : '00000001'? ? ? ? ? ? ? ? // cid可被郵件使用

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? filename: 'img2.png',? ? ? ? ? ? // 改成你的附件名

? ? ? ? ? ? ? ? ? ? ? ? ? ? path: 'public/images/img2.png',? // 改成你的附件路徑

? ? ? ? ? ? ? ? ? ? ? ? ? ? cid : '00000002'? ? ? ? ? ? ? ? // cid可被郵件使用

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ]

? ? };

? ?

? ? mailTransport.sendMail(options, function(err, msg){

? ? ? ? if(err){

? ? ? ? ? ? console.log(err);

? ? ? ? ? ? res.render('index', { title: err });

? ? ? ? }

? ? ? ? else {

? ? ? ? ? ? console.log(msg);

? ? ? ? ? ? res.render('index', { title: "已接收:"+msg.accepted});

? ? ? ? }

? ? });

});

如果你要發(fā)送附件叉袍,則先把要發(fā)送的文件放入工程中始锚,并修改上面代碼的附件的filename和path。

從代碼中可以知道喳逛,要在郵件正文中添加圖片瞧捌,可以設(shè)置圖片的cid,然后在img標(biāo)簽的src中設(shè)置為對應(yīng)的cid即可润文。

注意姐呐,不建議在js代碼中直接嵌入HTML代碼,也不建議把圖片加到郵件正文中典蝌。

3.測試

瀏覽器輸入地址(如127.0.0.1:3000/sned)皮钠。

發(fā)送等待的時間視附件大小及網(wǎng)絡(luò)帶寬等因素不同,如果有一個很大的附件要發(fā)送赠法,可能會等待很長時間麦轰;所以,建議在測試的時候使用小文件砖织。

如果發(fā)送成功款侵,會給出提示:

發(fā)送結(jié)果
并在郵箱里收到相應(yīng)的郵件
收到的郵件
參考資料:

1.《Node與Express開發(fā)》,人民郵電出版社

2.使用NodeJS搭建郵件自動發(fā)送服務(wù)器

3.Nodejs發(fā)郵件組件Nodemailer

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侧纯,一起剝皮案震驚了整個濱河市新锈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌眶熬,老刑警劉巖妹笆,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異娜氏,居然都是意外死亡拳缠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門贸弥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窟坐,“玉大人,你說我怎么就攤上這事绵疲≌茉В” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵盔憨,是天一觀的道長徙菠。 經(jīng)常有香客問我,道長郁岩,這世上最難降的妖魔是什么婿奔? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任缺狠,我火速辦了婚禮,結(jié)果婚禮上脸秽,老公的妹妹穿的比我還像新娘儒老。我一直安慰自己,他們只是感情好记餐,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布驮樊。 她就那樣靜靜地躺著,像睡著了一般片酝。 火紅的嫁衣襯著肌膚如雪囚衔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天雕沿,我揣著相機(jī)與錄音练湿,去河邊找鬼。 笑死审轮,一個胖子當(dāng)著我的面吹牛肥哎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播疾渣,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼篡诽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了榴捡?” 一聲冷哼從身側(cè)響起杈女,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吊圾,沒想到半個月后达椰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡项乒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年啰劲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片板丽。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡呈枉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出埃碱,到底是詐尸還是另有隱情,我是刑警寧澤酥泞,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布砚殿,位于F島的核電站,受9級特大地震影響芝囤,放射性物質(zhì)發(fā)生泄漏似炎。R本人自食惡果不足惜辛萍,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望羡藐。 院中可真熱鬧贩毕,春花似錦、人聲如沸仆嗦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瘩扼。三九已至谆甜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間集绰,已是汗流浹背规辱。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留栽燕,地道東北人罕袋。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像碍岔,于是被迫代替她去往敵國和親浴讯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容