Skip to content

ialer/missive-mail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ฌ missive-mail

้ขๅ‘ Agent ็š„้‚ฎไปถไฟกๆฏ้€š้“ โ€” ่ฎฉ AI ้€š่ฟ‡ MCP/REST/Webhook ่ฏปๅ–ใ€ๅค„็†ใ€ไปฃๅ‘้‚ฎไปถ

missive-mail ไธๅชๆ˜ฏ้‚ฎไปถๅฎขๆˆท็ซฏใ€‚ๅฎƒๆ˜ฏ Agent ่ฟžๆŽฅ็Žฐๅฎžไธ–็•Œ็š„ๅŸบ็ก€่ฎพๆ–ฝโ€”โ€”้‚ฎไปถๆ˜ฏๅ…จ็ƒๆœ€้€š็”จ็š„ๅ่ฎฎ๏ผŒๆ‰€ๆœ‰ๆœๅŠก้ƒฝ่ƒฝๅ‘้‚ฎไปถใ€‚missive-mail ่ฎฉ Agent ๆˆไธบไฝ ็š„ๆ”ถๅ‘ๅฎคใ€‚

GitHub ้€š็Ÿฅ โ†’ ๆ”ถไปถ็ฎฑ โ†’ Agent ่‡ชๅŠจๅˆ›ๅปบ Issue
้“ถ่กŒ่ดฆๅ•   โ†’ ๆ”ถไปถ็ฎฑ โ†’ Agent ๅฝ’ๆกฃ + ๅˆ†ๆžๆ”ฏๅ‡บ
ๆœๅŠกๅ™จๅ‘Š่ญฆ โ†’ ๆ”ถไปถ็ฎฑ โ†’ Agent ๆŽจ้€ๅˆฐ Matrix ็พค
ๅฎขๆˆทๅ’จ่ฏข   โ†’ ๆ”ถไปถ็ฎฑ โ†’ Agent ่‰็จฟๅ›žๅค โ†’ ไบบๅทฅ็กฎ่ฎคๅ‘้€

โšก ๆ ธๅฟƒ็‰นๆ€ง

๐Ÿค– Agent ๅŽŸ็”ŸๆŽฅๅฃ

missive-mail ๆไพ›ไธ‰็ง Agent ๆŽฅๅ…ฅๆ–นๅผ๏ผŒ่ฆ†็›–ๆ‰€ๆœ‰ๅœบๆ™ฏ๏ผš

MCP Server๏ผˆModel Context Protocol๏ผ‰

ๅ†…็ฝฎ McpAgent๏ผŒๅŸบไบŽ Cloudflare Agents SDK๏ผŒๆฏไธช Agent ่ฟžๆŽฅๆ‹ฅๆœ‰็‹ฌ็ซ‹ Durable Object + SQL ๆ•ฐๆฎๅบ“๏ผš

// Hermes / OpenClaw / ไปปไฝ• MCP ๅฎขๆˆท็ซฏ็›ดๆŽฅ่ฟžๆŽฅ
const tools = await mcp.connect("https://missive-mail.ialer.workers.dev/mcp");

// 7 ไธชๅ†…็ฝฎ Tools
await tools.mail_list({ folder: "inbox", filter: "from:github.com" });
await tools.mail_read({ id: "msg_abc123" });
await tools.mail_send({ to: "user@example.com", subject: "Hi", body: "Hello!" });
await tools.mail_reply({ id: "msg_abc123", body: "ๆ”ถๅˆฐ๏ผŒๆˆ‘ไผšๅค„็†" });
await tools.mail_manage({ action: "archive", ids: ["msg_abc123"] });
await tools.mail_analyze({ filter: "last 7 days" });
await tools.mail_search({ query: "ๅ‘็ฅจ OR invoice" });

็‰นๆ€ง๏ผš

  • Streamable HTTP ไผ ่พ“๏ผˆๅฎ˜ๆ–นๅ่ฎฎ๏ผ‰
  • ๆฏไธช Agent ่ฟžๆŽฅๆœ‰็‹ฌ็ซ‹็Šถๆ€๏ผˆ่ฎฐไฝไธŠไธ‹ๆ–‡ใ€็ผ“ๅญ˜ๆŸฅ่ฏข็ป“ๆžœ๏ผ‰
  • ๅ†…็ฝฎ OAuth ๆ”ฏๆŒ๏ผˆๅฏ้€‰๏ผ‰
  • Agent ็ญพๅ๏ผšโ€”โ€”็”ฑใ€Œ{agent_name}ใ€ไปฃๅ‘

