您好,登錄后才能下訂單哦!
怎么在Node.js中利用NodeMailer發送郵件?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1.部署
1.1 部署Express
如果不知道如何部署,可參照:部署Express
1.2 準備一個郵箱并開始SMTP服務
為了實現這個功能,你首先要有一個郵箱;由于需要使用SMTP方式發送,你還需要開啟相關功能。你可以登錄你的郵箱,然后開啟這個設置,以新浪郵箱和QQ郵箱為例:
2.服務器端
2.1 使用nodemailer
這里要用到nodemailer,需要自行安裝:
npm install nodemailer --save
在routes/index.js中引用nodemailer:
var multer = require('nodemailer');
2.2 配置
在routes/index.js中創建一個傳輸方式:
var mailTransport = nodemailer.createTransport({ host : 'smtp.sina.com', secureConnection: true, // 使用SSL方式(安全方式,防止被竊取信息) auth : { user : '你的郵箱地址', pass : '你的郵箱密碼' }, });
注意,低版本的nodemailer可能需要多傳入一個參數“SMTP”:
var mailTransport = nodemailer.createTransport('SMTP', { host : 'smtp.sina.com', secureConnection: true, // use SSL auth : { user : '你的郵箱地址', pass : '你的郵箱密碼' }, });
2.3 發送郵件
/* 瀏覽器輸入地址(如127.0.0.1:3000/sned)后即發送 */ router.get('/send', function(req, res, next) { var options = { from : '"你的名字" <你的郵箱地址>', to : '"用戶1" <郵箱地址1>, "用戶2" <郵箱地址2>', // cc : '' //抄送 // bcc : '' //密送 subject : '一封來自Node Mailer的郵件', text : '一封來自Node Mailer的郵件', html : '<h2>你好,這是一封來自NodeMailer的郵件!</h2><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}); } }); });
如果你要發送附件,則先把要發送的文件放入工程中,并修改上面代碼的附件的filename和path。
從代碼中可以知道,要在郵件正文中添加圖片,可以設置圖片的cid,然后在img標簽的src中設置為對應的cid即可。
注意,不建議在js代碼中直接嵌入HTML代碼,也不建議把圖片加到郵件正文中。
3.測試
瀏覽器輸入地址(如127.0.0.1:3000/sned)。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。