AI邮件助手添加福利群:解决AI开发者的「MCP实战痛点」
开源邮件应用,助您快速实现收件箱清零。
网站
·
Discord
·
问题
Inbox Zero 包含两部分:
如果您想为项目做出贡献,邮件客户端是最佳选择。
感谢 Vercel 赞助 Inbox Zero,支持开源软件。
了解更多,请查看我们的文档。
![]() |
![]() |
|---|---|
| AI 助手 | 回复清零 |
![]() |
![]() |
| Gmail 客户端 | 批量退订 |
要请求新功能,请提交GitHub issue,或加入我们的Discord。
我们提供 Inbox Zero 的托管版本,访问 https://getinboxzero.com。要自托管,请按照以下步骤操作。
这里有一个视频,介绍如何设置项目。它涵盖了本文档中提到的相同步骤,但更详细地介绍了如何设置外部服务。
在开始之前,请确保已安装上述工具。
所需的外部服务(详细设置说明如下):
从提供的示例创建您自己的 .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 Cloud。如有必要,创建一个新项目。
创建新凭证:
如果出现横幅,请配置同意屏幕(如果没有,可以稍后操作)
开始。外部创建。创建新凭证:
+创建凭证 按钮。选择 OAuth 客户端 ID。应用类型 中,选择 Web 应用http://localhost:3000授权的重定向 URI 中输入 http://localhost:3000/api/auth/callback/google创建。更新 .env 文件:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET更新范围
数据访问(或点击上面的链接)添加或删除范围手动添加范围 框中: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
更新保存。将自己添加为测试用户
测试用户 部分,点击 +添加用户保存您需要设置一个 LLM,但也可以使用本地的:
对于 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 环境变量。
我们使用 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_TOPIC_NAME。
创建订阅时选择 Push,URL 应类似于:https://www.getinboxzero.com/api/google/webhook?token=TOKEN 或 https://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 生成)。