0
点赞
收藏
分享

微信扫一扫

Node.js通过Nodemailer定时向TA邮箱发送邮件

小月亮06 2022-03-10 阅读 51

发送邮件前提得安装node.js、pm2、nodemailer,获取邮箱授权码

1.安装node,新建node目录,并进入node目录

 cd /usr/local
 mkdir node
 cd node

下载node安装包并解压

 wget https://nodejs.org/dist/v14.15.0/node-v14.15.0-linux-x64.tar.xz
 tar xvf node-v14.15.0-linux-x64.tar.xz 
 mv node-v14.15.0-linux-x64 nodejs   //重命名

配置全局使用命令

 ln -s /usr/local/node/nodejs/bin/node /usr/local/bin/node
 ln -s /usr/local/node/nodejs/bin/npm /usr/local/bin/npm

验证是否安装成功

 node -v
 npm -v

2.安装pm2

npm install -g pm2

配置全局使用命令

 ln -s /usr/local/node/nodejs/bin/pm2 /usr/local/bin/pm2

验证是否安装成功

pm2 -v

3.安装 nodemailer

npm install nodemailer

4.获取邮箱授权码

把那个POP3/SMTP服务开启,生成授权码复制出来放到下面的js中
在这里插入图片描述

node.js代码

var nodemailer = require("nodemailer");
const { default: Axios } = require("axios");
// 发送邮件函数
async function sendMail(text) {
  var user = '237*******@qq.com'; //自己的邮箱
  var pass = 'biiia**********'; //qq邮箱授权码
  var to = '220*******@qq.com'; //对方的邮箱
  let transporter = nodemailer.createTransport({
    host: 'smtp.qq.com',
    port: 587,
    secure: false,
    auth: {
      user: '237*******@qq.com', // 用户账号
      pass: 'biiia**********' //授权码,通过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("发送成功");
};

function getHoneyedWords() {
  var url = "https://chp.shadiao.app/api.php";
  //获取这个接口的信息
  return Axios.get(url);
};
const schedule = require("node-schedule");
//每天下午5点20分发送
schedule.scheduleJob({ hour: 17, minute: 20 }, function () {
  console.log("启动任务:" + new Date());
  getHoneyedWords().then((res) => {
    console.log(res.data);
    sendMail(res.data);
  });
});

通过pm2命令来执行

pm2  start  ***.js 

启动成功后执行 pm2 list 可以看见正在挂载运行的node文件
在这里插入图片描述
执行 pm2 log 查看每天发送的日志
在这里插入图片描述

效果每天5点20女朋友的邮箱收到邮件如下:在这里插入图片描述
在这里插入图片描述
执行pm2 start ***.js 可能会出现
在这里插入图片描述
535的情况是邮箱授权码已过期 去QQ邮箱重新获取一下就好了
还可能出现cannot find module ‘xxx’
说明你缺xxx模块,需要做的就是输入命令npm install xxx.之后将会自动下载安装

举报

相关推荐

0 条评论