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

256665e879739bf37b99d288a66f18a0.png

作者: 加百利真胖

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

一、引言

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

ab9e74d17a4c1bf6f28420418ba00110.png

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

考虑的到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!

13cd6bfd8baa1d4c6f3ced25689f385f.png

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

下载链接和截图

012b9c5cd6703c427b3acfa8da8f7f89.png

二、nodemailer介绍

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

三、nodemailer的安装

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

b7f2489b9ef986ee5e4e91d1ec7afe5d.png

76a5eaa82bf91bbf5edd3361677774ec.png

然后输入如下命令

mkdir mailBot  #cmd创建文件夹mailBot(touch mailBot  #如果是Linux可以用touch命令)
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 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的地方查看你的授权码

0f32b0256c5f66a190e839955d9b823d.png

五、自动生成情话

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

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

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

使用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分就会自动发送一句情话!

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

7be218a531301777db52c6b7082b5597.gif

—————END—————

最后

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528273.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

世界手机号码格式_世界上手机号码最长的国家是中国,最短的是哪个国家?

现在手机普及率非常之高&#xff0c;基本上人手至少一个手机&#xff0c;那么哪个国家的手机号码最长呢&#xff1f;其实世界上最长的电话号码&#xff0c;是11位数的中国手机号码。为什么手机号码是11位呢&#xff1f;1、号码格式决定我们的手机号可以分为三段&#xff0c;都有…

dockers log查询dockers的文件_Tomcat PUT方法任意文件上传

漏洞背景&#xff1a;tomcat(7.0.0-7.8.1)服务器,开启了HTTP PUT请求方法&#xff0c;web.xml文件中的readonly值设置未false漏洞环境&#xff1a;使用vulhub环境&#xff0c;直接dockers安装安装成功&#xff1a;安装vulhub详见&#xff1a;https://vulhub.org/#/index/漏洞利…

vue替换全部符合’字符串_技术成长日记-Vim实用技巧-4.7查找替换

1. 普通查找/ 向下查找? 向上查找n 查找下一个目标字符串N 查找上一个目标字符串q/ 回溯查找历史&#xff0c;输入该命令后会在状态栏上方显示一个查找历史回溯窗口&#xff0c;如图4.1&#xff1a; 图4.1 回溯查找历史可以选择之前执行过的查找&#xff0c;也可以在最后一行回…

bex5 mysql_bex5 库存系统的增删改查等功能对MYSQL数据库的维护操作 Windows Develop 276万源代码下载- www.pudn.com...

文件名称: bex5下载 收藏√ [5 4 3 2 1 ]开发工具: Java文件大小: 99 KB上传时间: 2017-05-18下载次数: 0提 供 者: 张天详细说明&#xff1a;库存系统的增删改查等功能对MYSQL数据库的维护操作- U5E93 u5B58 u7CFB u7EDF文件列表(点击判断是否您需要的文件&#xff0c;如…

excel导入mysql 截断_解决Excel导入数据库时出现的文本截断问题

问题在把Excel导入到数据库中时&#xff0c;发生文本截断问题&#xff1a;即导入的数据每行只有一部分&#xff0c;原始的Excel数据为&#xff1a;忽略错误导入SQLServer2008过程中&#xff0c;如果源数据和目标数据类型不匹配会导入失败&#xff0c;所以导入数据时会忽略错误&…

mysql表添加完整性约束_SQL语句——完整性约束

1.MySQL支持的完整性约束a.主键约束特点&#xff1a;唯一且非空主键可以由一个字段组成&#xff0c;也可以由多个字段组成如果主键由一个字段组成&#xff0c;既可以添加到列级&#xff0c;也可以添加到表级。如果主键由多个字段组成&#xff0c;则只能添加到表级。(1)在字段的…

通信线路工程验收规范 gb51171-2016_老杨一建通信学堂通信线路工程施工技术

引言&#xff1a;本章节以通信线路工程施工建设为主题&#xff0c;涵盖通信光(电)缆施工通用技术、架空、直埋、管道还有综合布线工程施工技术&#xff0c;深入浅出介绍通信线路工程建设中各环节的工作内容和涉及的相关规范。知识归纳卡名 称&#xff1a;1L412050 章 节…

python制作测试报告_使用 python 生成 extent report 测试报告

背景一直使用 HTMLTestRunner 生成 app 自动化的测试报告内容&#xff0c;虽然加了截图的展示&#xff0c;还是感觉报告不够好看。allure 报告内容可以&#xff0c;但是要以 pytest 管理测试 case&#xff0c;且 pytest 会执行所有以 test_命名的 case&#xff0c;测试结果只有…

twisted mysql_在Twisted下用MySQLadbapi获取自增id

