Skip to content

gene-hightower/ghsmtp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gene Hightower's SMTP server.

A program to receive Internet (RFC 5321) mail.  This is a “personal
domain” type program that delivers mail for all addresses to a single
user's ~/Maildir.

Free software — AGPLv3 with OpenSSL exception.

Written using Standard C++ — plus PEGTL, (at one time Ragel, before
that Bison), OpenSSL, boost-iostreams, ldns, spf2, regdom, TinyCDB,
glog etc.  Compiles with recent GCC and Clang.

sudo dnf install \
  boost-devel \
  file-devel \
  fmt-devel \
  glog-devel \
  ldns-devel \
  libasan \
  libidn2-devel \
  libopenarc-devel \
  libopendkim-devel \
  libopendmarc-devel \
  libpsl-devel \
  libspf2-devel \
  libubsan \
  libunistring-devel \
  openssl-devel \
  tinycdb-devel

sudo apt-get install \
  libboost-all-dev   \
  libcdb-dev         \
  libfmt-dev         \
  libgoogle-glog-dev \
  libidn2-dev        \
  libldns-dev        \
  libmagic-dev       \
  libopendkim-dev    \
  libopendmarc-dev   \
  libpsl-dev         \
  libspf2-dev        \
  libunistring-dev   \
  pkg-config

Run it from (x)inetd or daemontools as a non-root user.  It will
accept mail and store it in that user's ~/Maildir.

I run it on the Fedora distribution of GNU/Linux/systemd — might also
work on other platforms.

Support for some useful SMTP extensions:

RFC 1870: Message Size Declaration
RFC 2920: Command Pipelining
RFC 3030: Transmission of Large and Binary MIME Messages
RFC 3207: Secure SMTP over Transport Layer Security
RFC 3463: Enhanced Mail System Status Codes
RFC 6152: 8-bit MIME Transport
RFC 6531: Internationalized Email

The software works with IPv4 and IPv6, mostly.

I wrote this to experiment with and learn about Internet mail.  I do
use it as my every day SMTP server for a number of domains.

Releases

No releases published

Packages

No packages published

Languages