這篇文章主要介紹了node.js使用nodemailer發送郵件的方法,例子中使用的是QQ郵箱,你也可以修改成其它的郵箱如163、gmail等,需要的朋友可以參考下
一、安裝 nodemailer 代碼如下:npm install nodemailer --save 二、調用 代碼如下:var nodemailer = require("nodemailer"); // 開啟一個 SMTP 連接池 var smtpTransport = nodemailer.createTransport("SMTP",{ host: "smtp.qq.com", // 主機 secureConnection: true, // 使用 SSL port: 465, // SMTP 端口 auth: { user: "[email protected]", // 賬號 pass: "xxxxxxxx" // 密碼 } }); // 設置郵件內容 var mailOptions = { from: "Fred Foo <[email protected]>", // 發件地址 to: "[email protected], [email protected]", // 收件列表 subject: "Hello world", // 標題 html: "<b>thanks a for visiting!</b> 世界,你好!" // html 內容 } // 發送郵件 smtpTransport.sendMail(mailOptions, function(error, response){ if(error){ console.log(error); }else{ console.log("Message sent: " + response.message); } smtpTransport.close(); // 如果沒用,關閉連接池 }); 三、常見錯誤 代碼如下: { [AuthError: Invalid login - 454 Authentication failed, please open smtp flag first!] name: 'AuthError', data: '454 Authentication failed, please open smtp flag first!', stage: 'auth' } 錯誤原因: 賬號未設置該服務 解決方案: QQ郵箱 -> 設置 -> 帳戶 -> 開啟服務:POP3/SMTP服務 代碼如下: { [SenderError: Mail from command failed - 501 mail from address must be same as authorization user] name: 'SenderError', data: '501 mail from address must be same as authorization user', stage: 'mail' } 錯誤原因: 發件賬號與認證賬號不同