前言
最近發現了基於node的一個發送郵件的小插件,逛論壇看別人用它做了一些有意思的東西,也模仿着搞一個分享下~
重在分享,重在分享!
期望
1. 目標
使用基於nodeJs的nodemailer
定時發送隨機文案
給指定人。
2. 場景
- 定時發送情話給對象
- 每日發送給自己朋友圈文案內容
- ...
實現
1. 所需技術
- 基礎js即可
2. 所需環境/插件
- nodeJs (環境)
- nodemailer(發送郵件插件)
- axios(獲取郵件內容,如朋友圈文案、毒雞湯等)
- schedule(定時任務插件)
3. 其他
除上述內容,我們需要有郵件相關信息:自己郵箱和對方郵箱、郵箱服務器地址及端口號、自己郵箱的授權碼等。下面會有比較詳細的介紹。
實現過程
1. node環境安裝
首先安裝及配置node環境,官網下載安裝即可。node中文網
2. 插件安裝
自己按照需求安裝即可:
// nodemailer:必須
npm i nodemailer
// axios:獲取隨機雞湯(毒雞湯)作爲郵件內容;非必須
npm i axios
// schedule:定時任務;非必須
npm i schedule
3. 項目配置
- 新建個空目錄作爲項目目錄
- 在終端(或者cmd模式)——
npm init
- 項目目錄下新建
index.js
4. index詳細配置
const nodemailer = require('nodemailer');
const { default: Axios } = require('axios');
const schedule = require('node-schedule')
// 獲取文案
const getMsg = () => {
// 提供幾個文案獲取接口,隨便選即可。
// 毒雞湯: https://du.shadiao.app/api.php
// 朋友圈: https://pyq.shadiao.app/api.php
// 彩虹屁: https://chp.shadiao.app/api.php
// 罵人寶典: https://nmsl.shadiao.app/api.php
let url = 'https://du.shadiao.app/api.php';
return Axios.get(url);
}
// 發送郵件函數
const sendEmail = async msg => {
let myEmail = "[email protected]"; // 用戶(自己)郵箱
let passCode = "xxxxxx"; // 用戶(自己)郵箱授權碼
let mailTo = "[email protected]"; // 對方郵箱
// 用戶賬號信息,以163郵箱爲例
let transporter = nodemailer.createTransport({
host: 'smtp.163.com', // 服務器地址
port: 25, // 協議端口號
auth: {
user: myEmail, // 用戶郵箱
pass: passCode // 授權碼
}
});
// 發送內容編輯
let mailMsg = await transporter.sendMail({
from: myEmail, // 發件人(自己)
to: mailTo, // 收件人
subject: 'mailer測試:毒雞湯文案', // 標題
text: msg
})
// 成功後打印下~
console.log(`發送成功,發送內容爲:${msg}`);
}
// 定時發送 每天中午12:30(自己隨便改) 發送自己“喜歡”的內容給指定人
schedule.scheduleJob({
hour: 12,
minute: 30
}, () => {
console.log(`啓動任務:${new Date()}`);
getMsg().then(res => {
sendEmail(res.data); // 發送郵件
})
})
// 測試
// console.log(`啓動任務:${new Date()}`);
// getMsg().then(res => {
// sendEmail(res.data); // 發送郵件
// })
小結
通過上述代碼,完成簡易的每日毒雞湯發送給相應郵箱。但我們可以看出,這只是基於node的一些個小插件的使用而已。雖然簡單,但是發揮一下,在合適的時間用在合適的地方還是會有一些效果出現的~
喜歡的可以關注公衆號【流眸】回覆【201219】獲取該項目代碼~