- feat: |User Registration| Add email regex validation for user registration, admins can configure email format validation rules
- fix: |Docs| Fix User Mail API documentation incorrectly using
x-admin-auth, changed to correctx-user-token - docs: |Docs| Add Admin API documentation for delete mail, delete address, clear inbox, and clear sent items
- style: |Mail List| Improve empty state display for inbox and sent box, show different messages based on mail count, add semantic icons
- feat: |OAuth2| Add email format transformation support for OAuth2, allowing regex-based email format conversion from third-party login providers (e.g., transform
user@domaintouser@custom.domain) - feat: |OAuth2| Add SVG icon support for OAuth2 providers, admins can configure custom icons for login buttons, preset icons for GitHub, Linux Do, Authentik templates
- feat: |Send Mail| Auto-hide sendmail tab, sendbox tab, and reply button when send mail is not configured
- fix: |User Address| Fix address count limit check failure when anonymous creation is disabled for logged-in users, add public function
isAddressCountLimitReachedto unify address count limit logic
- refactor: |Code Refactoring| Extract address count limit check as a public function to improve code reusability
- perf: |Performance| Change address activity time update in GET requests to async execution using
waitUntil, non-blocking response
- fix: |Scheduled Tasks| Fix scheduled task cleanup error
e.get is not a function, use optional chaining for safe access to Context methods
- style: |AI Extraction| Use softer blue color (#A8C7FA) for AI extraction info in dark mode to reduce eye strain
- |Database| Add
source_metafield, need to executedb/2025-12-27-source-meta.sqlto update database or click database update button on admin maintenance page
- feat: |Admin| Add admin account page, display current login method and support logout (password login only)
- fix: |GitHub Actions| Fix container image name must be lowercase
- feat: |Email Forwarding| Add source address regex forwarding, filter by sender address, fully backward compatible
- feat: |Address Source| Add address source tracking feature, record address creation source (Web records IP, Telegram records user ID, Admin panel marked)
- feat: |Email Filtering| Remove backend keyword parameter, switch to frontend filtering of current page emails, optimize query performance
- feat: |Frontend| Unify address switching into a dropdown component, support switching in simple mode, add address management entry on the homepage
- feat: |Database| Add index for
message_idfield to optimize email update operations, need to executedb/2025-12-15-message-id-index.sqlto update database - feat: |Admin| Add custom SQL cleanup feature to maintenance page, support scheduled task execution of custom cleanup statements
- feat: |i18n| Backend API error messages now fully support Chinese and English internationalization
- feat: |Telegram| Bot supports Chinese/English switching, add
/langcommand to set language preference
- feat: |AI Extraction| Add AI email recognition feature, use Cloudflare Workers AI to automatically extract verification codes, authentication links, service links and other important information from emails
- Support priority extraction: verification codes > authentication links > service links > subscription links > other links
- Admin can configure address whitelist (supports wildcards, e.g.
*@example.com) - Frontend list and detail pages display extraction results
- Need to configure
ENABLE_AI_EMAIL_EXTRACTenvironment variable and AI binding - Need to execute SQL in
db/2025-12-06-metadata.sqlfile to updateD1database or click database update button on admin maintenance page
- feat: |Admin| Add feature to cleanup addresses with empty mailboxes older than n days on maintenance page
- fix: Fix custom authentication password function issue (frontend property name error & /open_api interface blocked)
- feat: |Admin| Add IP blacklist feature for limiting high-frequency API access
- feat: |Admin| Add ASN organization blacklist feature, support filtering requests based on ASN organization name (supports text matching and regex)
- feat: |Admin| Add browser fingerprint blacklist feature, support filtering requests based on browser fingerprint (supports exact matching and regex)
- feat: |DB| Update db schema add index
- feat: |Address Password| Add address password login feature, enabled via
ENABLE_ADDRESS_PASSWORDconfiguration, need to execute SQL indb/2025-09-23-patch.sqlfile to updateD1database - fix: |GitHub Actions| Fix debug mode configuration, only enable debug mode when DEBUG_MODE is 'true'
- feat: |Admin| Account management page adds multi-select batch operations (batch delete, batch clear inbox, batch clear outbox)
- feat: |Admin| Maintenance page adds feature to cleanup unbound user addresses
- feat: Support configuring different bound address quantity limits for different roles, configurable in admin page
- feat: Add
DISABLE_CUSTOM_ADDRESS_NAMEconfiguration: disable custom email address name feature - feat: Add
CREATE_ADDRESS_DEFAULT_DOMAIN_FIRSTconfiguration: prioritize first domain when creating addresses - feat: |UI| Add button to enter minimalist mode on homepage
- feat: |Webhook| Add whitelist switch feature, support flexible access control
- feat: |UI| Optimize minimalist mode homepage, add all emails page functionality (delete/download/attachments/...), switchable in
Appearance - feat: Admin account settings page adds
Email Forwarding Rulesconfiguration - feat: Admin account settings page adds
Reject Unknown Address Emailsconfiguration - feat: Email page adds Previous/Next buttons
- fix: Fix github actions deployment issue
- feat: telegram /new when domain not specified, use random address
- fix: Fix oauth2 login failure issue
- feat: |UI| Add minimalist mode homepage, switchable in
Appearance - fix: Fix oauth2 login default role not taking effect issue
- fix: |UI| Fix User inbox viewing, when address not selected, keyword query not working
- fix: Fix auto cleanup task, time 0 not taking effect issue
- feat: Cleanup feature adds cleanup of addresses created n days ago, cleanup of addresses inactive for n days
- fix: |IMAP Proxy| Fix IMAP Proxy server unable to view new emails issue
- feat: Support User inbox viewing,
/user_api/mailsinterface, supportaddressandkeywordfiltering - fix: Fix Oauth2 login token retrieval, some Oauth2 require
redirect_uriparameter issue - feat: When user accesses webpage, if
user tokenexpires within 7 days, auto refresh - feat: Add db initialization feature to admin portal
- feat: Add
ALWAYS_SHOW_ANNOUNCEMENTvariable to configure whether to always show announcements
- feat: |UI| Support google ads
- feat: |UI| Use shadow DOM to prevent style pollution
- feat: |UI| Support URL jwt parameter auto-login to mailbox, jwt parameter overrides browser jwt
- fix: |CleanUP| Fix cleanup emails when cleanup time exceeds 30 days error bug
- feat: Admin user management page: add user address viewing feature
- feat: | S3 Attachments| Add S3 attachment deletion feature
- feat: | Admin API| Add admin bind user and address api
- feat: | Oauth2 | When Oauth2 gets user info, support
JSONPATHexpressions
- feat: | Worker | Support multi-language
- feat: | Worker |
NO_LIMIT_SEND_ROLEconfiguration supports multiple roles, comma separated - feat: | Actions | Add
worker-with-wasm-mail-parser.zipin build to support UI deployment withwasmworker
- fix: |UI| Fix mobile device date display issue
- feat: |Worker| Support sending emails via
SMTP, using zou-yu/worker-mailer
- feat: |UI| Announcements support html format
- feat: |UI|
COPYRIGHTsupports html format - feat: |Doc| Optimize deployment documentation, supplement
Github Actions Deployment Documentation, addWorker Variable Description
- feat: |mail-parser-wasm-worker| Fix
deprecatedparameter warning when callinginitSyncfunction - feat: rpc headers convert & typo (#559)
- fix: telegram mail page use iframe show email (#561)
- feat: |Worker| Add
REMOVE_ALL_ATTACHMENTandREMOVE_EXCEED_SIZE_ATTACHMENTfor removing email attachments, due to parsing emails some information will be lost, such as images.
- fix: |UI| Fix admin portal delete call api error when no recipient email
- feat: |Telegram Bot| Add telegram bot cleanup invalid address credentials command
- feat: Add worker configuration
DISABLE_ANONYMOUS_USER_CREATE_EMAILto disable anonymous user email creation, only allow logged-in users to create email addresses - feat: Add worker configuration
ENABLE_ANOTHER_WORKERandANOTHER_WORKER_LIST, for calling other worker rpc interfaces (#547) - feat: |UI| Auto refresh configuration saved to browser, configurable refresh interval
- feat: Spam detection adds check-when-exists list
JUNK_MAIL_CHECK_LISTconfiguration - feat: | Worker | Add
ParsedEmailContextclass for caching parsed email content, reduce parsing times - feat: |Github Action| Worker deployment adds
DEBUG_MODEoutput logging,BACKEND_USE_MAIL_WASM_PARSERconfiguration for whether to use wasm to parse emails
- feat: |Github Action| Add auto update and deploy feature
- feat: |UI| Admin user settings, support oauth2 configuration deletion
- feat: Add spam detection must-pass list
JUNK_MAIL_FORCE_PASS_LISTconfiguration
- fix: |Doc| Fix some documentation errors
- fix: |Github Action| Fix frontend deployment branch error issue
- feat: Admin send email feature
- feat: Admin backend, account configuration page adds unlimited send email address list
- feat: |Doc| Update UI installation documentation
- feat: |UI| Hide mailbox account ID from users
- feat: |UI| Add
Forwardbutton to email detail page
- feat: |UI| Random address generation doesn't exceed max length
- feat: |UI| Email time display in browser timezone, can switch to display UTC time in settings
- feat: Support transferring emails to other users
UI deployment worker needs to click Settings -> Runtime, modify Compatibility flags, add nodejs_compat
- feat: Support pre-setting bot info to reduce telegram callback latency (#441)
- feat: Add telegram mini app build archive
- feat: Add whether to enable spam check
ENABLE_CHECK_JUNK_MAILconfiguration
- fix: Fix
namevalidation check
- feat: UI list page adds minimum width
- fix: Fix
namevalidation check - fix: Fix
DEFAULT_DOMAINSconfiguration empty not taking effect issue
- feat: Worker adds
ADDRESS_CHECK_REGEX, address name regex, only for checking, matching will pass check - fix: UI fix login page tab active icon misalignment
- fix: UI fix admin page refresh popup password input issue
- feat: Support
OAuth2login, can login viaGithubAuthentikand other third parties, see details OAuth2 Third-party Login
webhook structure adds enabled field, existing configurations need to be re-enabled and saved on the page.
- fix: Worker adds
NO_LIMIT_SEND_ROLEconfiguration, loading failure issue - feat: Worker adds
# ADDRESS_REGEX = "[^a-z.0-9]"configuration, regex for replacing illegal symbols, if not set, defaults to [^a-z0-9], use with caution, some symbols may cause receiving issues - feat: Worker optimizes webhook logic, supports admin configuring global webhook, adds
message pusherintegration example
- fix: Fix user role loading failure issue
- feat: Admin account settings adds source email address blacklist configuration
DB changes: Add user passkey table, need to execute db/2024-08-10-patch.sql to update D1 database
- Docs: Update new-address-api.md (#360)
- feat: Worker adds
ADMIN_USER_ROLEconfiguration, for configuring admin user role, users with this role can access admin management page (#363) - feat: Worker adds
DISABLE_SHOW_GITHUBconfiguration, for configuring whether to show github link - feat: Worker adds
NO_LIMIT_SEND_ROLEconfiguration, for configuring roles that can send unlimited emails - feat: User adds
passkeylogin method, for user login, no password required - feat: Worker adds
DISABLE_ADMIN_PASSWORD_CHECKconfiguration, for configuring whether to disable admin console password check, if your site is only privately accessible, you can disable the check
- pages github actions && fix cleanup emails days 0 not taking effect by @tqjason (#355)
- fix: imap proxy server doesn't support password by @dreamhunter2333 (#356)
- worker adds
ANNOUNCEMENTconfiguration, for configuring announcement info by @dreamhunter2333 (#357) - fix: telegram bot create new address defaults to first domain by @dreamhunter2333 (#358)
DB changes: Add user role table, need to execute db/2024-07-14-patch.sql to update D1 database
Worker configuration file adds DEFAULT_DOMAINS, USER_ROLES, USER_DEFAULT_ROLE, see documentation worker configuration
- Remove
apiV1related code and related database tables - Update
admin/statisticsapi, add user statistics info - Update address rules, only allow lowercase+numbers, for historical addresses
lowercaseprocessing will be performed when querying emails - Add user role feature,
admincan set user roles (currently can configure domain and prefix for each role) - Admin page search optimization, enter key auto search, input content auto trim
- Click logo 5 times to enter admin page
- Fix 401 cannot redirect to login page (admin and site authentication)
- Fix some bugs in smtp imap proxy server
- Improve user/admin delete inbox/outbox functionality
- Admin can delete send permission records
- Add Chinese email alias configuration
DOMAIN_LABELSdocumentation - Remove
mail channelsrelated code - github actions adds
FRONTEND_BRANCHvariable to specify deployment branch (#324)
- Add
mail-parser-wasm-workerfor worker email parsing, documentation - Add user email length validation configuration
MIN_ADDRESS_LENandMAX_ADDRESS_LEN - Fix
pages functionnot forwardingtelegramapi issue
- UI: Add local cache for address management
- worker: Add
FORWARD_ADDRESS_LISTglobal email forwarding address (equivalent tocatch all) - UI: Multi-language uses routing for switching
- Add save attachments to S3 feature
- UI: Add received email list
batch deleteandbatch download
- Worker configuration file adds
TITLE = "Custom Title", can customize website title - Fix KV not bound unable to delete address issue
- UI lazy load
- telegram bot adds user global push feature (admin users)
- Add support for cloudflare verified user sending emails
- Add using
resendto send emails,resendprovides http and smtp api, easier to use, documentation: https://temp-mail-docs.awsl.uk/en/guide/config-send-mail.html
- Add telegram mini app
- telegram bot adds
unbind,deletecommands - Fix webhook multiline text issue
Configuration file main = "src/worker.js" changed to main = "src/worker.ts"
telegram botwhitelist configurationENABLE_WEBHOOKadd webhook- UI: admin page uses two-level tabs
- UI: can directly switch addresses on homepage after login
- UI: outbox also uses split view display (similar to inbox)
SMTP IMAP Proxyadd outbox viewing
- feat: telegram bot TelegramSettings && webhook by @dreamhunter2333 in dreamhunter2333#244
- fix build by @dreamhunter2333 in dreamhunter2333#245
- feat: UI changes by @dreamhunter2333 in dreamhunter2333#247
- feat: SMTP IMAP Proxy: add sendbox && UI: sendbox use split view by @dreamhunter2333 in dreamhunter2333#248
- Fix some bugs in smtp imap proxy server
- Fix UI interface text errors, interface adds version number
- Add telegram bot documentation https://temp-mail-docs.awsl.uk/en/guide/feature/telegram.html
- fix: imap server by @dreamhunter2333 in dreamhunter2333#227
- fix: Maintenance wrong label by @dreamhunter2333 in dreamhunter2333#229
- feat: add version for frontend && backend by @dreamhunter2333 in dreamhunter2333#230
- feat: add page functions proxy to make response faster by @dreamhunter2333 in dreamhunter2333#234
- feat: add about page by @dreamhunter2333 in dreamhunter2333#235
- feat: remove mailV1Alert && fix mobile showSideMargin by @dreamhunter2333 in dreamhunter2333#236
- feat: telegram bot by @dreamhunter2333 in dreamhunter2333#238
- fix: remove cleanup address due to many table need to be clean by @dreamhunter2333 in dreamhunter2333#240
- feat: docs: Telegram Bot by @dreamhunter2333 in dreamhunter2333#241
- fix: smtp_proxy: cannot decode 8bit && tg bot new random address by @dreamhunter2333 in dreamhunter2333#242
- fix: smtp_proxy: update raise imap4.NoSuchMailbox by @dreamhunter2333 in dreamhunter2333#243
- Username limited to max 30 characters
- Fix
/external/api/send_mailnot returning bug (#222) - Add
IMAP proxyservice, supportIMAPviewing emails - UI interface adds version number display
- feat: use common function handleListQuery when query by page by @dreamhunter2333 in dreamhunter2333#220
- fix: typos by @lwd-temp in dreamhunter2333#221
- fix: name max 30 && /external/api/send_mail not return result by @dreamhunter2333 in dreamhunter2333#222
- fix: smtp_proxy_server support decode from mail charset by @dreamhunter2333 in dreamhunter2333#223
- feat: add imap proxy server by @dreamhunter2333 in dreamhunter2333#225
- feat: UI show version by @dreamhunter2333 in dreamhunter2333#226
- @lwd-temp made their first contribution in dreamhunter2333#221
Added user related tables for storing user information
db/2024-05-08-patch.sql
Enable user registration email verification requires KV
# kv config for send email verification code
# [[kv_namespaces]]
# binding = "KV"
# id = "xxxx"- Add user registration feature, can bind email addresses, automatically obtain email JWT credentials after binding
- Add default text display for emails, text and HTML email display mode switch button
- Fix
BUGrandomly generated email names are invalid #211 adminemail page supports email content search #210- Fix bug where emails weren't deleted when deleting addresses #213
- UI adds global tab position configuration, side margin configuration
- feat: update docs by @dreamhunter2333 in dreamhunter2333#204
- feat: add Deploy to Cloudflare Workers button by @dreamhunter2333 in dreamhunter2333#205
- feat: add Deploy to Cloudflare Workers docs by @dreamhunter2333 in dreamhunter2333#206
- feat: add UserLogin by @dreamhunter2333 in dreamhunter2333#209
- feat: admin search mailbox && fix generateName multi dot && user jwt exp in 30 days && UI globalTabplacement && useSideMargin by @dreamhunter2333 in dreamhunter2333#214
- feat: UI check openSettings in Login page by @dreamhunter2333 in dreamhunter2333#215
- feat: UI move AdminContact to common by @dreamhunter2333 in dreamhunter2333#217
- feat: docs by @dreamhunter2333 in dreamhunter2333#218
- Fix Admin delete email error
- UI: Reply email button, quote original email text #186
- Add send email address blacklist
- Add
CF TurnstileCAPTCHA configuration - Add
/external/api/send_mailsend email api, use body verification #194
- UI: Add reply email button
- Add scheduled cleanup feature, configurable in admin page (need to enable scheduled task in config file)
- Fix delete account no response issue
- feat: UI: MailBox add reply button by @dreamhunter2333 in dreamhunter2333#187
- feat: add cron auto clean up by @dreamhunter2333 in dreamhunter2333#189
- fix: delete account by @dreamhunter2333 in dreamhunter2333#190
Added settings table for storing general configuration information
db/2024-05-01-patch.sql
ENABLE_USER_CREATE_EMAILwhether to allow users to create emails- Allow admin to create emails without prefix
- Add
SMTP proxy server, support SMTP sending emails - Fix some cases where browsers can't load
wasmuse js to parse emails - Footer adds
COPYRIGHT - UI allows users to switch email display mode
v-html/iframe - Add
adminaccount configuration page, support configuring user registration name blacklist
- feat: support admin create address && add ENABLE_USER_CREATE_EMAIL co… by @dreamhunter2333 in dreamhunter2333#175
- feat: add SMTP proxy server by @dreamhunter2333 in dreamhunter2333#177
- fix: cf ui var is string by @dreamhunter2333 in dreamhunter2333#178
- fix: UI mailbox 100vh to 80vh by @dreamhunter2333 in dreamhunter2333#179
- fix: smtp_proxy_server hostname && add docker image for linux/arm64 by @dreamhunter2333 in dreamhunter2333#180
- fix: some browser do not support wasm by @dreamhunter2333 in dreamhunter2333#182
- feat: add COPYRIGHT by @dreamhunter2333 in dreamhunter2333#183
- feat: UI: add user page: useIframeShowMail && mailboxSplitSize by @dreamhunter2333 in dreamhunter2333#184
- feat: add address_block_list for new address by @dreamhunter2333 in dreamhunter2333#185
The prefix of the address table will migrate from code to db, please replace tmp in the sql below with your prefix, then execute.
If your data is important, please backup your database first.
Note: Replace prefix
update
address
set
name = 'tmp' || name;- Migrate the prefix of the
addresstable from code to db adminaccount page adds send/receive email countsadminoutbox page defaults to show alladminsend permission page supports search by addressadminemail page uses split view UI
- feat: remove PREFIX logic in db by @dreamhunter2333 in dreamhunter2333#171
- feat: admin page add account mail count && sendbox default all && sen… by @dreamhunter2333 in dreamhunter2333#172
- feat: all mail use MailBox Component by @dreamhunter2333 in dreamhunter2333#173
Full Changelog: https://github.com/dreamhunter2333/cloudflare_temp_email/compare/0.2.10...v0.3.0
ENABLE_USER_DELETE_EMAILwhether to allow users to delete account and emailsENABLE_AUTO_REPLYwhether to enable auto reply- fetchAddressError prompt improvement
- Auto refresh shows countdown
- feat: docs update by @dreamhunter2333 in dreamhunter2333#165
- feat: add ENABLE_USER_DELETE_EMAIL && ENABLE_AUTO_REPLY && modify fetchAddressError i18n && UI: show autoRefreshInterval by @dreamhunter2333 in dreamhunter2333#169
- Add rich text editor
- Admin contact info, won't show if not configured, can configure any string
ADMIN_CONTACT = "xx@xx.xxx" - Default send email balance, if not set, will be 0
DEFAULT_SEND_BALANCE = 1
-
Allow users to delete emails
-
Admin notifies user by email when modifying send permissions
-
Send permission defaults to 1
-
Add RATE_LIMITER rate limiting for sending emails and creating new addresses
-
Some bug fixes
-
feat: allow user delete mail && notify when send access changed by @dreamhunter2333 in dreamhunter2333#132
-
feat: request_send_mail_access default 1 balance by @dreamhunter2333 in dreamhunter2333#143
-
fix: RATE_LIMITER not call jwt by @dreamhunter2333 in dreamhunter2333#146
-
fix: delete_address not delete address_sender by @dreamhunter2333 in dreamhunter2333#153
-
fix: send_balance not update when click sendmail by @dreamhunter2333 in dreamhunter2333#155
- Added user interface installation documentation
- Support email DKIM
- Rate limiting configuration for
/api/new_address
- Added admin query outbox page
- Add admin data cleaning page
- Support send email
DB changes:
db/2024-04-12-patch.sql
- remove
ENABLE_ATTACHMENTconfig - use rust wasm to parse email in frontend
- deprecated api moved to
/api/v1
Due to some problems with nodejs' email parsing library, this version switches to using rust wasm to call rust's mail parsing library.
- Faster speed, good attachment support, can display attachment images of emails
- Parsing supports more rfc specifications
The mails table will be discarded, and the raw text of the new mail will be directly stored in the raw_mails table
git checkout v0.2.0
cd worker
wrangler d1 execute dev --file=../db/2024-04-09-patch.sql --remote
pnpm run deploy
cd ../frontend
pnpm run deployNote: For historical messages, use the Deploy New web page to view old data.
git checkout feature/backup
cd frontend
# Create a new pages for accessing old data
pnpm run deploy --project-name temp-email-v1release v0.0.0
DB changes
db/2024-04-03-patch.sql
Changes:
- add delete account
- add admin panel search
DB changes
db/2024-01-13-patch.sql
