如何用js給老婆每天發(fā)情話
作者: 加百利真胖
原文:https://juejin.cn/events/all
一、引言
最近家里添了小孩,在家?guī)夼惝a(chǎn)了一些天,深刻體會(huì)到老婆帶孩子的辛苦。

工作的時(shí)候不能在家陪她,就想著寫個(gè)程序,每天固定在固定時(shí)間給她發(fā)一些情話,好讓她在帶娃的時(shí)候也能感受到老公的愛(ài)心,幫她緩解一下帶娃的煩躁心情。
考慮的到qq和微信有諸多的限制(一不小心就被封),先來(lái)個(gè)郵箱版本的吧!
Stack Overflow 聯(lián)合創(chuàng)始人杰夫·阿特伍德曾經(jīng)說(shuō)過(guò),任何一個(gè)能用 JavaScript 編寫的應(yīng)用系統(tǒng),最終都必將使用 JavaScript 實(shí)現(xiàn)。
Atwood’s Law是Jeff Atwood在2007年提出的:"any application that can be written in JavaScript, will eventually be written in JavaScript。
大佬的定律都出來(lái)了,只能說(shuō)js牛x!

我們的技術(shù)選型 就是nodejs,首先你得安裝一個(gè)nodejs,然后我們主要使用一個(gè)模塊Nodemailer。
下載鏈接和截圖

二、nodemailer介紹
nodemailer是一個(gè)發(fā)送郵件npm包,我們可以使用它方便快捷的給任何人發(fā)送郵件。
三、nodemailer的安裝
打開終端(windows下使用win+r,然后輸入cmd,回車即可)


然后輸入如下命令
mkdir mailBot #cmd創(chuàng)建文件夾mailBot(touch mailBot #如果是Linux可以用touch命令)
cd mailBot #進(jìn)入文件夾
npm init -y #初始化npm
npm install nodemailer #安裝郵件發(fā)送模塊
復(fù)制代碼我們創(chuàng)建一個(gè)mailBot文件夾,在終端中進(jìn)入文件夾,初始化npm,然后安裝nodemailer
四、nodemailer的使用-發(fā)送郵件
接下來(lái)在項(xiàng)目中新建 index.js 文件,編寫如下代碼
const nodemailer = require("nodemailer");
// 發(fā)送郵件函數(shù)
async function sendMail(text) {
var user = "[email protected]";//自己的郵箱
var pass = "xxx"; //qq郵箱授權(quán)碼,如何獲取授權(quán)碼下面有講
var to = "[email protected]";//對(duì)方的郵箱
let transporter = nodemailer.createTransport({
host: "smtp.qq.com",
port: 587,
secure: false,
auth: {
user: user, // 用戶賬號(hào)
pass: pass, //授權(quán)碼,通過(guò)QQ獲取
},
});
let info = await transporter.sendMail({
from: `親愛(ài)的老公<${user}>`, // sender address
to: `親愛(ài)的老婆<${to}>`, // list of receivers
subject: "親愛(ài)的老婆", // Subject line
text: text, // plain text body
});
console.log("發(fā)送成功");
}
//測(cè)試一下
send('你好老婆')
復(fù)制代碼在終端中輸入?node index.js?就可以執(zhí)行js文件的代碼!
通過(guò)以上代碼,我們就可以發(fā)送 任意一句話給你想發(fā)送的人!
注意:qq郵箱的pass(授權(quán)碼)需要進(jìn)入 qq郵箱 的【設(shè)置】-【賬戶】,然后如下圖1的地方,開啟smtp,下圖2的地方查看你的授權(quán)碼

五、自動(dòng)生成情話
當(dāng)然現(xiàn)在還有個(gè)缺點(diǎn),既然要獻(xiàn)愛(ài)心,那就要發(fā)句比較好聽的話,我們也叫彩虹屁。。。
有個(gè)彩虹屁生成網(wǎng)站,網(wǎng)站名字很有意思,自己體會(huì)。
我們使用這個(gè)網(wǎng)站的接口來(lái)生成我們要說(shuō)的內(nèi)容。
使用axios模塊來(lái)下載生成的情話。
安裝axios,在終端中輸入如下命令
npm i axios
復(fù)制代碼使用axios獲取情話,在index.js中 增加如下代碼:
const { default: Axios } = require("axios");
function getHoneyedWords() {
var url = "https://chp.shadiao.app/api.php";
//獲取這個(gè)接口的信息
return Axios.get(url);
}
復(fù)制代碼六、使用郵件發(fā)送情話
index.js中增加測(cè)試郵件發(fā)送代碼如下
//獲取情話
getHoneyedWords().then(res=>{
console.log(res.data)
//發(fā)送郵件
sendMail(res.data);
})
復(fù)制代碼終端中輸入node index.js
**結(jié)果顯示 :**春水初生,春林初盛,春風(fēng)十里,不如你!
七、每天定時(shí)發(fā)送
考慮到每天定時(shí)發(fā)送會(huì)顯示的更有誠(chéng)意,接下來(lái)搞個(gè)定時(shí)發(fā)送。我們需要啟動(dòng)個(gè)定時(shí)任務(wù),使用node-schedule模塊。
安裝,終端中輸入如下
npm install node-schedule
復(fù)制代碼使用,index.js增加如下代碼
const schedule = require("node-schedule");
//每天下午5點(diǎn)21分發(fā)送
schedule.scheduleJob({ hour: 17, minute: 21 }, function () {
console.log("啟動(dòng)任務(wù):" + new Date());
getHoneyedWords().then((res) => {
console.log(res.data);
sendMail(res.data);
});
});
復(fù)制代碼終端中輸入node index.js
這樣每天下午5點(diǎn)21分就會(huì)自動(dòng)發(fā)送一句情話!
就連家庭地位都提高了呢!

—————END—————
喜歡本文的朋友,歡迎關(guān)注公眾號(hào)?前端陽(yáng)光,收看更多精彩內(nèi)容
點(diǎn)個(gè)[在看],是對(duì)我最大的支持!
如果覺(jué)得這篇文章還不錯(cuò),來(lái)個(gè)【分享、點(diǎn)贊、在看】三連吧,讓更多的人也看到~