REST API

้€š็”จ Agent/่„šๆœฌ่ฐƒ็”จ๏ผŒX-Agent-Token ่ฎค่ฏ๏ผš

# Agent ่ฎค่ฏ๏ผˆไธไฝฟ็”จ JWT๏ผŒ็›ดๆŽฅ API Key๏ผ‰
curl -H "X-Agent-Token: aam_xxxxxxxx" \
     https://missive-mail.ialer.workers.dev/api/v1/mails

# ๅ‘้€้‚ฎไปถ
curl -X POST -H "X-Agent-Token: aam_xxxxxxxx" \
     -H "Content-Type: application/json" \
     -d '{"to":"user@example.com","subject":"Report","text":"Daily summary..."}' \
     https://missive-mail.ialer.workers.dev/api/v1/mails/send

Webhook ไบ‹ไปถๆŽจ้€

ไบ‹ไปถ้ฉฑๅŠจ๏ผŒHMAC-SHA256 ็ญพๅ้ชŒ่ฏ๏ผŒQueue ๅผ‚ๆญฅๆŠ•้€’ + ้‡่ฏ•๏ผš

// ๆณจๅ†Œ Webhook
POST /api/v1/webhooks
{
  "url": "https://your-agent.com/webhook",
  "events": ["mail.received", "mail.read", "mail.flagged"],
  "filter": { "importance": "high" },
  "secret": "your-webhook-secret"
}

// ๆŽจ้€ๆ ผๅผ
{
  "event": "mail.received",
  "timestamp": "2026-05-07T12:00:00Z",
  "mail": { "id": "...", "from": "alert@github.com", "subject": "Issue #42" },
  "signature": "hmac-sha256=..."
}

๐Ÿ” ๅฎ‰ๅ…จไฝ“็ณป

ๅฑ‚็บง ๆŽชๆ–ฝ
่ฎค่ฏ JWT + Agent API Key + Turnstile CAPTCHA
2FA TOTP ๅŒๅ› ็ด  + ๆขๅค็  + ๆ”พๅฎฝ็ญ–็•ฅ
้™ๆต KV ๆป‘ๅŠจ็ช—ๅฃ๏ผˆIP/็”จๆˆท/Agent ไธ‰็บง๏ผ‰
ๅŠ ๅฏ† PGP ็ซฏๅˆฐ็ซฏ๏ผˆๆต่งˆๅ™จ็ซฏ openpgp.js๏ผ‰
ไผ ่พ“ CF ่‡ชๅŠจ SPF/DKIM/DMARC + TLS
ๅฎก่ฎก D1 ๅ…จๆ“ไฝœๆ—ฅๅฟ— + ็™ปๅฝ•ๅކๅฒ
ๅžƒๅœพ่ฟ‡ๆปค 5 ๅฑ‚่ฟ‡ๆปค้“พ

๐ŸŒ ๅŒ่ฏญ็•Œ้ข

  • ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡๏ผˆ้ป˜่ฎค๏ผ‰/ ๐Ÿ‡บ๐Ÿ‡ธ English
  • 300+ ็ฟป่ฏ‘้”ฎ๏ผŒ่ฆ†็›–ๆ‰€ๆœ‰้กต้ข
  • ้กถๆ ไธ€้”ฎๅˆ‡ๆข๏ผŒlocalStorage ่ฎฐๅฟ†

๐Ÿ“ง ้‚ฎไปถ่ƒฝๅŠ›

  • ๆ”ถไฟก: CF Email Routing๏ผˆๅ…่ดนๆ— ้™๏ผ‰+ postal-mime ่งฃๆž
  • ๅ‘ไฟก: CF Email Service๏ผˆ3,000ๅฐ/ๆœˆๅ…่ดน๏ผ‰
  • ๅญ˜ๅ‚จ: D1 ็ป“ๆž„ๅŒ– + R2 ้™„ไปถ + KV ็ผ“ๅญ˜
  • ่ฟฝ่ธช: D1 ๅŽŸ็”Ÿๅทฒ่ฏป + MDN ๅ›žๆ‰ง + ่ฟฝ่ธชๅƒ็ด 
  • ๅฏน่ฏ: ๆฐ”ๆณกๅผ้‚ฎไปถ่ง†ๅ›พ๏ผŒAgent ไปฃๅ‘ๆ ‡่ฎฐ

