作者: 加百利真胖

原文:https://juejin.cn/events/all

一、引言

最近家里添了小孩,在家带娃陪产了一些天,深刻体会到老婆带孩子的辛苦。

工作的时候不能在家陪她,就想着写个程序,每天固定在固定时间给她发一些情话,好让她在带娃的时候也能感受到老公的爱心,帮她缓解一下带娃的烦躁心情。

考虑的到qq和微信有诸多的限制(一不小心就被封),先来个邮箱版本的吧!

Stack Overflow 联合创始人杰夫·阿特伍德曾经说过,任何一个能用 JavaScript 编写的应用系统,最终都必将使用 JavaScript 实现。

Atwood’s Law是Jeff Atwood在2007年提出的:"any application that can be written in JavaScript, will eventually be written in JavaScript。

大佬的定律都出来了,只能说js牛x!

我们的技术选型 就是nodejs,首先你得安装一个nodejs,然后我们主要使用一个模块Nodemailer

下载链接和截图

二、nodemailer介绍

nodemailer是一个发送邮件npm包,我们可以使用它方便快捷的给任何人发送邮件。

三、nodemailer的安装

打开终端(windows下使用win+r,然后输入cmd,回车即可)

然后输入如下命令

mkdir mailBot  #cmd创建文件夹mailBot(touch mailBot  #如果是Linux可以用touch命令)cd mailBot  #进入文件夹npm init -y #初始化npmnpm install nodemailer  #安装邮件发送模块复制代码

我们创建一个mailBot文件夹,在终端中进入文件夹,初始化npm,然后安装nodemailer

四、nodemailer的使用-发送邮件

接下来在项目中新建 index.js 文件,编写如下代码

const nodemailer = require("nodemailer");// 发送邮件函数async function sendMail(text) {var user = "xxx@qq.com";//自己的邮箱var pass = "xxx"; //qq邮箱授权码,如何获取授权码下面有讲var to = "waitfor_1153@qq.com";//对方的邮箱let transporter = nodemailer.createTransport({    host: "smtp.qq.com",    port: 587,    secure: false,    auth: {      user: user, // 用户账号      pass: pass, //授权码,通过QQ获取    },  });let info = await transporter.sendMail({    from: `亲爱的老公<${user}>`, // sender address    to: `亲爱的老婆<${to}>`, // list of receivers    subject: "亲爱的老婆", // Subject line    text: text, // plain text body  });console.log("发送成功");}

//测试一下send('你好老婆')

复制代码

在终端中输入 node index.js 就可以执行js文件的代码!

通过以上代码,我们就可以发送 任意一句话给你想发送的人!

注意:qq邮箱的pass(授权码)需要进入 qq邮箱 的【设置】-【账户】,然后如下图1的地方,开启smtp,下图2的地方查看你的授权码

五、自动生成情话

当然现在还有个缺点,既然要献爱心,那就要发句比较好听的话,我们也叫彩虹屁。。。

有个彩虹屁生成网站,网站名字很有意思,自己体会。

我们使用这个网站的接口来生成我们要说的内容。

使用axios模块来下载生成的情话。

安装axios,在终端中输入如下命令

npm i axios复制代码

使用axios获取情话,在index.js中 增加如下代码:

