NodeJS 使用 nodemailer 傳送郵件
摘要:
類庫依賴
npm install nodemailer --save
匯入
const nodemailer = require("nodemailer");
關鍵點
配置nodemailer.createTrans...
類庫依賴
npm install nodemailer --save
匯入
const nodemailer = require("nodemailer");
關鍵點
- 配置nodemailer.createTransport 的引數,指定 服務地址,埠號,驗證的賬戶和密碼
- 配置 mailOptions ,from , to 指定傳送和目標,郵件內容等。
編寫程式碼示例
"use strict"; const nodemailer = require("nodemailer"); const MailSettings = require("../config/MailSettings"); // async..await is not allowed in global scope, must use a wrapper async function sendMailTo(mailUserName, mailContent){ // Generate test SMTP service account from ethereal.email // Only needed if you don't have a real mail account for testing let account = await MailSettings.createSenderAccount(); // create reusable transporter object using the default SMTP transport let transporter = nodemailer.createTransport({ host: "smtp.qiye.163.com", port: 994, secure: true, // true for 465, false for other ports auth: { user: account.user, // generated ethereal user pass: account.pass // generated ethereal password }, }); // setup email data with unicode symbols let mailOptions = { from: '中寰App通知公共郵箱 <[email protected]>', // sender address to: `${mailUserName}@aerozhonghuan.com`, // list of receivers subject: mailContent.subject, // Subject line // text: mailContent.text, // plain text body html: mailContent.html // html body }; // send mail with defined transport object let info = await transporter.sendMail(mailOptions); console.log("Message sent: %s", info.messageId); // Preview only available when sending through an Ethereal account console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info)); // Message sent: <[email protected]> // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou... } /* 使用 DEMO let mail = { subject: "驗證碼", // Subject line html: "你的驗證碼是 <B>123</B>", // plain text body } sendMail('zhangyunfei',mail).catch(console.error); */