需要安裝的node模塊
nodemailer
新建項目目錄 mail-test
進入這個項目里使用終端初始化package.json(npm init)
安裝express和nodemailer並保存安裝信息到package.json文件中
cnpm i express nodemailer -S
安裝完后package.json里就這樣
我全局安裝了nodemon, 在package.json中的main是index.js ,所以我新建index.js作為入口文件 使用nodemon能在項目文件修改后自動重啟項目
在index.js里引入express並實例化express對象
引入nodemailer

開啟一個服務器 然后使用express的路由 在路由里調用發郵件的方法
使用nodemon命令運行項目
nodemon
瀏覽器訪問/sendMail路由
接口跑通了,可以開始寫發郵件的事件了
①配置郵件服務器連接信息
nodemailer.createTransport() 方法 往里傳一個對象,對象里有參數
service 項 使用什么郵箱就寫什么郵箱的名字 用qq的就寫qq 用163的就寫163
secure 項 安全的發送模式 true
auth 項 登錄驗證 user 是發郵件的用戶名 pass是發郵件的授權碼(沒有授權碼的登錄網頁版郵箱獲取,在郵箱的IMAP/SMTP服務里打開 獲得授權碼)
let transporter = nodemailer.createTransport({ service:"163", // 郵箱 secure:true, // 安全的發送模式 auth:{ user:"weasth@163.com", // 發件人郵箱 pass:"授權碼"// 授權碼 } })
②配置郵件選項
mailOptions是一個對象
from 項 從哪個賬號發送,和第一步中的發件人一致
to 項 要接收的郵箱,多個收件人用逗號隔開
cc 項 抄送發送的郵箱,用不着不寫
bcc 項 密送的郵箱,用不着不寫
subject 項 郵件的標題
text 項 郵件的內容
let mailOptions = { from:"weasth@163.com", to:"991375252@qq.com", subject:"測試郵件主題", text:"測試郵件正文" }
③發送
使用transpoter.sendEmail()方法 這個方法接收兩個參數,第一個參數是 mailOptions 第二個參數是回調函數 回調函數第一個參數是錯誤信息 第二個參數是返回的內容
transporter.sendMail(mailOptions,(err,data) => { if(err){ console.log(err); res.json({status:400,msg:"send fail....."}) }else{ console.log(data); res.json({status:200,msg:"郵件發送成功....."}) } })
配置完成,現在在瀏覽器中訪問/sendMail 看看效果
瀏覽器中顯示發送成功,現在到郵箱里看看有沒有這個郵件
收到郵件了 至此 實現了用nodejs發送郵件
demo文件鏈接: