Deploy your own temporary email service with web interface under 15 minutes.

watt

Watt is an open-source smtp wrapper written in Go that provides a simple web interface for creating and managing temporary email addresses. It is designed to be a self-hosted solution that enables users to create and receive temporary email addresses without the need for a third-party service.

Some of the key features of Watt include:

  • Simple web interface: No bs lightning-fast web interface. Watt store recently used addresses in browser storage for forever so you don't need to remember them.

  • Self-hosted: Watt is designed to be a self-hosted solution, which means that users have full control over their data and can run the service on their own servers. You can self-host your own temporary email service under 15 minutes using watt.

  • Fast and lightweight: Watt is written in Go, which makes it fast and lightweight. It is designed to handle a large number of email requests and can be easily scaled to meet the needs of high traffic websites.

  • Customizable: Watt is highly customizable and can be easily configured to meet the specific needs of different users. Users can customize the SMTP server settings, TTL cache duration, and domain name.

Overall, Watt is a simple and powerful SMTP wrapper that provides a secure and convenient way to manage temporary email addresses. It is a great solution for users who want to protect their privacy online and avoid spam emails.

Installation

  1. Go to the Releases section of this repository.
  2. Choose the version of Watt that you want to install.
  3. Download the binary for your operating system. There are binaries for Windows, Linux, and macOS.
  4. Extract the downloaded binary to a directory on your system.
  5. Locate watt file (watt.exe for windows)
  6. Open command prompt / terminal on same directory
  7. Start watt with following command:
    sudo ./watt --domain yourdomain.com

Usage

To start Watt, simply run the built executable. Watt accepts several command-line options, which are listed below:

usage: watt --domain=DOMAIN [<flags>]

Watt: smtp wrapper for temp mail with web based interface

Flags:
  --[no-]help                Show context-sensitive help (also try --help-long and --help-man).
  --[no-]version             Show application version.
  --port=3000                Port number to start the HTTP server on ($PORT)
  --saddr=":25"              Address to start the SMTP server on ($SMTP_ADDR)
  --readtimeout=30s          Set the read timeout duration for the SMTP server ($READ_TIMEOUT)
  --writetimeout=30s         Set the write timeout duration for the SMTP server ($WRITE_TIMEOUT)
  --maxmessagebytes=1048576  Set the maximum email size in bytes for the SMTP server ($MAX_MESSAGE_BYTES)
  --domain=DOMAIN            Domain name for SMTP server. Example: 'spamok.org' ($DOMAIN)
  --name="Watt"              This will be replaced for 'Watt' in webpage ($NAME)
  --ttl=30m                  Set the time-to-live duration for the mail cache ($TTL)

Once Watt is running, you can generate temporary email addresses by visiting http://localhost:3000 in your web browser.

Watt also accepts .env file. Below are the descriptions of each variable:

  • PORT: The port number on which the HTTP server will listen. The default value is 3000.
  • SMTP_ADDR: The address to start the SMTP server on. The default value is :25.
  • READ_TIMEOUT: The read timeout duration for the SMTP server. If not set, the default value of 30 seconds will be used.
  • WRITE_TIMEOUT: The write timeout duration for the SMTP server. If not set, the default value of 30 seconds will be used.
  • MAX_MESSAGE_BYTES: The maximum email size in bytes for the SMTP server. The default value is 1048576 bytes (1 MB).
  • DOMAIN: The domain name for the SMTP server. This is a required field and must be set.
  • NAME: The name that will replace "Watt" in the web interface. The default value is "Watt".
  • TTL: The time-to-live duration for the mail cache. The default value is 30 minutes.

Domain records setup guide

  1. Log in to your domain registrar's control panel or DNS management interface.
  2. Navigate to the DNS management section for your domain.
  3. Add an A record pointing to the IP address of the server where your Watt instance is running. For example, if your Watt instance is running on a server with IP address 123.45.67.89, you would create an A record with the name "watt" and the value "123.45.67.89".
  4. Add an MX record pointing to the same server. The name should be "@", which is shorthand for the root domain, and the value should be the same as the A record you created in step 3, but with a priority value of 10. For example, if your A record is "watt.example.com" with value "123.45.67.89", your MX record would be "@ IN MX 10 watt.example.com.".
  5. Save the changes to your DNS settings.
  6. Wait for the DNS changes to propagate, which can take up to 24 hours.
  7. Test your Watt instance by sending an email to an address at your domain and checking that it is received by your Watt instance.

