最近做個網(wǎng)站,用戶賬號申請了,管理員需要核實,核實完畢才能激活用戶賬號。賬號核實后需要通知用戶,于是采用了發(fā)送電子郵件的方式。
發(fā)送電子郵件的服務(wù)器使用的是 smtp.qq.com,它的端口是465,這個需要在代碼里使用。
另外收電子郵件的服務(wù)器是pop.qq.com,端口995,接收電子郵件要用,這個以后說,也可以通過http://openmail.qq.com/ 里面的郵我直接發(fā)送郵件,省去很大的功夫。
1.安裝,引入nodemailer模塊
2.登錄qq郵箱,設(shè)置-》賬號-》POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)-》開啟服務(wù)-》POP3/SMTP服務(wù),
點擊開啟,用密保手機發(fā)送個短信就開啟了,開啟后記下它給的密碼,在代碼里要用。
3.前期準備工作完成,正式上代碼。(代碼官方都有的,只是我一開始沒弄明白配置里的host是什么,所以我就把電腦ip映射出去,填寫的外網(wǎng)地址,結(jié)果報錯 ECONNREFUSED,糾結(jié)了很久,翻了些文檔,難受。多簡單的事啊)
以下是代碼:
constnodemailer=require('nodemailer');
lettransporter=nodemailer.createTransport({
host:'smtp.qq.com', //qq發(fā)送郵件的服務(wù)器
port:465,//端口
secure: true,//啟用SSL協(xié)議
auth:{
user:'5**************2@qq.com', //你的郵箱賬號
pass:'b********************b' //開啟POP3/SMTP給的密碼,丟了沒關(guān)系,可以在開啟服務(wù)的下面有個溫馨提示,再次發(fā)送短信申請
}
});
letmailOptions={
from:"Fred Foo <534995272@qq.com>",// 發(fā)件地址
to:"5*************2@qq.com,5*************3@qq.com",// 收件列表,可以多個,也就是群發(fā),其他郵箱的也行,試過
subject:"Hello world",// 標題
html:"thanks a for visiting! 世界,你好!"http:// html 內(nèi)容
};
transporter.sendMail(mailOptions,(error,info)=>{ ?//開始發(fā)送郵件
if(error) {
returnconsole.log(error);
}
console.log('Message %s sent: %s',info.messageId,info.response);
});
ps:發(fā)送郵件功能有了,不來搞點什么郵箱驗證激活賬號,郵箱改密碼,郵箱驗證碼什么的,郵箱真的太好用了。貼圖滑稽,方案都想好了,嘿嘿嘿。
4.到此完成,接下來是發(fā)牢騷。這個不難,只是一開始沒有對方向。翻了很多文檔。一開始應(yīng)該開啟qq的smtp服務(wù)的,而且代碼里的主機應(yīng)該填寫qq接收郵件服務(wù)器的地址,這兩個沒對。而且nodemailer官方文檔里也沒說吧,或者我沒看到,英文太多了 ??吹降亩际切┡渲眠x項。難受,想哭。祝大家少主彎路。