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】获取该项目代码~

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