一、引言

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

下载链接和截图

二、nodemailer介绍

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

三、nodemailer的安装

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

然后输入如下命令

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 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);});
});复制代码

终端中输入node index.js

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

Node.js 实现定时每天发消息—nodemailer模块相关推荐

  1. Node.js笔记:SerialPort(串口)模块使用(基于9.x.x)

    文章目录 目的 模块安装 基础使用 扫描端口 打开端口 发送数据 接收数据 错误处理 数据解析器 SerialPort类 构造方法 属性 事件 方法 命令行工具 总结 目的 上位机与各种电路模块间常常 ...

  2. Node.js 实现定时每天给女朋友发消息—nodemailer模块

    关注 程序员成长指北,回复"1" 加入我们一起学习,天天进步 作者: 加百利真胖 原文:https://juejin.cn/events/all 本文是以一个给女友发邮件的例子讲解 ...

  3. node.js浅入深出---之fs模块

    node.js可以作为js的直接运行环境,比如说在helloWord.js文件夹下:node helloWord.js 浏览器不能直接运行.js文件,却可以直接运行.html文件 node没有web容 ...

  4. Node.js笔记:SerialPort(串口)模块使用(基于10.x.x)

    文章目录 目的 模块安装 快速使用 模块导入 扫描端口 打开端口 发送数据 接收数据 错误处理 SerialPort更多说明 构造方法 属性 事件 方法 数据解析器 命令行工具 在Electron渲染 ...

  5. Node.js(一)——(Node.js安装及使用,通过Node.js搭建服务器,模块化及自定义模块,npm/yarn/nvm,内置模块fs的使用,buffer及stream,新闻列表案例)

    目录 1.Node.js介绍 2.安装Node.js 3.使用Node.js实现第一个服务器 3.1初步感受Node.js 3.2Google Chrome 默认非安全端口列表,尽量避免以下端口. 3 ...

  6. node.js(六)之crawler爬虫模块爬取王者荣耀官网所有英雄资源信息

    node.js爬虫模块爬取王者荣耀所有英雄信息 一.准备工作 https://pvp.qq.com/web201605/herolist.shtml进入王者荣耀所有英雄页面: 你会看到所有的英雄,打开 ...

  7. Node.js中文件上传与multer模块的应用

    必要:首先multer模块应用前提是在HTML的form表单中 标签内设置属性enctype="multipart/form-data"是必须的,这样才可以上传文件,方式为post ...

  8. Node.js进击基础一(5-11事件模块)

    res.on res有on方法. 在nodejs中不存在浏览器里的冒泡捕获等行为,集成了一个模块events,对外暴露一个对象EventEmitter ,EventEmitter作用只有2个事件的发射 ...

  9. 基础知识 | node js基础知识

    官方网站 www.nodejs.org 中文镜像网站 www.nodejs.cn js和node.js的区别 两者有相同的自定义对象和内置对象,不同的宿主对象 js运行在浏览器端,存在多款浏览器,有兼 ...

最新文章

  1. 共享单车哈罗王炸连出,OFO小心沦为炮灰
  2. Windows Phone开发者注册秘籍
  3. 【NLP】Google T5速读
  4. 手机号码、获得当前时间,下拉框,填写限制
  5. ubuntu中用wine安装office2007
  6. C++描述杭电OJ 2020.绝对值排序 ||
  7. 【STC15库函数上手笔记】4、USART串口
  8. 数字能查出笔迹吗_大家都知道文字可以做笔迹鉴定,我想问一下专家阿拉伯数字是否也可以做笔迹鉴定正确率高吗?...
  9. java 提取轮廓_TensorFlow 卷积操作模拟sobel算子提取图像轮廓
  10. scala中def_def关键字以及Scala中的示例
  11. C++基础10-类和对象之友元函数
  12. 整套的操作体系:三点看股法
  13. superset ubuntu16.04 python3 安装
  14. Hyper-V 2016 系列教程34 在局域网内架设Windows时间服务器
  15. Android Studio添加android.support.v4包的依赖(解决V4的FragmentManager的错误)
  16. java实现对称加密—数据库密码加解密
  17. 爬虫基础练习—python爬虫下载豆瓣妹子图片
  18. 一键查询网站服务器归属地,一文搞定3种批量查询手机归属地的方法
  19. 【开发经验】springboot配置文件加密详解
  20. open3d画3D矩形框

热门文章

  1. Unity Shader - Metallic mode: Metallic Parameter 金属模式的参数
  2. php px,px什么意思
  3. GO语言-第一节-初识Go语言
  4. python 冒泡排序 原理_用Python实现排序算法——冒泡排序
  5. 计算机网路之数据链路层笔记
  6. java 协程线程的区别_线程和协程的区别的通俗说明
  7. 删除与添加off-page connect页码
  8. 域名能生成多少二级域名_15个最佳域名生成器,可帮助您选择域名(FAST)
  9. 明日之后怎么找不到朋友服务器,明日之后搜索不到好友怎么办?添加好友条件...
  10. 两万字讲全数据实时同步方案(附代码及架构图)(建议收藏)