Skip to content
/ vmail Public
forked from yesmore/vmail

Virtual temporary email generator. πŸ‘‰ vmail.dev

License

Notifications You must be signed in to change notification settings

lulafun/vmail

This branch is 15 commits behind yesmore/vmail:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

99825ef Β· Mar 18, 2024

History

31 Commits
Mar 18, 2024
Mar 15, 2024
Mar 14, 2024
Mar 14, 2024
Mar 14, 2024
Mar 14, 2024
Mar 14, 2024
Mar 18, 2024
Mar 18, 2024
Mar 15, 2024
Mar 16, 2024
Mar 14, 2024
Mar 14, 2024

Repository files navigation

VMAIL.DEV

δΈ­ζ–‡ζ–‡ζ‘£

Temporary email service build with email worker.

  • Receiving emails (email worker)
  • Display email (remix)
  • Mail Storage (sqlite)

Worker receives email -> saves to database -> client queries email

Screenshot

demo: https://vmail.dev

Self-hosted

Requirements

  • Cloudflare account (Email service)
  • Domain name hosted on Cloudflare
  • turso sqlite (a free plan available for personal use)

Steps

1.Register a turso account, create a database, and create an emails table

After registration, you will be prompted to create a database. I named it vmail here,

Then, Create a table named emails. Select your database, you will see the "Edit Tables" button, click and enter.

⚠️ Note: There is a plus button in the upper left corner, and I tried to click it without any prompts or effects, so I used the cli provided by turso to initialize the table.

Cli documents: https://docs.turso.tech/cli/introduction

For Linux (or mac/windows):

# Install (Remember to restart the terminal after installation)
curl -sSfL https://get.tur.so/install.sh | bash

# Authenticate
turso auth login

# Connect to your Turso database
turso db shell <database-name>

# Copy sql script to run on the terminal (packages/database/drizzle/0000_sturdy_arclight.sql)
CREATE TABLE `emails` (
 `id` text PRIMARY KEY NOT NULL,
 `message_from` text NOT NULL,
 `message_to` text NOT NULL,
 `headers` text NOT NULL,
 `from` text NOT NULL,
 `sender` text,
 `reply_to` text,
 `delivered_to` text,
 `return_path` text,
 `to` text,
 `cc` text,
 `bcc` text,
 `subject` text,
 `message_id` text NOT NULL,
 `in_reply_to` text,
 `references` text,
 `date` text,
 `html` text,
 `text` text,
 `created_at` integer NOT NULL,
 `updated_at` integer NOT NULL
);

2.Deploy email workers

git clone https://github.com/yesmore/vmail

cd vmail

# Install dependencies
pnpm install

Fill in the necessary environment variables in vmail/apps/email-worker/wrangler.toml file.

  • TURSO_DB_AUTH_TOKEN (turso table info from step 1,click Generate Token)
  • TURSO_DB_URL (e.g. libsql://db-name.turso.io)
  • EMAIL_DOMAIN (e.g. vmail.dev)

If you don't do this step, you can add environment variables in the worker settings of Cloudflare

Then run cmds:

cd apps/email-worker

# Node environment required
pnpm run deploy

3.Configure email routing rules

Set Catch-all action to Send to Worker

4.Deploy Remix app on Vercel or fly.io

Ensure that the following environment variables (.env.example) are prepared and filled in during deployment:

  • COOKIES_SECRET (The encryption secret of the cookie, a random string is sufficient)
  • TURNSTILE_KEY (Obtained from Cloudflare for website verification)
  • TURNSTILE_SECRET
  • TURSO_DB_RO_AUTH_TOKEN (Obtain database credentials from turso )
  • TURSO_DB_URL
  • EMAIL_DOMAIN (e.g. vmail.dev)

5.Add DNS records to the corresponding platform in Cloudflare

e.g. vercel :

Done!

License

GNU General Public License v3.0

Star History

Star History Chart

Inspired by smail.pw & email.ml

About

Virtual temporary email generator. πŸ‘‰ vmail.dev

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 91.2%
  • CSS 5.3%
  • JavaScript 3.0%
  • Dockerfile 0.5%