使用Node.js還可以發(fā)郵件?
前言
今天,我們給大家開發(fā)一個(gè)小效果。篇幅比較短,主要給大家展示效果。
實(shí)戰(zhàn)
1.首先我們初始化一個(gè)Node項(xiàng)目
- npm init -y
2.創(chuàng)建一個(gè)app.js文件
- 'use strict';
- const nodemailer = require('nodemailer');
- let transporter = nodemailer.createTransport({
- // host: 'smtp.ethereal.email',
- service: 'qq', // 使用了內(nèi)置傳輸發(fā)送郵件 查看支持列表:https://nodemailer.com/smtp/well-known/
- port: 465, // SMTP 端口
- secureConnection: true, // 使用了 SSL
- auth: {
- user: 'xxx@qq.com', // 這里以QQ郵箱為例
- pass: 'kzudmlwerknibejc', // 設(shè)置的smtp授權(quán)碼
- }
- });
- let mailOptions = {
- from: '"xxx" <xxx@qq.com>', // sender
- to: 'xxx@163.com', // receivers
- subject: 'Hello', // Subject line
- // 發(fā)送text或者h(yuǎn)tml格式
- // text: 'Hello world?', // plain text body
- html: '<b>Hello world?</b>' // html body
- };
- // send mail with defined transport object
- transporter.sendMail(mailOptions, (error, info) => {
- if (error) {
- return console.log(error);
- }
- console.log('Message sent: %s', info.messageId);
- // Message sent: <04ec7731-cc68-1ef6-303c-61b0f796b78f@qq.com>
- });
Nodemailer是一個(gè)簡單易用的Node.js郵件發(fā)送組件。
官網(wǎng)地址:https://nodemailer.com
GitHub地址:https://github.com/nodemailer/nodemailer
Nodemailer的主要特點(diǎn)包括:
- 支持Unicode編碼
- 支持Window系統(tǒng)環(huán)境
- 支持HTML內(nèi)容和普通文本內(nèi)容
- 支持附件(傳送大附件)
- 支持HTML內(nèi)容中嵌入圖片
- 支持SSL/STARTTLS安全的郵件發(fā)送
- 支持內(nèi)置的transport方法和其他插件實(shí)現(xiàn)的transport方法
- 支持自定義插件處理消息
- 支持XOAUTH2登錄驗(yàn)證
3.獲取smtp授權(quán)碼
登錄QQ郵箱,點(diǎn)擊郵箱設(shè)置。

找到如下圖紅框所示,開啟IMAP/SMTP服務(wù)后,就可以隨機(jī)獲取授權(quán)碼了。

4.啟動(dòng)項(xiàng)目
- node app.js
優(yōu)化
可以使用node-schedule來創(chuàng)建定時(shí)任務(wù),單位時(shí)間段可以執(zhí)行代碼發(fā)送郵件。
- npm install node-schedule
結(jié)語
謝謝閱讀,希望沒有浪費(fèi)你的時(shí)間。