OpenClaw电子邮件连接器
一个安全的、自托管的MCP(模型上下文协议)服务器,用于通过IMAP/SMTP访问电子邮件。无需第三方服务-您的凭据将保留在您的计算机上。
特性
- IMAP支持:阅读、搜索和管理电子邮件
- SMTP支持:发送电子邮件和回复
- MCP集成:与Claude Code和其他MCP兼容的AI助手无缝协作
- 隐私第一:无外部API或第三方服务-直接连接到您的电子邮件服务器
- TypeScript:完全打字,以获得更好的开发体验
安装
npm install openclaw-email-connector或者克隆并从源代码构建:
git clone https://github.com/simonerom/openclaw-email-connector.git
cd openclaw-email-connector
npm install
npm run build配置
创建一个 .env 文件基于 .env.example:
# Email credentials
EMAIL_USER=your-email@gmail.com
EMAIL_PASSWORD=your-app-password
# IMAP settings (for reading emails)
IMAP_HOST=imap.gmail.com
IMAP_PORT=993
IMAP_TLS=true
# SMTP settings (for sending emails)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=falseGmail设置
对于Gmail,您需要创建应用程序密码:
- 首选 Google帐户安全
- 如果尚未启用,请启用两步验证
- 转到应用程序密码,为“邮件”创建一个新密码
- 在中使用生成的16个字符的密码
EMAIL_PASSWORD
其他电子邮件提供商
| 提供程序 | IMAP主机 | IMAP端口 | SMTP主机 | SMTP端口 |
|---|---|---|---|---|
| Gmail | imap.Gmail.com | 993 | smtp.Gmail.com | 587 |
| 展望 | 展望办公室365.com | 993 | smtp.office365.com | 587 |
| 雅虎 | imap.mail.Yahoo.com | 993 | smtp.mail.Yahoo.com | 587 |
| iCloud | imap.mail.me.com | 993 | smtp.mail.me.com | 587 |
使用Claude Code/OpenClaw
添加到MCP配置(~/.config/claude-code/config.json 或类似):
{
"mcpServers": {
"email": {
"command": "node",
"args": ["/path/to/openclaw-email-connector/dist/mcp-server.js"],
"env": {
"EMAIL_USER": "your-email@gmail.com",
"EMAIL_PASSWORD": "your-app-password",
"IMAP_HOST": "imap.gmail.com",
"SMTP_HOST": "smtp.gmail.com"
}
}
}
}可用工具
阅读电子邮件
| 工具 | 说明 |
|---|---|
email_list_mailboxes | 列出所有可用邮箱/文件夹 |
email_get_recent | 从邮箱获取最新电子邮件 |
email_get_unread | 获取所有未读电子邮件 |
email_search | 按发件人、主题、日期等搜索电子邮件。 |
email_read | 通过UID读取特定电子邮件 |
管理电子邮件
| 工具 | 说明 |
|---|---|
email_mark_read | 将电子邮件标记为已读 |
email_mark_unread | 将电子邮件标记为未读 |
email_move | 将电子邮件移动到另一个文件夹 |
email_delete | 删除电子邮件 |
发送电子邮件
| 工具 | 说明 |
|---|---|
email_send | 发送新电子邮件 |
email_reply | 回复现有电子邮件 |
程序化使用
你也可以直接在Node.js代码中使用客户端:
import { ImapClient, SmtpClient } from 'openclaw-email-connector';
// Reading emails
const imap = new ImapClient({
user: 'your-email@gmail.com',
password: 'your-app-password',
host: 'imap.gmail.com',
port: 993,
tls: true
});
await imap.connect();
const unread = await imap.getUnreadMessages();
console.log(unread);
await imap.disconnect();
// Sending emails
const smtp = new SmtpClient({
user: 'your-email@gmail.com',
password: 'your-app-password',
host: 'smtp.gmail.com',
port: 587,
secure: false
});
await smtp.sendEmail({
to: 'recipient@example.com',
subject: 'Hello!',
text: 'This is a test email.'
});
smtp.close();发展
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run dev
# Run MCP server
npm start安全说明
- 永不承诺
.env文件 -它们包含您的凭据 - 使用 应用程序密码 而不是您的主密码(如果可用)
- 此连接器运行 本地 -不向第三方发送数据
- 考虑使用环境变量,而不是
.env生产中的文件
许可证
麻省理工学院
贡献
欢迎投稿!请打开问题或提交PR。
