首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
AI邮件助手2026-05-09209分享添加福利群:解决AI开发者的「MCP实战痛点」
Inbox Zero是一个开源AI邮件助手及客户端,核心功能包括:AI自动处理邮件(回复、分类、退订等)、邮件分析统计、冷邮件拦截等,帮助用户高效管理邮件,实现"收件箱清零"。支持自托管部署,技术栈包含Next.js等。
By elie222
2026-05-09209
github
详情内容

Inbox Zero - 您的AI邮件助手

开源邮件应用,助您快速实现收件箱清零。
网站 · Discord · 问题

关于

Inbox Zero 包含两部分:

  1. 一个AI邮件助手,帮助您减少在邮件上花费的时间。
  2. 开源的AI邮件客户端。

如果您想为项目做出贡献,邮件客户端是最佳选择。

使用 Vercel 部署

感谢 Vercel 赞助 Inbox Zero,支持开源软件。

功能

  • AI 个人助手: 根据纯文本提示文件为您管理邮件。它可以代表您执行任何人类助手可以执行的操作(起草回复、标记、归档、回复、转发、标记为垃圾邮件,甚至调用 Webhook)。
  • 回复清零: 跟踪需要您回复的邮件和等待回复的邮件。
  • 智能分类: 对曾经给您发过邮件的每个人进行分类。
  • 批量退订: 一键快速退订您从未阅读过的邮件。
  • 冷邮件拦截器: 自动拦截冷邮件。
  • 邮件分析: 通过每日、每周和每月的统计数据跟踪您的邮件活动。

了解更多,请查看我们的文档

功能截图

AI 助手 回复清零
AI 助手 回复清零
Gmail 客户端 批量退订
Gmail 客户端 批量退订

演示视频

Inbox Zero 演示

技术栈

星标历史

星标历史图表

功能请求

要请求新功能,请提交GitHub issue,或加入我们的Discord

开发者入门

我们提供 Inbox Zero 的托管版本,访问 https://getinboxzero.com。要自托管,请按照以下步骤操作。

设置

这里有一个视频,介绍如何设置项目。它涵盖了本文档中提到的相同步骤,但更详细地介绍了如何设置外部服务。

要求

在开始之前,请确保已安装上述工具。

所需的外部服务(详细设置说明如下):

更新 .env 文件:密钥

从提供的示例创建您自己的 .env 文件:

cp apps/web/.env.example apps/web/.env
cd apps/web
pnpm install

在新创建的 .env 中设置环境变量。您可以在 apps/web/env.ts 中查看所需变量的列表。

所需的环境变量:

密钥:

  • NEXTAUTH_SECRET -- 可以是任何随机字符串(尝试使用 openssl rand -hex 32 生成一个安全的随机字符串)
  • GOOGLE_ENCRYPT_SECRET -- 用于加密 OAuth 令牌的密钥(尝试使用 openssl rand -hex 32 生成一个安全的密钥)
  • GOOGLE_ENCRYPT_SALT -- 用于加密 OAuth 令牌的盐(尝试使用 openssl rand -hex 16 生成一个安全的盐)

Redis:

  • UPSTASH_REDIS_URL -- 来自 Upstash 的 Redis URL。(如果使用 Docker Compose,可以为空)
  • UPSTASH_REDIS_TOKEN -- 来自 Upstash 的 Redis 令牌。(如果使用 Docker Compose,可以指定您自己的随机字符串)

在使用 Vercel 且关闭 Fluid Compute 时,应设置 MAX_DURATION=300 或更低。查看 Vercel 不同计划的限制此处

使用 Google OAuth 凭证更新 .env 文件:

  • GOOGLE_CLIENT_ID -- Google OAuth 客户端 ID。更多信息此处
  • GOOGLE_CLIENT_SECRET -- Google OAuth 客户端密钥。更多信息此处

前往 Google Cloud。如有必要,创建一个新项目。

