前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS来一个极简的每日毒鸡汤

JS来一个极简的每日毒鸡汤

作者头像
流眸
发布2021-01-04 11:57:54
1.1K0
发布2021-01-04 11:57:54
举报

前言

最近发现了基于node的一个发送邮件的小插件,逛论坛看别人用它做了一些有意思的东西,也模仿着搞一个分享下~ 重在分享,重在分享!

期望

1. 目标

使用基于nodeJs的nodemailer定时发送随机文案给指定人。

展示

2. 场景

  • 定时发送情话给对象
  • 每日发送给自己朋友圈文案内容
  • ...

实现

1. 所需技术

  • 基础js即可

2. 所需环境/插件

  • nodeJs (环境)
  • nodemailer(发送邮件插件)
  • axios(获取邮件内容,如朋友圈文案、毒鸡汤等)
  • schedule(定时任务插件)

3. 其他

除上述内容,我们需要有邮件相关信息:自己邮箱和对方邮箱、邮箱服务器地址及端口号、自己邮箱的授权码等。下面会有比较详细的介绍。

实现过程

1. node环境安装

首先安装及配置node环境,官网下载安装即可。node中文网[1]

2. 插件安装

自己按照需求安装即可:

代码语言:javascript
复制
// nodemailer:必须
npm i nodemailer

// axios:获取随机鸡汤(毒鸡汤)作为邮件内容;非必须
npm i axios

// schedule:定时任务;非必须
npm i schedule

3. 项目配置

  1. 新建个空目录作为项目目录
  2. 在终端(或者cmd模式)—— npm init
  3. 项目目录下新建index.js

4. index详细配置

代码语言:javascript
复制
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 = "xxxxxx@163.com";  // 用户(自己)邮箱
    let passCode = "xxxxxx";  // 用户(自己)邮箱授权码
    let mailTo = "xxxxxx@xxx.xxx";    // 对方邮箱
    // 用户账号信息,以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的一些个小插件的使用而已。虽然简单,但是发挥一下,在合适的时间用在合适的地方还是会有一些效果出现的~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 流眸 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 期望
    • 1. 目标
      • 2. 场景
      • 实现
        • 1. 所需技术
          • 2. 所需环境/插件
            • 3. 其他
            • 实现过程
              • 1. node环境安装
                • 2. 插件安装
                  • 3. 项目配置
                    • 4. index详细配置
                    • 小结
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档