{"repo":"mskatoni/ni-mail","free":true,"listed":false,"github":"https://github.com/mskatoni/ni-mail","clone":"git clone https://github.com/mskatoni/ni-mail.git","description":"极简 Cloudflare Worker，接收私人域名邮件并提供 HTTP API 读取","language":"TypeScript","stars":84,"topics":["api","cloudflare","cloudflare-workers","email","email-routing","kv","self-hosted","serverless"],"license":"Apache-2.0","category":"self-hosted-apps","readme_excerpt":"ni-mail 一個極簡的 Cloudflare Worker，用於接收私人域名郵件並提供 HTTP API 讀取。 無需資料庫、無需前端、無需 JWT，部署後即可通過 API 取得最新郵件內容。 特性 - 📨 通過 Cloudflare Email Routing 接收郵件 - 🗄️ 使用 KV 儲存，最多保留 50 封 - 🔑 API Key 鑑權 - 🌐 支持多個自定義域名（域名需托管在 Cloudflare） - 📦 僅依賴 postal-mime ，無其他依賴 - 🚫 附件只保留 metadata，不存 base64，避免撞 KV 25MB 限制 工作原理 郵件到達後由 postal-mime 解析為結構化 JSON，通過帶鑑權的 HTTP API 按需讀取，無需輪詢、無需訂閱。 前置條件 - 域名已托管在 Cloudflare - 已啟用 Cloudflare Email Routing ⚠️ 收信地址必須是托管在 Cloudflare 的真實域名（如 user@yourdomain.com ）， .workers.dev 不支持 Email Routing，發往 workers.dev 地址的信不會被收到。 部署 方式一：Cloudflare 一鍵部署 點擊按鈕後，Cloudflare 會自動 Fork 此 repo 並完成代碼部署。 部署完成後，還需在控制台完成以下配置： 1. 綁定 KV Namespace Cloudflare 控制台 → Workers & Pages → ni-mail → Settings → Bindings → 新增 KV Namespace： - 名稱： MAIL KV - 選擇已建立的 KV namespace（若尚未建立，先到 Workers & Pages → KV → Create namespace） 2. 設定 AUTH KEY Settings → Variables and Secrets → 新增： - 類型： Secret（密鑰） ，不要選 Text（明文可見） - 變數名稱： AUTH KEY - 值：自訂一個密碼 儲存後點 Deploy 讓設定生效。 3. 設定 Email Routing Cloudflare 控制台 → 你的域名 → Email → Email Routing → Routing rules → Catch-all： - Action：Send to Worker - 選擇 ni-mail --- 方式二：本地 CLI 部署 複製輸出的 ID，在 Cloudflare 控制台綁定，或直接加進 wrangler.toml ： 自定義域名（可選） 域名必須已托管在 Cloudflare，無需手動建立 DNS 記錄，Cloudflare 會自動處理並簽發 SSL。 在 wrangler.toml 中取消注釋，支持多個： 重新部署後即可通過自定義域名訪問 API。多個域名收到的郵件共用同一個 inbox， to 欄位可用於區分來源域名。 API 所有請求需帶上 Header： X-Auth-Key: 你的密碼 方法 路徑 說明 --- --- --- GET /latest 取得最新一封完整郵件 GET /mails?limit=10 取得最近 N 封郵件列表（不含正文） GET /mail/:id 取得單封完整郵件（含 html/text） DELETE /mails 清空收件匣 範例 成功回應（有郵件） 無郵件時（HTTP 404） 鑑權失敗（HT","default_branch":null,"files":null,"tree":[],"storefront":"/r/mskatoni","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mskatoni/ni-mail/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}