descriptionGene's SMTP server
homepage URLhttps://digilicious.com/
repository URLhttps://digilicious.com/ghsmtp.git
ownerrepo.or.cz@digilicious.com
last changeWed, 11 Sep 2024 14:19:42 +0000 (11 07:19 -0700)
last refreshThu, 21 Nov 2024 08:37:02 +0000 (21 09:37 +0100)
content tags
add:
README
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.
shortlog
2024-09-11 Gene Hightoweradd some loggingmaster
2024-09-09 Gene Hightowerremoved
2024-09-09 Gene Hightowertry to fix git tangle
2024-09-09 Gene Hightowerupdate
2024-09-09 Gene Hightowerinclude local-part in message
2024-09-09 Gene Hightoweruse local DNS resolver
2024-09-09 Gene HightowerEast const
2024-09-08 Gene HightowerMerge remote-tracking branch 'refs/remotes/origin/master'
2024-09-08 Gene Hightowerrework Domain and Mailbox a little bit, normalize Quote...
2024-09-04 Gene Hightowerwhy starttls when you're sending over broadcast radio
2024-08-01 Gene Hightowerexplain better
2024-07-24 Gene Hightowersometimes blocks legit mail
2024-07-24 Gene Hightowernew commits
2024-07-23 Gene Hightowerno check, can't be constexpr
2024-07-23 Gene Hightowerno check, can't be constexpr
2024-07-23 Gene HightowerMerge remote-tracking branch 'refs/remotes/origin/master'
...
heads
2 months ago master
3 years ago duck-send
3 years ago main
3 years ago mail-loop
7 years ago PEGTL
8 years ago CHUNKING
8 years ago SMTPUTF8
10 years ago ugly_ugly_regex
10 years ago validate-sender-domain
10 years ago gnutls
10 years ago get_loop
10 years ago spf
10 years ago tls
10 years ago getpwuid_r