使用Node.js還可以發郵件?
作者:maomin9761
今天,我們給大家開發一個小效果。篇幅比較短,主要給大家展示效果。
前言
今天,我們給大家開發一個小效果。篇幅比較短,主要給大家展示效果。
實戰
1.首先我們初始化一個Node項目
- npm init -y
2.創建一個app.js文件
- 'use strict';
- const nodemailer = require('nodemailer');
- let transporter = nodemailer.createTransport({
- // host: 'smtp.ethereal.email',
- service: 'qq', // 使用了內置傳輸發送郵件 查看支持列表:https://nodemailer.com/smtp/well-known/
- port: 465, // SMTP 端口
- secureConnection: true, // 使用了 SSL
- auth: {
- user: 'xxx@qq.com', // 這里以QQ郵箱為例
- pass: 'kzudmlwerknibejc', // 設置的smtp授權碼
- }
- });
- let mailOptions = {
- from: '"xxx" <xxx@qq.com>', // sender
- to: 'xxx@163.com', // receivers
- subject: 'Hello', // Subject line
- // 發送text或者html格式
- // 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是一個簡單易用的Node.js郵件發送組件。
官網地址:https://nodemailer.com
GitHub地址:https://github.com/nodemailer/nodemailer
Nodemailer的主要特點包括:
- 支持Unicode編碼
- 支持Window系統環境
- 支持HTML內容和普通文本內容
- 支持附件(傳送大附件)
- 支持HTML內容中嵌入圖片
- 支持SSL/STARTTLS安全的郵件發送
- 支持內置的transport方法和其他插件實現的transport方法
- 支持自定義插件處理消息
- 支持XOAUTH2登錄驗證
3.獲取smtp授權碼
登錄QQ郵箱,點擊郵箱設置。

找到如下圖紅框所示,開啟IMAP/SMTP服務后,就可以隨機獲取授權碼了。

4.啟動項目
- node app.js
優化
可以使用node-schedule來創建定時任務,單位時間段可以執行代碼發送郵件。
- npm install node-schedule
結語
謝謝閱讀,希望沒有浪費你的時間。
責任編輯:姜華
來源:
前端歷劫之路