75 lines
2.0 KiB
Org Mode
75 lines
2.0 KiB
Org Mode
* Mailspy
|
|
|
|
Mailspy is a mock SMTP server for used during the development of applications that send email. Mailspy will serve a compliant, SMTP server that an application can connect to, while in development mode. It will accept emails using SMTP protocol, without encryption, and any basic authentication. A web interface is served to display them.
|
|
|
|
Mailspy does not have any persistance, received emails are stored in memory and last only during the life of the run. It is meant to be lightweight coming in at ~10mb on disk and using 3-4mb of memory. It is meant to be launched along side a development stack on dev machines.
|
|
|
|
|
|
|
|
** Installation
|
|
|
|
Mailspy is available in binary distribution for 64-bit linux systems.
|
|
|
|
#+begin_src sh
|
|
curl https://objects.5sigma.io/public/mailspy.tar.gz | tar -xz
|
|
#+end_src
|
|
|
|
* Binary usage
|
|
|
|
Execute the mailspy binary:
|
|
|
|
#+begin_src sh
|
|
./mailspy
|
|
#+end_src
|
|
|
|
Then set your application to use the following smtp settings:
|
|
*- SMTP Server*: localhost
|
|
*- Port*: 7778
|
|
*- Username*: Any value
|
|
*- Password*: Any value
|
|
*- TLS*: None/Unsecured
|
|
*- Authorization Type*: Basic Auth
|
|
|
|
View emails in the web interface served at:
|
|
|
|
http://localhost:7777
|
|
|
|
** Command line switches
|
|
|
|
- The SMTP port can be can be configured with -s <port>
|
|
- The HTTP port for the web interface can be configured with -h <port>
|
|
|
|
|
|
* Docker
|
|
|
|
Mailspy is avialable as a Docker image. To run it as a temporary container use:
|
|
|
|
#+begin_src sh
|
|
docker run --rm -p 7777:7777 -p 7778:7778 git.5sigma.io/mailspy/mailspy:latest
|
|
#+end_src
|
|
|
|
* Development
|
|
|
|
The core application Rust application is located in /src folder. This contains both the SMTP and HTTP servers. The web interface is located in /ui and is a Svelte application.
|
|
|
|
The application will automatically bundle the svelte application within the binary during build.
|
|
|
|
** Setting up development:
|
|
|
|
#+begin_src sh
|
|
git clone https://git.5sigma.io/mailspy/mailspy.git
|
|
cd mailspy
|
|
cd ui
|
|
npm install
|
|
#+end_src
|
|
|
|
** Building
|
|
|
|
#+begin_src sh
|
|
cd ui
|
|
npm run build
|
|
cd ..
|
|
cargo build --release
|
|
#+end_src
|