JS來一個極簡的每日毒雞湯

前言

最近發現了基於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. 項目配置

  1. 新建個空目錄作爲項目目錄
  2. 在終端(或者cmd模式)—— npm init
  3. 項目目錄下新建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】獲取該項目代碼~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章