D jango的ORM有一个很便捷的功能&#xff0c;其实也应该说是一个很基本的功能吧。就是在对一个model调用 save() 插入到数据库后&#xff0c;会将创建的D jango的ORM有一个很便捷的功能&#xff0c;其实也应该说是一个很基本的功能吧。就是在对一个model调用 save() 插入到数据…

java客户端_Java常用的Http client客户端

Http Client应用场景&#xff1a;Http协议是最重要的网络协议之一&#xff0c;目前移动端的开发、javaweb前后端分离架构&#xff0c;使越来越多的java应用使用http协议访问资源。Http client 大多数场景使用在多个服务之间相互调用rest api&#xff0c;特别是现在微服务架构的…

android jni 调用java对象_Android NDK开发之Jni调用Java对象

本地代码中使用Java对象通过使用合适的JNI函数&#xff0c;你可以创建Java对象&#xff0c;get、set 静态(static)和 实例(instance)的域&#xff0c;调用静态(static)和实例(instance)函数。JNI通过ID识别域和方法&#xff0c;一个域或方法的ID是任何处理域和方法的函数的必须…

docker 容器端口访问不到_docker容器无法访问宿主机端口的解决

最近在工作时遇到一个问题,docker容器无法访问宿主机的redis,telent6379端口不通。 经排查发现,该服务器启用了防火墙,防火墙把6379的端口的访问授权给docker0网卡访问即可。 操作如下: firewall-cmd --permanent --zone=trusted --change-interface=docker0 firewall-cmd…

java class isassignablefrom_Java之——Class的isAssignableFrom方法

转载请注明出处 https://blog.csdn.net/l1028386804/article/details/80508540Class的isAssignableFrom方法定义如下public native boolean isAssignableFrom(Class ? cls);由方法签名可见是一个本地方法 即C代码编写的。以下是JDK中的注释Determines if the class or interfa…

java中堆栈的基本操作_玩儿转队列和栈的基本操作及其应用:Java 版

队列的基本操作队列入队出队实现队列是种先进先出的数据结构。队列的基本操作主要是入队和出队。数据从队尾进入队列&#xff0c;从队首出队列。下面来写一个简单的队列:public class MyQueue {private List data;private int pointer;public MyQueue() {data new ArrayList&l…

java界面编辑教程_java程序设计基础教程第六章图形用户界面编辑.docx

java程序设计基础教程第六章图形用户界面编辑.docx还剩27页未读&#xff0c;继续阅读下载文档到电脑&#xff0c;马上远离加班熬夜&#xff01;亲&#xff0c;很抱歉&#xff0c;此页已超出免费预览范围啦&#xff01;如果喜欢就下载吧&#xff0c;价低环保&#xff01;内容要点…

c盘java文件误删_java获取C盘下的隐藏目录文件名称

题记—— 执剑天涯&#xff0c;从你的点滴积累开始&#xff0c;所及之处&#xff0c;必精益求精&#xff0c;即是折腾每一天。网易云课堂在Java中&#xff0c; File类用来将文件或者文件夹封装成对象&#xff0c;方便对文件与文件夹的属性信息进行操作。File对象可以作为参数传…

对java这门课程的认识_关于java课程的总结

前言本次博客主要内容为此次三次作业的总结&#xff0c;整门java课程学习的总结&#xff0c;以及在此次java课程中的收获&#xff0c;和对课程的意见。作业过程总结第一次作业主要考察的是对程序的可扩展性&#xff0c;实现开闭原则非常重要&#xff0c;因为程序随着时间&#…

linux php和java环境变量配置_Linux下配置Java环境变量

一般来说&#xff0c;我们都会把Java安装到 /usr/local 目录 或者 /opt 目录下。这里假设java安装包已解压在了 /opt下&#xff0c;具体目录为&#xff1a;/opt/java8/java1.8.0_45目录(注意&#xff1a;如果是生产环境中&#xff0c;一定要root用户来安装配置)。下面我们来配置…

java多线程多态_Java学习之多线程

多线程&#xff1a;(一)进程与线程进程特点并发与并行的区别&#xff1a;多线程编程的好处&#xff1a;(二)多线程的建立1&#xff0c;通过继承Thread类&#xff0c;代码如下&#xff1a;class MyThread extendsThread {private static int K 10;//类共享变量private int M10;…

php seaslog安装,浅谈win10下安装php seaslog扩展的方法

本篇文章给大家分享一下win10 php安装seaslog扩展的方法。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。【推荐学习&#xff1a;《PHP视频教程》】一、检查系统环境情况使用phpinfo()检查系统环境情况&#xff0c;找到需要下载的配置…