2024-04-14 00:42:57 +08:00
2024-04-12 23:28:41 +08:00
2024-04-14 00:42:57 +08:00

cloudflare temp email

中文

CHANGELOG

Live Demo

https://mail.awsl.uk

This is a temporary email service that uses Cloudflare Workers to create a temporary email address and view the received email in web browser.

Features

  • Cloudflare D1 as a database
  • Deploy the front end with Cloudflare Pages
  • Deploy the backend with Cloudflare Workers
  • Email forwarding using Cloudflare Email Routing
  • Use password to login to the previous mailbox again.
  • Get Custom Name Email
  • Support multiple languages
  • Add access authorization, which can be used as a private site
  • Add auto reply feature
  • Add attachment viewing function
  • use rust wasm to parse email
  • support send email

demo

Deploy

Install/Update Wrangler

DB - Cloudflare D1

# create a database, and copy the output to wrangler.toml in the next step
wrangler d1 create dev
wrangler d1 execute dev --file=db/schema.sql
# schema update, if you have initialized the database before this date, you can execute this command to update
# wrangler d1 execute dev --file=db/2024-01-13-patch.sql
# wrangler d1 execute dev --file=db/2024-04-03-patch.sql

d1

Backend - Cloudflare workers

The first deployment will prompt you to create a project. Please fill in production for the production branch.

cd worker
pnpm install
# copy wrangler.toml.template to wrangler.toml
# and add your d1 config and these config
# PREFIX = "tmp" - the email create will be like tmp<xxxxx>@DOMAIN
# IF YOU WANT TO MAKE YOUR SITE PRIVATE, UNCOMMENT THE FOLLOWING LINES
# PASSWORDS = ["123", "456"]
# For admin panel, if not set will no allow to access the admin panel
# ADMIN_PASSWORDS = ["123", "456"]
# DOMAINS = ["xxx.xxx1" , "xxx.xxx2"] you domain name
# JWT_SECRET = "xxx"
# BLACK_LIST = ""
cp wrangler.toml.template wrangler.toml
# deploy
pnpm run deploy

you can find and test the worker's url in the workers dashboard

worker

Cloudflare Email Routing

Before you can bind an email address to your Worker, you need to enable Email Routing and have at least one verified email address.

enable email route and config email forward catch-all to the worker

email

Frontend - Cloudflare pages

The first deployment will prompt you to create a project. Please fill in production for the production branch.

cd frontend
pnpm install
# add .env.local and modify VITE_API_BASE to your worker's url
# VITE_API_BASE=https://xxx.xxx.workers.dev - don't put / in the end
cp .env.example .env.local
pnpm build --emptyOutDir
pnpm run deploy

pages

Configure sending emails

Find the SPF record of TXT in the domain name DNS record, and add include:relay.mailchannels.net

v=spf1 include:_spf.mx.cloudflare.net include:relay.mailchannels.net ~all

Create a new _mailchannels record, the type is TXT, the content is v=mc1 cfid=your worker domain name

  • The worker domain name here is the domain name of the back-end api. For example, if I deploy it at https://temp-email-api.awsl.uk/, fill in v=mc1 cfid=awsl.uk
  • If your domain name is https://temp-email-api.xxx.workers.dev, fill in v=mc1 cfid=xxx.workers.dev
Description
CloudFlare free temp domain email 免费收发 临时域名邮箱 支持附件 IMAP SMTP TelegramBot
Readme MIT 23 MiB
Languages
TypeScript 45.7%
Vue 44.8%
Python 4.7%
JavaScript 3.9%
Rust 0.6%
Other 0.3%