Nodejs定时自动截图并发送给邮箱
时间:2022-07-23
本文章向大家介绍Nodejs定时自动截图并发送给邮箱,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Nodejs获取桌面截图,并定时发送给指定邮箱 代码地址: https://github.com/klren0312/NodejsGetScreenshotSend 前面还写过Python获取截图并发邮件的 代码地址:https://github.com/klren0312/PythonGetScreenshotSend
1.安装相关包
npm install --save screenshot-desktop //截图
npm install --save nodemailer //发邮件
npm install --save node-schedule //定时
2.screenshot-desktop
3.nodemailer
发邮件用的包 网址: https://nodemailer.com/about/
4.node-schedule
5.引入包
const screenshot = require('screenshot-desktop')
const nodemailer = require('nodemailer')
const schedule = require('node-schedule')
const fs = require('fs')//nodejs 文件操作的包
6.配置发送邮件的邮箱
var transporter = nodemailer.createTransport({
host:"smtp服务器地址",
secure:true,
port:端口, //端口注意了 分两种,一种是有ssl的一种是没有ssl
auth: {
user: "发送的邮箱",
pass: "密码"
},
debug: true // include SMTP traffic in the logs
});
7.设置定时
设置每一分钟发送一次
var rule = new schedule.RecurrenceRule();
rule.second = 10;
var j = schedule.scheduleJob(rule,function(){
})
8.设置截图
screenshot()
.then((img) => {
//将截取的图片存入根目录out.jpg
fs.writeFile('out.jpg', img,function(err){
if(err){
throw err
}
console.log('written to out.jpg')
});
})
9.设置发送的邮件内容
看了官方的example才知道,图片要写到下面的attachments中,并提供cid,给上面html中的img调用。
var message = {
from:"发送邮件地址",
to:"接受邮件地址",
subject:"桌面截图",
html:'桌面截图:![](cid:test)',
//附加文件,提供cid给上面的img调用
attachments:[
{
filename: 'out',
path: __dirname + '/out.jpg',
cid: 'test' // should be as unique as possible
}
]
}
10.发送邮件
transporter.sendMail(message, (error, info) => {
if (error) {
console.log('Error occurred');
console.log(error.message);
return;
}
console.log('Message sent successfully!');
console.log('Server responded with "%s"', info.response);
transporter.close();
});
- 计算广告——广告定向实践
- 通过shell抓取html数据(r2笔记74天)
- 通过shell脚本分析足彩(r2笔记74天)
- 通过shell脚本得到数据字典的信息 (r2笔记72天)
- 机器学习算法实践——K-Means算法与图像分割
- 利用 Python、SciKit 和文本分类来构建客户行为描述模型
- 使用Python爬取社交网络数据分析
- PHP爬虫源码:百万级别知乎用户数据爬取与分析
- 使用Python抓取欧洲足球联赛数据
- python爬取百度新闻:分析共享单车火爆背后有哪些规则?
- Python爬虫(urllib2+bs4)数据采集:分析找出百度贴吧谁是水贴王
- 学界 | OpenAI 发布稀疏计算内核,更宽更深的网络,一样的计算开销
- 【手把手教你做项目】自然语言处理:单词抽取/统计
- Kaggle赛题解析:逻辑回归预测模型实现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- android 调试 adb
- Java实现基本数据结构(三)——队列
- Java实现基本数据结构(二)——栈
- Java实现基本数据结构(一)——数组
- concurrently 实现前后端连载启动
- Vue+Koa2 前后端分离项目线上部署
- Nativefier— 将网站打包成桌面程序
- JAVA反射功能
- Git
- Bootstrap实用功能总结
- Bootstrap基础学习笔记
- 基于Paddle Lite在Android手机上实现图像分类
- redis学习笔记-set
- 图解一致性哈希算法,全网(小区局域网)最通俗易懂
- ES 创建索引时使用Dynamic Mapping动态映射 对字符串字段生成keyword字段