forscht / watt

Deploy your own temporary email service with web interface under 15 minutes.
https://spamok.org
MIT License
15 stars 1 forks source link
go-smtp go-smtp-server smtp smtp-server temp-email temp-mail temp-mail-app

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:

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:

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.