邮件平台
状态
✅ 已实现并可用
简介
邮件适配器支持通过 SMTP 发送邮件和 IMAP 接收邮件,可以将邮件作为消息事件处理。
特性
- ✅ SMTP 发送邮件
- ✅ IMAP 接收邮件
- ✅ 支持 HTML 和纯文本邮件
- ✅ 支持附件
- ✅ 支持代理配置
- ✅ 自动轮询新邮件
- ✅ 支持回复邮件
安装
bash
pnpm add @onebots/adapter-email配置
基础配置
yaml
email.my_bot:
# 发件人配置
from: 'bot@example.com'
fromName: '我的机器人' # 可选
# SMTP 配置(发送邮件)
smtp:
host: 'smtp.example.com'
port: 587
secure: false
requireTLS: true
user: 'bot@example.com'
password: 'your_password'
# IMAP 配置(接收邮件)
imap:
host: 'imap.example.com'
port: 993
tls: true
user: 'bot@example.com'
password: 'your_password'
pollInterval: 30000 # 轮询间隔(毫秒),默认 30 秒
mailbox: 'INBOX' # 监听的邮箱文件夹,默认 INBOX
# 协议配置
onebot.v11:
access_token: 'your_token'Gmail 配置示例
yaml
email.gmail_bot:
from: 'your-email@gmail.com'
fromName: 'Gmail 机器人'
smtp:
host: 'smtp.gmail.com'
port: 587
secure: false
requireTLS: true
user: 'your-email@gmail.com'
password: 'your-app-password' # 需要使用应用专用密码
imap:
host: 'imap.gmail.com'
port: 993
tls: true
user: 'your-email@gmail.com'
password: 'your-app-password'
pollInterval: 30000
onebot.v11:
access_token: 'your_token'QQ 邮箱配置示例
yaml
email.qq_bot:
from: 'your-email@qq.com'
fromName: 'QQ 邮箱机器人'
smtp:
host: 'smtp.qq.com'
port: 587
secure: false
requireTLS: true
user: 'your-email@qq.com'
password: 'your-authorization-code' # 需要使用授权码
imap:
host: 'imap.qq.com'
port: 993
tls: true
user: 'your-email@qq.com'
password: 'your-authorization-code'
pollInterval: 30000
onebot.v11:
access_token: 'your_token'使用客户端 SDK
typescript
import { ImHelper } from '@onebots/imhelper';
import { EmailAdapter } from '@onebots/adapter-email';
import { OneBotV11Adapter } from '@onebots/protocol-onebot-v11';
const helper = new ImHelper({
adapter: new OneBotV11Adapter({
baseUrl: 'http://localhost:6727',
basePath: '/email/my_bot/onebot/v11',
accessToken: 'your_token',
platform: 'email',
accountId: 'my_bot',
}),
});
// 监听邮件消息
helper.on('message', async (message) => {
console.log('收到邮件:', message.sender.name, message.content);
// 自动回复
await helper.sendMessage({
scene_id: message.sender.id,
scene_type: 'private',
message: [
{ type: 'text', data: { text: '已收到您的邮件!' } }
],
});
});
await helper.start();注意事项
- 应用专用密码:某些邮件服务商(如 Gmail)需要使用应用专用密码,而不是普通密码
- 授权码:某些邮件服务商(如 QQ 邮箱)需要使用授权码
- 轮询间隔:建议设置合理的轮询间隔(如 30 秒),避免过于频繁的请求
- 代理配置:如果需要通过代理访问邮件服务器,可以在配置中添加
proxy字段