๐Ÿ— ๆŠ€ๆœฏๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    Cloudflare ่พน็ผ˜                        โ”‚
โ”‚                                                          โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  CF Email Worker โ”‚  โ”‚      Hono HTTP Worker         โ”‚  โ”‚
โ”‚  โ”‚  (ๆ”ถไฟกๅ…ฅๅฃ)       โ”‚  โ”‚  REST API + Webhook + ้™ๆ€่ต„ๆบโ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                          โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  McpAgent (DO)   โ”‚  โ”‚       CF ๅ…จๅฎถๆกถๅญ˜ๅ‚จ            โ”‚  โ”‚
โ”‚  โ”‚  /mcp            โ”‚  โ”‚  D1 + KV + R2 + Queue         โ”‚  โ”‚
โ”‚  โ”‚  ๆฏAgent็‹ฌ็ซ‹็Šถๆ€  โ”‚  โ”‚                               โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                                          โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                    โ”‚
โ”‚  โ”‚  CF Email Serviceโ”‚  โ† ๅ‘ไฟกๅ‡บๅฃ                        โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
็ป„ไปถ ๆŠ€ๆœฏ
่ฟ่กŒๆ—ถ Cloudflare Workers๏ผˆ$5/ๆœˆไป˜่ดน่ฎกๅˆ’๏ผ‰
HTTP Hono
MCP CF Agents SDK๏ผˆMcpAgent + Durable Object๏ผ‰
ๆ•ฐๆฎๅบ“ D1๏ผˆSQLite๏ผ‰+ Drizzle ORM
็ผ“ๅญ˜ KV๏ผˆ้™ๆต/ไผš่ฏ/Token๏ผ‰
ๅญ˜ๅ‚จ R2๏ผˆ้™„ไปถ/้™ๆ€่ต„ๆบ๏ผ‰
้˜Ÿๅˆ— CF Queues๏ผˆWebhook ๅผ‚ๆญฅๆŠ•้€’ + DLQ๏ผ‰
ๅ‰็ซฏ React + TailwindCSS + shadcn/ui
ๅ›ฝ้™…ๅŒ– react-i18next๏ผˆไธญ/่‹ฑ๏ผ‰
้‚ฎไปถ่งฃๆž postal-mime
PGP openpgp.js v6๏ผˆๆต่งˆๅ™จ็ซฏ๏ผ‰
ๆต‹่ฏ• Vitest๏ผˆ70 tests๏ผ‰

๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹

ๅ‰็ฝฎๆกไปถ

  • Node.js โ‰ฅ 18
  • Wrangler CLI โ‰ฅ 4
  • Cloudflare ่ดฆๆˆท๏ผˆWorkers ไป˜่ดน่ฎกๅˆ’๏ผ‰

ๆœฌๅœฐๅผ€ๅ‘

git clone https://github.com/ialer/missive-mail.git
cd missive-mail
npm install
cd web && npm install && cd ..

# ๅฏๅŠจๅผ€ๅ‘ๆœๅŠกๅ™จ
npm run dev

# ่ฟ่กŒๆต‹่ฏ•
npm test

# ๆž„ๅปบๅ‰็ซฏ
npm run build:web

ไธ€้”ฎ้ƒจ็ฝฒ

# ่ฎพ็ฝฎ Cloudflare ่ฎค่ฏ
export CLOUDFLARE_API_TOKEN=<your-token>

# ไธ€้”ฎ้ƒจ็ฝฒ๏ผˆๅˆ›ๅปบ D1/KV/R2/Queue + ่ฟ็งป + ่ฎพ็ฝฎๅฏ†้’ฅ + ๆž„ๅปบ + ้ƒจ็ฝฒ๏ผ‰
bash scripts/deploy.sh

้…็ฝฎ้‚ฎไปถ่ทฏ็”ฑ

# ้…็ฝฎ CF Email Routing๏ผˆ้œ€่ฆๅœจ CF Dashboard ๆ“ไฝœ๏ผ‰
bash scripts/setup-email.sh yourdomain.com

๐Ÿ”ง Agent ้›†ๆˆๆŒ‡ๅ—

ๆŽฅๅ…ฅ Hermes๏ผˆAI Agent๏ผ‰

# hermes config.yaml
mcp_servers:
  missive-mail:
    url: https://missive-mail.ialer.workers.dev/mcp
    transport: streamable-http

ๆŽฅๅ…ฅ OpenClaw

{
  "mcpServers": {
    "missive-mail": {
      "url": "https://missive-mail.ialer.workers.dev/mcp",
      "transport": "streamable-http"
    }
  }
}