const { default: Axios } = require("axios");function getHoneyedWords() {var url = "https://chp.shadiao.app/api.php";//获取这个接口的信息return Axios.get(url);}复制代码

六、使用邮件发送情话

index.js中增加测试邮件发送代码如下

//获取情话getHoneyedWords().then(res=>{console.log(res.data)//发送邮件    sendMail(res.data);})

复制代码

终端中输入node index.js

**结果显示 :**春水初生,春林初盛,春风十里,不如你!

七、每天定时发送

考虑到每天定时发送会显示的更有诚意,接下来搞个定时发送。我们需要启动个定时任务,使用node-schedule模块。

安装,终端中输入如下

npm install node-schedule复制代码

使用,index.js增加如下代码

const schedule = require("node-schedule");//每天下午5点21分发送schedule.scheduleJob({ hour: 17, minute: 21 }, function () {console.log("启动任务:" + new Date());  getHoneyedWords().then((res) => {console.log(res.data);    sendMail(res.data);  });});

复制代码

终端中输入node index.js

这样每天下午5点21分就会自动发送一句情话!

就连家庭地位都提高了呢!

—————END—————

最后

欢迎关注【前端瓶子君】✿✿ヽ(°▽°)ノ✿欢迎关注「前端瓶子君」,回复「算法」,加入前端算法源码编程群,每日一刷(工作日),每题瓶子君都会很认真的解答哟!回复「交流」,吹吹水、聊聊技术、吐吐槽!回复「阅读」,每日刷刷高质量好文!如果这篇文章对你有帮助,「在看」是最大的支持


》》面试官也在看的算法资料《《“在看和转发”就是最大的支持

如何用js给图片重置宽_如何用js给老婆每天发情话相关推荐

  1. php根据图片地址获取图片原始高宽,Js获取图片原始宽高的实现代码

    如果我们页面看到的图片都是缩略图,那就需要做个图片点击放大效果,那么怎样获取图片的原始宽高呢?方法如下: //获取图片原始宽度 function getNaturalWidthAndHeight(im ...

  2. js 获取图片原始宽高并等比例缩放

    近期做一个驾考项目,由于每张图片加载的时候比例大小都不一样,在试题练习中加载图片时大部分图片会变形,导致图片展示效果非常差,所以我们可以获取图片的原始宽高,然后以等比例展示,效果会非常好.以下就是实现 ...

  3. js模板字符串自定义类名_【Vue.js 入门到实战教程】07Vue 组件注册 | 基本使用和组件嵌套...

    来源 | https://xueyuanjun.com/post/21929除了前面介绍的基本语法之外,Vue.js 还支持通过组件构建复杂的功能模块,组件可以称得上是 Vue.js 的灵魂,是 Vu ...

  4. js 格式化 java时间格式化_用JavaScript(js)对时间格式化

    可以说是Web项目中不可或缺的一个Javascript类库,它可以帮助你快速的解决客户端编程的许多问题,下面贴出一个用js格式化时间的方法. Date.prototype.format=functio ...

  5. h5+js调取相机做取景框_使用Vue.js开发微信小程序:开源框架mpvue解析

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 成全 责编 | 阿秃 转自 | 美团技术团队企业博客 前言 mpvue是一款使用Vue.js开发微信小程序的前端框架.使用此框架,开 ...

  6. 如何用js给老婆每天发情话?

    一.引言 最近家里添了小孩,在家带娃陪产了一些天,深刻体会到老婆带孩子的辛苦. 工作的时候不能在家陪她,就想着写个程序,每天固定在固定时间给她发一些情话,好让她在带娃的时候也能感受到老公的爱心,帮她缓 ...

  7. python如何让图片镜像翻转_如何用 Python 增量备份 Roam Research 笔记图片?

    消除后顾之忧,轻松输入卡片笔记. 题图:Photo by Markus Spiske on Unsplash 前些日子,我用视频的方式给你介绍了 Roam Research 这款工具.如果你还没有来得 ...

  8. js打乱数组的顺序_如何用 js 实现一个类似微信红包的随机算法

    如何用 js 实现一个类似微信红包的随机算法 js, 微信红包, 随机算法 "use strict"; /** * * @author xgqfrms * @license MIT ...

  9. ajax java 图片加载_如何用Ajax加载服务器的图片

    用Ajax请求服务器的图片,并显示在浏览器中 前言 一直在数据库里面存的都是图片在服务器的地址,然后再到浏览器中显示,但是发现两个问题 第一:为了安全起见,js是无法读取本地的图片的,不然你写一个js ...

最新文章

  1. Metasploit攻击Oracle的环境搭建
  2. 横向ListView(四) —— 添加滚动条
  3. 设置按峰值带宽计费_腾讯云服务器按流量计费带宽值大小设置说明
  4. 清楚linux缓存文件,Linux删除文件 清除缓存
  5. AnyTrans使用教程:将照片从 Mac 传输到 iPhone 的方法
  6. SAP License:BWBCS学习笔记20210304
  7. Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test
  8. Python datetime 格式化字符串:strftime()
  9. 行内块 块级元素 行内元素
  10. [linux]查看机器有几个cpu,是否支持64位
  11. raspbian linux,如何在 Raspberry Pi 上安装 Raspbian
  12. mindoc快速搭建教程
  13. 计算适应度函数(目标函数)(单目标)
  14. 英语专业,不想做老师,还能做什么工作?
  15. 制作linux只读文件系统,一种Squashfs只读根文件系统的远程升级方法及系统的制作方法...
  16. 高中数学一对一培训高中数学必修一知识点总结
  17. 关于Android开发工程师的从业预期与自我要求
  18. 第四章:用Python对用户的评论数据进行情感倾向分析
  19. 关于OV5640的DVP接口的小结
  20. 通知计算机大赛的英语作文,关于诗歌比赛(通知)的英语作文

热门文章

  1. 深入浅出 Spring 架构设计
  2. 架构设计之「 微服务入门 」
  3. Hadoop精华问答 | Hadoop 和Spark有什么区别?
  4. 有问有答 | 你真的理解微服务架构吗?
  5. Service Mesh 在华为公有云的实践
  6. es6 Symbol iterator接口
  7. 19年兰州大学计算机分数线,兰州大学2019年在广东省录取分数线
  8. hive sql练习_经典的SparkSQL/Hive-SQL/MySQL面试-练习题
  9. Java 实现Https访问工具类 跳过ssl证书验证
  10. 权限管理快速入门_01