Skip to content

ChangemakerStudios/Papercut-SMTP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Papercut Logo
The Simple Desktop Email Helper

Build and Release

The problem

If you ever send emails from an application or website during development, you're familiar with the fear of an email being released into the wild. Are you positive none of the 'test' emails are addressed to colleagues or worse, customers? Of course, you can set up and maintain a test email server for development -- but that's a chore. Plus, the delay when waiting to view new test emails can radically slow your development cycle.

Papercut SMTP to the rescue!

Papercut SMTP is a 2-in-1 quick email viewer AND built-in SMTP server (designed to receive messages only). Papercut SMTP doesn't enforce any restrictions on how you prepare your email, but it allows you to view the whole email-chilada: body, HTML, headers, and attachment right down to the naughty raw encoded bits. Papercut can be configured to run on startup and sit quietly (minimized in the tray) only providing a notification when a new message has arrived.

Download Desktop App Now

Download the 64-bit PapercutSMTP-win-X64-stable-Setup.exe desktop installer in releases.

Download the 32-bit PapercutSMTP-win-x86-stable-Setup.exe desktop installer in releases.

For installation options, command-line parameters, and silent/unattended installation instructions, see the Installation Guide.

Requirements

Papercut SMTP UI Requires the "WebView2" Microsoft shared system component to be installed on your system. If you have any problems getting it running go to this site: WebView2 Download and install it.

Features

Instant Feedback When New Email Arrives

Instant Feedback When New Email Arrives

Rich and Detailed View of Received Email

Rich and Detailed View of Received Email

View and Download the Mime Sections of your Email

View and Download the Mime Sections of your Email

Raw View

Raw View

Logging View

Logging View

(Optional) Download Papercut SMTP Service

Papercut SMTP has an optional HTTP server to receive emails even when the client is not running. It can be run in an almost portable way by downloading Papercut.Smtp.Service.*.zip, unzipping, and installing as a Windows Service.

Installing Papercut SMTP Service

  1. Download the appropriate Papercut.Smtp.Service.*.zip for your system (win-x64 or win-x86)
  2. Extract the zip file to your desired location
  3. Run the installation script (requires administrator privileges):
    • Option A: Double-click install-papercut-service.bat
    • Option B: Run install-papercut-service.ps1 in PowerShell
  4. The service will be installed and configured to start automatically on system boot

To uninstall: Run uninstall-papercut-service.bat or uninstall-papercut-service.ps1

For complete Service configuration and Docker deployment instructions, see the Service README.

Host in Docker

Optionally run Papercut SMTP Service in Docker: Papercut SMTP on Docker Hub

Quick start:

docker pull changemakerstudiosus/papercut-smtp:latest
docker run -d -p 37408:8080 -p 2525:2525 changemakerstudiosus/papercut-smtp:latest

Access at: http://localhost:37408 | Send emails to: localhost:2525

Note: Docker uses non-privileged ports by default (SMTP: 2525, HTTP: 8080). See the Service README for configuration options, Docker Compose examples, and troubleshooting.

SMTP Authentication and TLS/STARTTLS Support

Papercut SMTP Server supports optional SMTP authentication and TLS/STARTTLS encryption for secure email testing.

Quick Setup

Step 1: Create a test certificate (PowerShell):

New-SelfSignedCertificate -Subject "CN=localhost" -DnsName "localhost" `
    -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(2)

Step 2: Enable TLS/STARTTLS in your appsettings.json:

{
  "SmtpServer": {
    "CertificateFindType": "FindBySubjectName",
    "CertificateFindValue": "localhost",
    "Port": 587
  }
}

That's it! The server will automatically find your "localhost" certificate.

Docker with TLS

Mount a certificate and configure via environment variables:

docker run -d \
  -p 587:587 \
  -p 8080:8080 \
  -e SmtpServer__CertificateFindType=FindBySubjectName \
  -e SmtpServer__CertificateFindValue=localhost \
  changemakerstudiosus/papercut-smtp:latest

Or use Docker Compose (see Service README for complete examples).

Features

  • TLS/STARTTLS support on any port (recommended: 587)
  • SMTP AUTH with flexible authentication (accepts all credentials in dev mode)
  • Certificate store integration (Windows LocalMachine/CurrentUser stores)
  • Multiple search methods (Thumbprint, SubjectName, etc.)
  • Backward compatible (TLS disabled by default)

Configuration Options

Setting Description Default Example
CertificateFindType Certificate search method FindBySubjectName FindBySubjectName
CertificateFindValue Certificate name or identifier (empty = TLS disabled) "" localhost
CertificateStoreLocation Store location LocalMachine LocalMachine or CurrentUser
CertificateStoreName Store name My My (Personal)
Port SMTP port 25 587 (STARTTLS recommended)

License

Papercut SMTP is Licensed under the Apache License, Version 2.0.