用js代码给老婆每天发一句情话
用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代码给老婆每天发一句情话相关推荐
- 如何用js给图片重置宽_如何用js给老婆每天发情话
作者: 加百利真胖 原文:https://juejin.cn/events/all 一.引言 最近家里添了小孩,在家带娃陪产了一些天,深刻体会到老婆带孩子的辛苦. 工作的时候不能在家陪她,就想着写个程 ...
- 如何用js给老婆每天发情话?
一.引言 最近家里添了小孩,在家带娃陪产了一些天,深刻体会到老婆带孩子的辛苦. 工作的时候不能在家陪她,就想着写个程序,每天固定在固定时间给她发一些情话,好让她在带娃的时候也能感受到老公的爱心,帮她缓 ...
- 超nb的网页标签弹窗js代码!
首先说一下业务需求: 需要在当前各主流浏览器上从tab标签形式弹出一个页面,尽量不要以单独窗口弹出. 下面是网上搜集并修改.验证后的js代码,以备以后参阅. function getUnionCook ...
- 一行js代码识别Selenium+Webdriver及其应对方案
有不少朋友在开发爬虫的过程中喜欢使用Selenium + Chromedriver,以为这样就能做到不被网站的反爬虫机制发现. 先不说淘宝这种基于用户行为的反爬虫策略,仅仅是一个普通的小网站,使用一行 ...
- 判断是否移动端设备的JS代码,超短,百度都用它
为什么80%的码农都做不了架构师?>>> 大多数人都使用跳转适配的方式实现PC端到移动端的网页转换,而大多数人又是使用通过判断UA的方法来区分PC端还是移动端,思路一样,但代码 ...
- 爬虫之selenium控制浏览器执行js代码
爬虫之selenium控制浏览器执行js代码 selenium可以让浏览器执行我们规定的js代码,运行下列代码查看运行效果 import time from selenium import webdr ...
- 浮层java_通过遮罩层实现浮层DIV登录的js代码
摘要:这篇JavaScript栏目下的"通过遮罩层实现浮层DIV登录的js代码",介绍的技术点是"浮层DIV.JS代码.div.遮罩层.登录.代码",希望对大家 ...
- 用鼠标拖动图片的JS代码
代码简介: 用鼠标拖动一个图片移动,就像拖动一个层一样,这是一个JS拖动类代码,你可以无限制的增加图片,代码复用率比较高. 代码内容: View Code <html><HEAD&g ...
- html实体编码遇上js代码
单双引号 在js代码中 在js中单.双引号引起来的是字符串,如果我们要在字符串中使用单.双引号,需要反斜杠进行转义 let str='user\'s name'; // or let str=&quo ...
最新文章
- 关于visualizer的setEnabled()方法何时进行设置成false?
- (二十)java多线程之ScheduledThreadPoolExecutor
- Struts入门(三)深入Struts用法讲解
- Idea中搭建Wildfly(JBoss)运行环境(Mac)
- wpf使用webbrowser时提示当前页面脚本发生错误_win7系统internet脚本错误的应对办法...
- (2021) 22 [持久化] 1-Bit的存储
- 字符串表示形式—字符数组和字符指针的区别
- mongodb 持久化 mysql_最详细的python爬虫指南(四):持久化操作(mongoDB、mysql)...
- 数据结构 1-0 绪论
- 基于图像界面工具postman进行测试
- OPNET网络仿真分析-1.6、OPNET软件使用
- 《Java程序设计》第16周周四:GUI编程及文件对话框的使用
- java转发_Java中Request请求转发详解
- 图像处理中的数学原理归类
- python网络数据采集 第二版_Python网络数据采集 (影印版)第2版
- iOS 打开AppStore指定app下载页
- 如何修改命令提示符(cmd)的颜色?
- 服务器删除安装的系统教程,服务器安装系统教程
- 瑞萨L4级自动驾驶方案---基于R-Car V3H SoC的自动驾驶
- view_video.php,android,_Android开发,使用ViewVideo无法播放mp4文件?,android - phpStudy