Nullmail is a privacy-focused, ephemeral tempmail service built with SvelteKit, Supabase, and ForwardEmail. It provides instant, disposable inboxes with automatic expiry, no sign-up, and no tracking. Ideal for quick, anonymous email verification and sign-up flows.
Nullmail addresses the need for a quick, privacy-preserving way to receive emails without registration or tracking. It's ideal for users who want to protect their identity during online sign-ups or verifications.
It comes with a browser extension for easy access to your temporary email addresses.
- Ephemeral, disposable inboxes.
- Automatic email expiration.
- No sign-up or personal info required.
- No tracking or logging of user data.
- Built with SvelteKit, Supabase, ForwardEmail, Cloudflare Tunnel.
- Browser extension for quick access to mailboxes.
Nullmail is running in production at https://nullmail.cc. Feel free to try it out!
-
Clone the repository:
git clone <repo-url>
-
Install dependencies:
npm install
-
Install Cloudflared:
Download and installcloudflared
from Cloudflare Docs. -
Set up environment variables:
Copy.env.example
to.env
and fill in the required secrets (Supabase, ForwardEmail, etc.). -
Set up Cloudflare tunnel:
- Authenticate with Cloudflare:
cloudflared login
- Create/configure your tunnel (or use provided
config.yml
).
- Authenticate with Cloudflare:
-
Initialize Supabase: Run db/migrate.sql in the supabase dashboard SQL Editor to set up the database schema.
-
Set up email forwarding:
Configure ForwardEmail to forward emails tohttps://your-domain.com/api/webhooks/forwardemail
. -
Start development server:
npm run dev
-
(Optional) Start Cloudflare tunnel for remote access:
npm run tunnel
-
Development server:
npm run dev
Starts the SvelteKit development server. -
Build for production:
npm run build
Creates a production build of the app. -
Preview production build locally:
npm run preview
-
Cloudflare Tunnel for development:
npm run tunnel
Exposes your local dev server via Cloudflare tunnel (see config.yml). -
Deploy to Vercel (preview):
npm run vercel:preview
Deploys a preview build to Vercel. -
Deploy to Vercel (production):
npm run vercel:prod
Deploys the latest code to Vercel production. -
Build browser extensions:
npm run build:extension:all
Builds Chrome and Firefox extension versions. -
Package extensions for stores:
npm run package:extension:all
Creates store-ready ZIP/XPI packages.
Secrets and API keys (e.g., Supabase, ForwardEmail) should be set in the Vercel dashboard.
Refer to .env.example
for all required environment variables and ensure they are configured before running the app.
- SvelteKit frontend and API routes hosted on Vercel.
- Supabase backend.
- Forwardemail.net for email forwarding.
- Tailwind CSS for styling.
- Cloudflare tunnel for local development.
/extension
- Source code for the browser extension.
Nullmail includes a workflow to check if the email domain is blacklisted using the StopForumSpam API. This check is performed daily and can also be triggered manually. If the domain is found to be blacklisted, an issue is created in the repository for further investigation.
Enhance your Nullmail experience with the official browser extension for Chrome and Firefox:
- Automatic mailbox tracking - Visit any Nullmail.cc mailbox and it's instantly added to your quick-access menu
- One-click generation of new temporary email addresses
- Smart expiry detection - Expired emails are automatically removed from your list
- Right-click context menu for instant access to all your active mailboxes
- Cross-browser compatible and lightweight
- Chrome: Chrome Web Store
- Firefox: Firefox Add-ons
npm run build:extension:all # Build both browser versions
npm run package:extension:all # Create store-ready packages
Extension source code is located in the extension/ directory.
Nullmail is designed with privacy and security in mind, but temporary email services inherently face challenges related to abuse and misuse. Below are some key considerations and measures taken to mitigate risks:
Nullmail does not require any personal information or sign-up. It does not track or log user activity beyond what is necessary for core functionality. Emails are stored temporarily and deleted automatically after expiration to minimize data retention.
Temporary inboxes and their emails are automatically deleted after a short, predefined period, minimizing data retention and reducing attack surface.
Nullmail leverages Cloudflare rate limiting to control email creation and message fetching, helping prevent spam, phishing, and other abuse.
Communications between clients and the backend occur over HTTPS to protect data in transit. Sensitive configuration data such as API keys and secrets are stored securely in environment variables and never exposed to the client.
Disclaimer:
While Nullmail strives to provide a secure and private service, temporary email services may be inherently vulnerable to certain abuses. Users should not rely on Nullmail for sensitive or long-term communications. The service is provided “as-is” without guarantees, and the maintainers are not responsible for any misuse.
Contributions, issues, and feature requests are welcome! Please open an issue or submit a pull request.
MIT © gkoos