创建新凭证:

  1. 如果出现横幅,请配置同意屏幕(如果没有,可以稍后操作)

    1. 点击横幅,然后点击 开始
    2. 为您的应用选择一个名称,并输入您的电子邮件。
    3. 在受众中,选择 外部
    4. 输入您的联系信息
    5. 同意用户数据政策,然后点击 创建
    6. 使用左侧边栏返回 API 和服务。
  2. 创建新凭证:

    1. 点击 +创建凭证 按钮。选择 OAuth 客户端 ID。
    2. 应用类型 中,选择 Web 应用
    3. 为您的 Web 客户端选择一个名称
    4. 在授权的 JavaScript 来源中,添加一个 URI 并输入 http://localhost:3000
    5. 授权的重定向 URI 中输入 http://localhost:3000/api/auth/callback/google
    6. 点击 创建
    7. 将弹出一个包含新凭证的窗口,包括客户端 ID 和密钥。
  3. 更新 .env 文件:

    1. 将客户端 ID 复制到 GOOGLE_CLIENT_ID
    2. 将客户端密钥复制到 GOOGLE_CLIENT_SECRET
  4. 更新范围

    1. 转到左侧边栏中的 数据访问(或点击上面的链接)
    2. 点击 添加或删除范围
    3. 将以下内容复制粘贴到 手动添加范围 框中:
    https://www.googleapis.com/auth/userinfo.profile
    https://www.googleapis.com/auth/userinfo.email
    https://www.googleapis.com/auth/gmail.modify
    https://www.googleapis.com/auth/gmail.settings.basic
    https://www.googleapis.com/auth/contacts
    
    1. 点击 更新
    2. 在数据访问页面点击 保存
  5. 将自己添加为测试用户

    1. 前往受众
    2. 测试用户 部分,点击 +添加用户
    3. 输入您的电子邮件并点击 保存

使用 LLM 参数更新 .env 文件

您需要设置一个 LLM,但也可以使用本地的:

  • Anthropic
  • OpenAI
  • AWS Bedrock Anthropic
  • Google Gemini
  • Groq Llama 3.3 70B
  • Ollama(本地)

对于 LLM,您可以使用 Anthropic、OpenAI 或 AWS Bedrock 上的 Anthropic。您也可以通过设置以下环境变量来使用 Ollama:

OLLAMA_BASE_URL=http://localhost:11434/api
NEXT_PUBLIC_OLLAMA_MODEL=phi3

注意:如果您需要访问本地托管的 Ollama 并且应用程序在 Docker 设置中运行,可以使用 http://host.docker.internal:11434/api 作为基本 URL。您可能还需要在 Ollama 配置文件中将 OLLAMA_HOST 设置为 0.0.0.0

您可以在应用的 /settings 页面中选择要使用的模型。

如果您使用本地 ollama,可以将其设置为默认值:

DEFAULT_LLM_PROVIDER=ollama

如果是这种情况,您还必须设置 ECONOMY_LLM_PROVIDER 环境变量。

Redis 和 Postgres

我们使用 Postgres 作为数据库。 对于 Redis,您可以使用 Upstash Redis 或设置自己的 Redis 实例。

您可以使用 docker-compose 在本地运行 Postgres 和 Redis

docker-compose up -d # -d 将在后台运行服务

运行应用

运行迁移:

pnpm prisma migrate dev

在本地运行应用进行开发(较慢):

pnpm run dev

或从项目根目录运行:

turbo dev

构建并在本地以生产模式运行应用(较快):

pnpm run build
pnpm start

打开 http://localhost:3000 在浏览器中查看应用。

高级功能

许多功能仅对高级用户开放。要将自己升级为高级用户,请在 .env 中将自己设置为管理员:ADMINS=hello@gmail.com 然后在 http://localhost:3000/admin 中升级自己。

通过 Google PubSub 设置推送通知以实时处理邮件

按照此处的说明操作。

  1. 创建主题
  2. 创建订阅
  3. 授予主题的发布权限

设置环境变量 GOOGLE_PUBSUB_TOPIC_NAME。 创建订阅时选择 Push,URL 应类似于:https://www.getinboxzero.com/api/google/webhook?token=TOKENhttps://abc.ngrok-free.app/api/google/webhook?token=TOKEN,其中域是您的域。在 .env 文件中将 GOOGLE_PUBSUB_VERIFICATION_TOKEN 设置为 TOKEN 的值。

在开发中,ngrok 可能会有所帮助:

ngrok http 3000
# 或使用 ngrok 域以保持端点稳定(设置 `XYZ`):
ngrok http --domain=XYZ.ngrok-free.app 3000

然后在 Google PubSub 订阅仪表板 中更新 Webhook 端点。

要开始监控邮件更新,请访问:/api/google/watch/all

监控邮件更新

设置一个 cron 作业来运行这些: Google watch 是必要的。其他是可选的。

  "crons": [
    {
      "path": "/api/google/watch/all",
      "schedule": "0 1 * * *"
    },
    {
      "path": "/api/resend/summary/all",
      "schedule": "0 16 * * 1"
    },
    {
      "path": "/api/reply-tracker/disable-unused-auto-draft",
      "schedule": "0 3 * * *"
    }
  ]

这里 是一些运行 cron 作业的简单方法。Upstash 是一个免费且简单的选项。我从未成功使用 Vercel 的 vercel.json。如果您找到解决方法,欢迎提交 PR。

为项目做贡献

您可以在我们的 GitHub Issues 中查看开放任务。 加入我们的 Discord 讨论任务并查看正在处理的内容。

ARCHITECTURE.md 解释了项目的架构(由 LLM 生成)。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档