最近家裏添了小孩,在家帶娃陪產了一些天,深入體會到老婆帶孩子的辛苦。php
工做的時候不能在家陪她,就想着寫個程序,天天固定在固定時間給她發一些情話,好讓她在帶娃的時候也能感覺到老公的愛心,幫她緩解一下帶娃的煩躁心情。node
考慮的到qq和微信有諸多的限制(一不當心就被封),先來個郵箱版本的吧!ios
Stack Overflow 聯合創始人傑夫·阿特伍德曾經說過,任何一個能用 JavaScript 編寫的應用系統,最終都必將使用 JavaScript 實現。npm
Atwood’s Law是Jeff Atwood在2007年提出的:"any application that can be written in JavaScript, will eventually be written in JavaScript。axios
大佬的定律都出來了,只能說js牛x!windows
咱們的技術選型 就是nodejs,首先你得安裝一個nodejs,而後咱們主要使用一個模塊Nodemailer
。api
下載連接和截圖微信
nodemailer
是一個發送郵件npm包,咱們可使用它方便快捷的給任何人發送郵件。markdown
打開終端(windows下使用win+r,而後輸入cmd,回車便可)app
而後輸入以下命令
mkdir mailBot #cmd建立文件夾mailBot(touch mailBot #若是是Linux能夠用touch命令)
cd mailBot #進入文件夾
npm init -y #初始化npm
npm install nodemailer #安裝郵件發送模塊
複製代碼
咱們建立一個mailBot文件夾,在終端中進入文件夾,初始化npm,而後安裝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分就會自動發送一句情話!
就連家庭地位都提升了呢!