่‡ชๅฎšไน‰ Agent ็ญพๅ

# ๅˆ›ๅปบ Agent ๆ—ถ่ฎพ็ฝฎ็ญพๅๆจกๆฟ
curl -X POST -H "X-Agent-Token: aam_xxxxxxxx" \
  -d '{"name":"my-agent","signature_template":"โ€”โ€”็”ฑใ€Œ{name}ใ€ไปฃๅ‘"}' \
  https://missive-mail.ialer.workers.dev/api/v1/agents

ๆƒ้™็Ÿฉ้˜ต

่ง’่‰ฒ ่ฏป้‚ฎไปถ ๅ‘้‚ฎไปถ ๅ›žๅค ็ฎก็†ๆ ‡็ญพ ๅˆ ้™ค ็ฎก่ดฆๆˆท ็ฎก่ง„ๅˆ™
ๅช่ฏป โœ… โŒ โŒ โŒ โŒ โŒ โŒ
ๅŠฉ็† โœ… โœ… โœ… โœ… โŒ โœ… โŒ
็ฎก็† โœ… โœ… โœ… โœ… โœ… โœ… โœ…
ๅ…จๆƒ โœ… โœ… โœ… โœ… โœ… โœ… โœ…

๐Ÿ“Š MCP Tools ่ฏฆ็ป†ๆ–‡ๆกฃ

mail_list

ๅˆ—ๅ‡บ้‚ฎไปถ๏ผŒๆ”ฏๆŒๆ–‡ไปถๅคน่ฟ‡ๆปคๅ’Œๅˆ†้กตใ€‚

ๅ‚ๆ•ฐ ็ฑปๅž‹ ๅฟ…ๅกซ ่ฏดๆ˜Ž
folder string ๅฆ inbox/sent/draft/archive/spam
filter string ๅฆ ๅ…จๆ–‡ๆœ็ดขๅ…ณ้”ฎ่ฏ
page number ๅฆ ้กต็ ๏ผŒ้ป˜่ฎค 1

mail_read

่ฏปๅ–้‚ฎไปถๅฎŒๆ•ดๅ†…ๅฎน๏ผŒ่‡ชๅŠจๆ ‡่ฎฐๅทฒ่ฏปใ€‚

ๅ‚ๆ•ฐ ็ฑปๅž‹ ๅฟ…ๅกซ ่ฏดๆ˜Ž
id string ๆ˜ฏ ้‚ฎไปถ ID

mail_send

ๅ‘้€้‚ฎไปถใ€‚

ๅ‚ๆ•ฐ ็ฑปๅž‹ ๅฟ…ๅกซ ่ฏดๆ˜Ž
to string ๆ˜ฏ ๆ”ถไปถไบบ
subject string ๆ˜ฏ ไธป้ข˜
body string ๆ˜ฏ ๆญฃๆ–‡
cc string ๅฆ ๆŠ„้€
bcc string ๅฆ ๅฏ†้€
signature string ๅฆ ่‡ชๅฎšไน‰็ญพๅ๏ผˆ่ฆ†็›–้ป˜่ฎค๏ผ‰

mail_reply

ๅ›žๅค้‚ฎไปถใ€‚

ๅ‚ๆ•ฐ ็ฑปๅž‹ ๅฟ…ๅกซ ่ฏดๆ˜Ž
id string ๆ˜ฏ ๅŽŸ้‚ฎไปถ ID
body string ๆ˜ฏ ๅ›žๅคๆญฃๆ–‡
signature string ๅฆ ่‡ชๅฎšไน‰็ญพๅ

mail_manage

ๆ‰น้‡็ฎก็†้‚ฎไปถใ€‚

ๅ‚ๆ•ฐ ็ฑปๅž‹ ๅฟ…ๅกซ ่ฏดๆ˜Ž
action enum ๆ˜ฏ archive/label/delete/star
ids string[] ๆ˜ฏ ้‚ฎไปถ ID ๅˆ—่กจ
label string ๅฆ ๆ ‡็ญพๅ๏ผˆaction=label ๆ—ถๅฟ…ๅกซ๏ผ‰

mail_analyze

้‚ฎไปถ็ปŸ่ฎกๅˆ†ๆžใ€‚

ๅ‚ๆ•ฐ ็ฑปๅž‹ ๅฟ…ๅกซ ่ฏดๆ˜Ž
filter string ๅฆ ๆ—ถ้—ด่Œƒๅ›ด่ฟ‡ๆปค

