cloudflare_temp_email

Application

dreamhunter2333/cloudflare_temp_email

Free temporary email service on Cloudflare with IMAP/SMTP and Telegram bot.

Overview

A fully functional temporary email system built on Cloudflare's free tier. It provides fast email parsing using Rust WASM, supports attachments, AI email recognition, SMTP/IMAP proxy, and a Telegram bot for notifications. Suitable for personal use or small-scale deployments.

README Preview

\n# Cloudflare 临时邮箱 - 免费搭建临时邮件服务\n\n\n  \n    \n  \n  \n    \n  \n  \n    \n  \n  \n   \n  \n  \n    \n  \n  \n    \n  \n\n\n\n  \n    \n  \n\n\n\n  中文文档 |\n  English Document\n\n\n> 本项目仅供学习和个人用途,请勿将其用于任何违法行为,否则后果自负。\n\n**一个功能完整的临时邮箱服务!**\n\n- **完全免费** - 基于 Cloudflare 免费服务构建,零成本运行\n- **高性能** - Rust WASM 邮件解析,响应速度极快\n- **现代化界面** - 响应式设计,支持多语言,操作简便\n- **地址密码** - 支持为邮箱地址设置独立密码,增强安全性\n- **Agent 友好** - 内置邮箱 [`skill`](skills/cf-temp-mail-agent-mail/SKILL.md),方便 AI agent 使用邮箱\n- **移动端管理** - 社区客户端 [CloudMail](https://github.com/Lur1N77777/CloudMail),支持 Android 管理后台和邮箱管理\n\n## 部署文档 - 快速开始\n\n[部署文档](https://temp-mail-docs.awsl.uk) | [Github Action 部署文档](https://temp-mail-docs.awsl.uk/zh/guide/actions/github-action.html)\n\n\n  \n\n\n## 更新日志\n\n查看 [CHANGELOG](CHANGELOG.md) 了解最新更新内容。\n\n## 在线体验\n\n立即体验 → [https://mail.awsl.uk/](https://mail.awsl.uk/)\n\n\n服务状态监控(点击收缩/展开)\n\n|                                            |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |\n| ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

FAQ (3)

Troubleshooting
Why are admin mailbox created_at and updated_at timestamps displayed in UTC instead of the local timezone?

This was fixed in PR #1146. Update the frontend to a release containing that PR and rebuild/redeploy it. The raw D1 timestamp columns in frontend/src/views/admin/Account.vue now use utcToLocalDate(row.created_at, useUTCDate.value) and utcToLocalDate(row.updated_at, useUTCDate.value). The same fix was applied to created_at in frontend/src/views/admin/UserManagement.vue and frontend/src/views/admin/SenderAccess.vue. For a manual patch, replace direct timestamp rendering in those templates with utcToLocalDate(...), ensure the helper and useUTCDate setting are imported, then run the frontend build and redeploy.

GitHub Issue #1145
Troubleshooting
How to fix false junk mail rejection when DMARC/DKIM/SPF result is none or neutral with JUNK_MAIL_CHECK_LIST enabled?

This false rejection is caused by a junk check logic bug: the Cloudflare Email Worker incorrectly treats SPF/DKIM/DMARC none/neutral statuses as explicit failures. Per email authentication standards, these statuses indicate no published SPF record, unsigned mail, or no applicable DMARC policy, and should not trigger rejection. The buggy code only checks for the presence of authentication headers (e.g. dmarc=) and rejects all non-pass results, which does not align with the documented JUNK_MAIL_CHECK_LIST rule: only reject when an enabled check exists and explicitly fails.

Temporary workaround:
1. Open your worker/wrangler.toml configuration file.
2. Remove items that return none/neutral status (e.g. dkim, dmarc) from the JUNK_MAIL_CHECK_LIST array, retain only checks you require that return explicit pass/fail results.
3. Redeploy the Worker via Wrangler CLI.

Example working configuration:

ENABLE_CHECK_JUNK_MAIL = true
JUNK_MAIL_CHECK_LIST = ["spf"]
JUNK_MAIL_FORCE_PASS_LIST = ["spf"]

Once officially fixed, the logic will follow standards: none/neutral statuses will not trigger rejection, only explicit authentication failures are marked as junk, and JUNK_MAIL_FORCE_PASS_LIST will only accept explicit pass results.

GitHub Issue #1084
Troubleshooting
How do I fix Cloudflare temp mail random mailboxes not receiving emails while the admin address works, with Email Routing showing the message as deleted?

The admin address likely matches an explicit Email Routing rule, while random addresses depend on the catch-all rule. If catch-all is disabled or set to Delete/Drop, Cloudflare removes the message before it reaches your Worker.

Fix it in Cloudflare:
1. Go to **Cloudflare Dashboard → select your domain → Email → Email Routing → Routing Rules**.
2. Edit the **Catch-all address** rule.
3. Enable it and set the action to **Send to a Worker**.
4. Select your deployed temporary-mail Worker and save.
5. If you use multiple domains, repeat this for every domain assigned to random mailboxes and ensure that domain is also configured in the Worker.
6. Confirm Email Routing MX/SPF DNS records show as active, then send a new test email.

Do not use **Delete**, **Drop**, or forward the catch-all address to the admin mailbox; it must be routed directly to the Worker.

GitHub Issue #1044