前言
最近发现了基于node的一个发送邮件的小插件,逛论坛看别人用它做了一些有意思的东西,也模仿着搞一个分享下~
重在分享,重在分享!
期望
1. 目标
使用基于nodeJs的nodemailer
定时发送随机文案
给指定人。
2. 场景
- 定时发送情话给对象
- 每日发送给自己朋友圈文案内容
- ...
实现
1. 所需技术
- 基础js即可
2. 所需环境/插件
- nodeJs (环境)
- nodemailer(发送邮件插件)
- axios(获取邮件内容,如朋友圈文案、毒鸡汤等)
- schedule(定时任务插件)
3. 其他
除上述内容,我们需要有邮件相关信息:自己邮箱和对方邮箱、邮箱服务器地址及端口号、自己邮箱的授权码等。下面会有比较详细的介绍。
实现过程
1. node环境安装
首先安装及配置node环境,官网下载安装即可。node中文网
2. 插件安装
自己按照需求安装即可:
// nodemailer:必须
npm i nodemailer
// axios:获取随机鸡汤(毒鸡汤)作为邮件内容;非必须
npm i axios
// schedule:定时任务;非必须
npm i schedule
3. 项目配置
- 新建个空目录作为项目目录
- 在终端(或者cmd模式)——
npm init
- 项目目录下新建
index.js
4. index详细配置
const nodemailer = require('nodemailer');
const { default: Axios } = require('axios');
const schedule = require('node-schedule')
// 获取文案
const getMsg = () => {
// 提供几个文案获取接口,随便选即可。
// 毒鸡汤: https://du.shadiao.app/api.php
// 朋友圈: https://pyq.shadiao.app/api.php
// 彩虹屁: https://chp.shadiao.app/api.php
// 骂人宝典: https://nmsl.shadiao.app/api.php
let url = 'https://du.shadiao.app/api.php';
return Axios.get(url);
}
// 发送邮件函数
const sendEmail = async msg => {
let myEmail = "xxxxxx@163.com"; // 用户(自己)邮箱
let passCode = "xxxxxx"; // 用户(自己)邮箱授权码
let mailTo = "xxxxxx@xxx.xxx"; // 对方邮箱
// 用户账号信息,以163邮箱为例
let transporter = nodemailer.createTransport({
host: 'smtp.163.com', // 服务器地址
port: 25, // 协议端口号
auth: {
user: myEmail, // 用户邮箱
pass: passCode // 授权码
}
});
// 发送内容编辑
let mailMsg = await transporter.sendMail({
from: myEmail, // 发件人(自己)
to: mailTo, // 收件人
subject: 'mailer测试:毒鸡汤文案', // 标题
text: msg
})
// 成功后打印下~
console.log(`发送成功,发送内容为:${msg}`);
}
// 定时发送 每天中午12:30(自己随便改) 发送自己“喜欢”的内容给指定人
schedule.scheduleJob({
hour: 12,
minute: 30
}, () => {
console.log(`启动任务:${new Date()}`);
getMsg().then(res => {
sendEmail(res.data); // 发送邮件
})
})
// 测试
// console.log(`启动任务:${new Date()}`);
// getMsg().then(res => {
// sendEmail(res.data); // 发送邮件
// })
小结
通过上述代码,完成简易的每日毒鸡汤发送给相应邮箱。但我们可以看出,这只是基于node的一些个小插件的使用而已。虽然简单,但是发挥一下,在合适的时间用在合适的地方还是会有一些效果出现的~
喜欢的可以关注公众号【流眸】回复【201219】获取该项目代码~