用来监听邮件,并根据邮件内容执行任务的服务,同时具有邮件发送功能,支持 imap 和 smtp 协议。
这个项目的起因是我想不在家的时候控制家里的一些设备,这就需要一个公网 IP ,或者做一下内网穿透。但是当地网络运营商不给我分配一个固定的公网 IP ,购买一个云服务器只是为了控制一下家里的几个小电器不怎么划算,最终便想到了使用电子邮箱的 imap 来做这个伺服。
这个仓库有两个导出,一个用来做邮件监听,另一个用来做邮件发送。
支持 TypeScript。
npm i email-task
或
yarn add email-task
或
pnpm add email-task
import { EmailListener } from 'email-task';
// 准备邮箱信息
const options = {
host: '邮箱服务商的服务器地址',
port: '端口',
user: '邮箱账号',
password: '邮箱密码',
};
// 实例化监听器
const listener = new EmailListener(options);
// 订阅事件
listener.useCmds([/** 事件列表 */])
// 开启服务
listener.start();
// 监听器会一直运行,直到手动停止
listener.stop();
import { EmialSender } from 'email-task';
const options = {
smtphost: '邮箱服务商的服务器地址',
smtpport: '端口',
user: '邮箱账号',
password: '邮箱密码',
};
const emailSender = new EmialSender(options);
const sendto = '收件人邮箱';
emailSender.send('<from>', sendto, '<subject>', '<text>', '<html>');
examples
目录查看更多示例
TBC...
pnpm test
pnpm coverage
欢迎提交 PR 或 Issue。
-
配置加载工具 - 邮件任务监听
- 邮件发送
- 测试用例
- 邮件标记已读
- 增加获取所有未读邮件选项,未读邮件读取并触发事件
- 持续集成/发布