All Projects → gessnerfl → fake-smtp-server

gessnerfl / fake-smtp-server

Licence: Apache-2.0 license
A simple SMTP Server for Testing purposes. Emails are stored in an in-memory database and rendered in a Web UI

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to fake-smtp-server

go-smtp-mock
SMTP mock server written on Golang. Mimic any 📤 SMTP server behavior for your test environment with fake SMTP server.
Stars: ✭ 76 (-45.71%)
Mutual labels:  smtp-server, fake-smtp-server
holdmail
HoldMail is a Java Application for proxying SMTP mail, providing a browsable viewer for captured emails.
Stars: ✭ 30 (-78.57%)
Mutual labels:  smtp-server
Aiosmtpd
A reimplementation of the Python stdlib smtpd.py based on asyncio.
Stars: ✭ 195 (+39.29%)
Mutual labels:  smtp-server
SimpleKotlinMail
A simple, coroutine based Kotlin Email API for both client- and server-side projects
Stars: ✭ 56 (-60%)
Mutual labels:  smtp-server
Tmail
Golang SMTP server
Stars: ✭ 251 (+79.29%)
Mutual labels:  smtp-server
sarlacc
SMTP server / sinkhole for collecting spam
Stars: ✭ 42 (-70%)
Mutual labels:  smtp-server
Mailproxy
mailproxy is a simple SMTP proxy. It receives emails through an unencrypted, unauthenticated SMTP interface and retransmits them through a remote SMTP server that requires modern features such as encryption and/or authentication. mailproxy is primarily useful for enabling email functionality in legacy software that only supports plain SMTP.
Stars: ✭ 170 (+21.43%)
Mutual labels:  smtp-server
app
Buggregator is a beautiful, lightweight debug server build on Laravel that helps you catch your smpt, sentry, var-dump, monolog, ray outputs. It runs without installation on multiple platforms.
Stars: ✭ 259 (+85%)
Mutual labels:  smtp-server
docs
📚 Documentation for the Postal mail server!
Stars: ✭ 62 (-55.71%)
Mutual labels:  smtp-server
MailDemon
Smtp server for mass emailing, managing email lists and more. Built on .NET Core. Linux, MAC and Windows compatible.
Stars: ✭ 113 (-19.29%)
Mutual labels:  smtp-server
PyEmailer
Send Emails In One Click With Python.
Stars: ✭ 29 (-79.29%)
Mutual labels:  smtp-server
smtprelay
Simple Golang SMTP relay/proxy server
Stars: ✭ 270 (+92.86%)
Mutual labels:  smtp-server
mailamie
🌈 Mailamie is a simple SMTP catch all server for testing written in PHP.
Stars: ✭ 73 (-47.86%)
Mutual labels:  smtp-server
Magento 2 Smtp
Magento 2 SMTP Extension helps the owner of store simply install SMTP (Simple Mail Transfer Protocol) server which transmits the messages into codes or numbers.
Stars: ✭ 228 (+62.86%)
Mutual labels:  smtp-server
OrigamiSMTP
A TLS Enabled Fake SMTP Server for Development
Stars: ✭ 16 (-88.57%)
Mutual labels:  smtp-server
Smtpd
A Lightweight High Performance ESMTP email server
Stars: ✭ 175 (+25%)
Mutual labels:  smtp-server
blackhole
Blackhole is an MTA written on top of asyncio, utilising async and await statements that dumps all mail it receives to /dev/null.
Stars: ✭ 61 (-56.43%)
Mutual labels:  smtp-server
MITMsmtp
MITMsmtp is an Evil SMTP Server for pentesting SMTP clients to catch login credentials and mails sent over plain or SSL encrypted connections.
Stars: ✭ 14 (-90%)
Mutual labels:  smtp-server
webadmin
SophiMail Webadmin and Dashboard
Stars: ✭ 48 (-65.71%)
Mutual labels:  smtp-server
ohmysmtp-rails
A plugin for ActionMailer to send emails via MailPace.com
Stars: ✭ 31 (-77.86%)
Mutual labels:  smtp-server

Fake SMTP Server

Build Status Quality Gate Status

Simple SMTP Server which stores all received emails in an in-memory database and renders the emails in a web interface

Introduction

The Fake SMTP Server is a simple SMTP server which is designed for development purposes. The server collects all received emails, stores the emails in an in-memory database and provides access to the emails via a web interface.

There is no POP3 or IMAP interface included by intention. The basic idea of this software is that it is used during development to configure the server as target mail server. Instead of sending the emails to a real SMTP server which would forward the mails to the target recipient or return with mail undelivery for test email addresses (e.g. @example.com) the server just accepts all mails, stores them in the database so that they can be rendered in the UI. This allows you to use any test mail address and check the sent email in the web application of the Fake SMTP Server.

The server store a configurable maximum number of emails. If the maximum number of emails is exceeded old emails will be deleted to avoid that the system consumes too much memory.

The server is also provided as docker image on docker hub gessnerfl/fake-smtp-server. To change configuration parameters the corresponding configuration values have to be specified as environment variables for the docker container. For details check the Spring Boot (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config) and docker documentation (https://docs.docker.com/engine/reference/run/#env-environment-variables).

Running Fake SMTP Server locally

Note: You need Java 11 installed to run Fake SMTP Server.

Run from released JAR files

  1. Download the latest fake-smtp-server-<version>.jar from https://github.com/gessnerfl/fake-smtp-server/releases/latest
  2. Copy the file into the desired target folder
  3. Execute the following command from the folder where the JAR file is located:
java -jar fake-smtp-server-<version>.jar

Run from sources

In order to run this application locally from sources, execute:

./gradlew bootRun

Afterwards, the web interface is be availabe under http://localhost:5080.

Configuration

As the application is based on Spring Boot the same rules applies to the configuration as described in the Spring Boot Documentation (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config).

The configuration file application.properties can be placed next to the application jar, in a sub-directory config or in any other location when specifying the location with the parameter -Dspring.config.location=<path to config file>.

The following paragraphs describe the application specific resp. pre-defined configuration parameters.

Fake SMTP Server

The following snippet shows the configuration of a fake smtp server with its default values.

#The SMTP Server Port used by the Fake SMTP Server
fakesmtp.port=5025

#The binding address of the Fake SMTP Server; Bound to all interfaces by default / no value
fakesmtp.bindAddress

#The maximum number of emails which should be stored in the database; Defualts to 100
fakesmtp.persistence.maxNumberEmails=100  

#A comma separated list of regex expressions to filter out unwanted emails by email address
fakesmtp.filteredEmailRegexList=john@doe\\.com,.*@google\\.com ; empty by default

#When set to true emails will be forwarded to a configured target email system. Therefore
#the spring boot mail system needs to be configured. See also 
https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-email
fakesmtp.forwardEmails=false

Authentication

Optionally authentication can be turned on. Configuring authentication does not mean the authentication is enforced. It just allows you to test PLAIN and LOGIN SMTP Authentication against the server instance.

#Username of the client to be authenticated
fakesmtp.authentication.username

#Password of the client to be authenticated
fakesmtp.authentication.password          

Web UI

The following snippet shows the pre-defined web application configuration

#Port of the web interface
server.port=5080     

#Port of the http management api
management.server.port=5081 

REST API

Documentation of exposed services is available at:

localhost:5080/swagger-ui.html
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].