Building from source

  1. Install Go: To build the Watt project, you first need to install the Go programming language. You can download the Go installer from the official website of Go.
  2. Clone the Watt Repository: Once Go is installed, clone the Watt repository from GitHub using the following command in your terminal:
    git clone git clone https://github.com/forscht/watt.git
  3. Install Dependencies: Watt has dependencies that need to be installed before it can be used. You can install them by running the following command in the cloned Watt directory:
    go mod tidy
  4. Build watt binary with below command:
    go build
  5. Run watt with following command:
    sudo ./watt --domain yourdomain.com

License

Watt is licensed under the MIT License. See the LICENSE file for more information.

Owner
Darshan
When I Wrote It, Only God and I Knew the Meaning; Now God Alone Knows
Darshan
Similar Resources

:white_check_mark: A Go library for email verification without sending any emails.

email-verifier ✉️ A Go library for email verification without sending any emails. Features Email Address Validation: validates if a string contains a

Dec 30, 2022

Golang package for send email. Support keep alive connection, TLS and SSL. Easy for bulk SMTP.

Go Simple Mail The best way to send emails in Go with SMTP Keep Alive and Timeout for Connect and Send. IMPORTANT Examples in this README are for v2.2

Jan 8, 2023

An email MIME artist for golang

Marcel is a tool to generate IETF compliant emails in raw MIME format. I mainly use this for generating emails with attachments and sending them via amazon SES. If that's what you're doing too, you may want notifications

Nov 7, 2022

EMail Searcher By Golang

EMail Searcher By Golang

GiveMeMail ▄████ ██▓ ██▒ ██▓ ▓██████ ███▄ ▄███▓▓██████ ███▄ ▄███▓ ██ ██▓ ██▓ ██▒ ▀█▒ ▓██▒ ▓██░ █▒ ▓█ ▀ ▓██▒▀█▀ ██▒▓█

Dec 4, 2021

✉️ A Go library for email verification without sending any emails.

email-verifier ✉️ A Go library for email verification without sending any emails. Features Email Address Validation: validates if a string contains a

Jun 24, 2021

End-to-end encrypted email for the mesh networking age

Yggmail It's email, but not as you know it. Introduction Yggmail is a single-binary all-in-one mail transfer agent which sends and receives email nati

Jan 2, 2023

envio de email via SMTP com anexo usando Go

gosendmail - SMTP This repo is a simple net/smtp abstraction for sending emails using SMTP. With it we can send emails With copy, with blind copy and

Aug 18, 2022

Go implementation of the JWZ email threading algorithm

Go implementation of the JWZ email threading algorithm

The JWZ Threading algorithm written in Go This is an open source Go implementation of the widely known JWZ message threading algorithm originally writ

Oct 31, 2022

a simple api that sent spam via sms and email

a simple api that sent spam via sms and email routes: /sms /email example request with python

Oct 19, 2021
VMail - check the markup (HTML, CSS) of HTML email template compatibility with email clients
VMail - check the markup (HTML, CSS) of HTML email template compatibility with email clients

VMail - check the markup (HTML, CSS) of HTML email template compatibility with email clients Email clients use different rendering standards. This is

Dec 17, 2022
Email-searcher - Given a domain name and real name, attempt to find an existing email for that user.

email-searcher Given a domain name and real name, attempt to find an existing email for that user. Using Run it with both the domain and name flags, l

Jan 2, 2022
Sending emails using email server talking to RabbitMQ and send grid server sending emails to email ids consumed from RabbitMQ
Sending emails using email server talking to RabbitMQ and send grid server sending emails to email ids consumed from RabbitMQ

Sending emails using email server talking to RabbitMQ and send grid server sending emails to email ids consumed from RabbitMQ

Oct 27, 2022
📧 Go client for the OhMySMTP email service

go-ohmysmtp A Go wrapper for the OhMySMTP email service. Package https://github.com/jackcoble/go-ohmysmtp Examples Send an email. package main impor

Dec 13, 2021
An email service written in Golang
An email service written in Golang

furion An email service written in Go. Architecture Diagram

Dec 19, 2021
Go-mail - Email service using Kafka consumer

?? The Project This project consists in a Kafka consumer that reads messages of

Feb 5, 2022
*The* goatcorp email reporting service.
*The* goatcorp email reporting service.

Caprine Operator The goatcorp email reporting service. Environment variables OPERATOR_EMAIL: The email address to use for sending emails. OPERATOR_PAS

Aug 23, 2022
aerc is an email client for your terminal.

aerc aerc is an email client for your terminal. This is a fork of the original aerc by Drew DeVault. A short demonstration can be found on https://aer

Dec 14, 2022
aerc is an email client for your terminal.

aerc aerc is an email client for your terminal. This is a fork of the original aerc by Drew DeVault. A short demonstration can be found on https://aer

Apr 16, 2022
Robust and flexible email library for Go

email Robust and flexible email library for Go Email for humans The email package is designed to be simple to use, but flexible enough so as not to be

Dec 30, 2022