用js代码给老婆每天发一句情话

一、引言

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

​ 考虑的到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,然后我们主要使用一个npm模块Nodemailer。

下载地址

二、nodemailer介绍

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

三、nodemailer的安装

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

然后输入如下命令

touch mailBot  #创建文件夹mailBot
cd mailBot  #进入文件夹
npm init -y #初始化npm
npm 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 addressto: `亲爱的老婆<${to}>`, // list of receiverssubject: "亲爱的老婆", // Subject linetext: 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);});
});

终端中输入nodej index.js

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

new Date());
getHoneyedWords().then((res) => {
console.log(res.data);
sendMail(res.data);
});
});


终端中输入nodej index.js这样每天下午5点21分就会自动发送一句情话!![在这里插入图片描述](https://img-blog.csdnimg.cn/20210519135212138.gif#pic_center)

用js代码给老婆每天发一句情话相关推荐

  1. 如何用js给图片重置宽_如何用js给老婆每天发情话

    作者: 加百利真胖 原文:https://juejin.cn/events/all 一.引言 最近家里添了小孩,在家带娃陪产了一些天,深刻体会到老婆带孩子的辛苦. 工作的时候不能在家陪她,就想着写个程 ...

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

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

  3. 超nb的网页标签弹窗js代码!

    首先说一下业务需求: 需要在当前各主流浏览器上从tab标签形式弹出一个页面,尽量不要以单独窗口弹出. 下面是网上搜集并修改.验证后的js代码,以备以后参阅. function getUnionCook ...

  4. 一行js代码识别Selenium+Webdriver及其应对方案

    有不少朋友在开发爬虫的过程中喜欢使用Selenium + Chromedriver,以为这样就能做到不被网站的反爬虫机制发现. 先不说淘宝这种基于用户行为的反爬虫策略,仅仅是一个普通的小网站,使用一行 ...

  5. 判断是否移动端设备的JS代码,超短,百度都用它

    为什么80%的码农都做不了架构师?>>>    大多数人都使用跳转适配的方式实现PC端到移动端的网页转换,而大多数人又是使用通过判断UA的方法来区分PC端还是移动端,思路一样,但代码 ...

  6. 爬虫之selenium控制浏览器执行js代码

    爬虫之selenium控制浏览器执行js代码 selenium可以让浏览器执行我们规定的js代码,运行下列代码查看运行效果 import time from selenium import webdr ...

  7. 浮层java_通过遮罩层实现浮层DIV登录的js代码

    摘要:这篇JavaScript栏目下的"通过遮罩层实现浮层DIV登录的js代码",介绍的技术点是"浮层DIV.JS代码.div.遮罩层.登录.代码",希望对大家 ...

  8. 用鼠标拖动图片的JS代码

    代码简介: 用鼠标拖动一个图片移动,就像拖动一个层一样,这是一个JS拖动类代码,你可以无限制的增加图片,代码复用率比较高. 代码内容: View Code <html><HEAD&g ...

  9. html实体编码遇上js代码

    单双引号 在js代码中 在js中单.双引号引起来的是字符串,如果我们要在字符串中使用单.双引号,需要反斜杠进行转义 let str='user\'s name'; // or let str=&quo ...

最新文章

  1. 关于visualizer的setEnabled()方法何时进行设置成false?
  2. (二十)java多线程之ScheduledThreadPoolExecutor
  3. Struts入门(三)深入Struts用法讲解
  4. Idea中搭建Wildfly(JBoss)运行环境(Mac)
  5. wpf使用webbrowser时提示当前页面脚本发生错误_win7系统internet脚本错误的应对办法...
  6. (2021) 22 [持久化] 1-Bit的存储
  7. 字符串表示形式—字符数组和字符指针的区别
  8. mongodb 持久化 mysql_最详细的python爬虫指南(四):持久化操作(mongoDB、mysql)...
  9. 数据结构 1-0 绪论
  10. 基于图像界面工具postman进行测试
  11. OPNET网络仿真分析-1.6、OPNET软件使用
  12. 《Java程序设计》第16周周四:GUI编程及文件对话框的使用
  13. java转发_Java中Request请求转发详解
  14. 图像处理中的数学原理归类
  15. python网络数据采集 第二版_Python网络数据采集 (影印版)第2版
  16. iOS 打开AppStore指定app下载页
  17. 如何修改命令提示符(cmd)的颜色?
  18. 服务器删除安装的系统教程,服务器安装系统教程
  19. 瑞萨L4级自动驾驶方案---基于R-Car V3H SoC的自动驾驶
  20. view_video.php,android,_Android开发,使用ViewVideo无法播放mp4文件?,android - phpStudy

热门文章

  1. 将JavaFX的ScrollPane的滚动条隐藏
  2. 计算机的桌面图片还原,电脑桌面误删的照片文件该如何恢复
  3. 如何才能有效地推进精益生产的管理?
  4. 网页上的声音如何在线录制,电脑音频录制软件哪个好
  5. Paper:《ELMO:Deep contextualized word representations》翻译与解读
  6. 第四章 4.3 用代入法求解递归式
  7. Latex中改变下标的字体尺寸
  8. vue3前端实现微信支付
  9. 子苗教育:抖音推荐服务审核规范具体要求
  10. windows平台下建立HTTP站点及FTP服务器站点