mail_search

ๅ…จๆ–‡ๆœ็ดขใ€‚

ๅ‚ๆ•ฐ ็ฑปๅž‹ ๅฟ…ๅกซ ่ฏดๆ˜Ž
query string ๆ˜ฏ ๆœ็ดขๅ…ณ้”ฎ่ฏ
folder string ๅฆ ้™ๅฎšๆ–‡ไปถๅคน

๐Ÿ“ ้กน็›ฎ็ป“ๆž„

missive-mail/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ worker.ts              # Worker ๅ…ฅๅฃ๏ผˆHono + Email Handler๏ผ‰
โ”‚   โ”œโ”€โ”€ mcp/mail-mcp.ts        # McpAgent MCP Server๏ผˆ7 tools๏ผ‰
โ”‚   โ”œโ”€โ”€ schema/index.ts        # Drizzle ORM Schema๏ผˆ10 ๅผ ่กจ๏ผ‰
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”œโ”€โ”€ auth.ts            # JWT + ๅฏ†็  + API Key
โ”‚   โ”‚   โ”œโ”€โ”€ db.ts              # D1 ่ฟžๆŽฅ
โ”‚   โ”‚   โ”œโ”€โ”€ queue.ts           # Webhook Queue Producer/Consumer
โ”‚   โ”‚   โ”œโ”€โ”€ spam.ts            # 5 ๅฑ‚ๅžƒๅœพ่ฟ‡ๆปค
โ”‚   โ”‚   โ”œโ”€โ”€ rate-limit.ts      # KV ๆป‘ๅŠจ็ช—ๅฃ้™ๆต
โ”‚   โ”‚   โ””โ”€โ”€ turnstile.ts       # Turnstile CAPTCHA
โ”‚   โ””โ”€โ”€ routes/
โ”‚       โ”œโ”€โ”€ auth.ts            # ่ฎค่ฏ่ทฏ็”ฑ
โ”‚       โ”œโ”€โ”€ mails.ts           # ้‚ฎไปถ CRUD
โ”‚       โ”œโ”€โ”€ agents.ts          # Agent ็ฎก็†
โ”‚       โ”œโ”€โ”€ webhooks.ts        # Webhook ็ฎก็†
โ”‚       โ””โ”€โ”€ admin.ts           # ็ฎก็†ๅŽๅฐ
โ”œโ”€โ”€ web/                       # React ๅ‰็ซฏ๏ผˆไธญ/่‹ฑๅŒ่ฏญ๏ผ‰
โ”œโ”€โ”€ migrations/                # D1 ่ฟ็งป SQL
โ”œโ”€โ”€ scripts/                   # ้ƒจ็ฝฒ่„šๆœฌ
โ”œโ”€โ”€ test/                      # ๆต‹่ฏ•๏ผˆ70 tests๏ผ‰
โ””โ”€โ”€ wrangler.toml              # CF Workers ้…็ฝฎ

๐Ÿ”‘ ็Žฏๅขƒๅ˜้‡

ๅ˜้‡ ่ฏดๆ˜Ž ๅฟ…ๅกซ
JWT_SECRET JWT ็ญพๅๅฏ†้’ฅ โœ…
TURNSTILE_SECRET_KEY Turnstile CAPTCHA ๅฏ†้’ฅ ๅฏ้€‰
TURNSTILE_SITE_KEY Turnstile ๅ‰็ซฏ Key ๅฏ้€‰
CF_EMAIL_SERVICE_API_KEY CF Email Service API Key ๅฏ้€‰

๐Ÿ’ฐ ๆˆๆœฌไผฐ็ฎ—

ๆœๅŠก ๅ…่ดน้ขๅบฆ ้ข„ไผฐ็”จ้‡ ๆœˆ่ดน
Workers 10M ่ฏทๆฑ‚ ~50K $0
D1 25B ่ฏป/50M ๅ†™ ~100K $0
KV 10M ่ฏป/1M ๅ†™ ~200K $0
R2 10GB <1GB $0
DO 1M ่ฏทๆฑ‚ ~10K $0
Queue 1M ๆ“ไฝœ ~10K $0
CF Email Service 3,000ๅฐ/ๆœˆ ~500ๅฐ $0
ๅˆ่ฎก $5/ๆœˆ

๐Ÿ“œ License

MIT

About

๐Ÿ“ฌ Agent-native mail server on Cloudflare Workers โ€” MCP + REST + Webhook

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages