descriptionGene's SMTP server
homepage URLhttps://digilicious.com/
repository URLhttps://digilicious.com/ghsmtp.git
ownerrepo.or.cz@digilicious.com
last changeMon, 22 Apr 2024 02:42:46 +0000 (21 19:42 -0700)
last refreshSat, 27 Apr 2024 13:10:42 +0000 (27 15:10 +0200)
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
5 days ago Gene HightowerERRNO(EPERM)master
10 days ago Gene Hightowerfor sanitize
11 days ago Gene Hightoweralso used, I guess
11 days ago Gene Hightoweralso used
11 days ago Gene Hightowermore system calls for sanitize
11 days ago Gene Hightowerfor sanitize
11 days ago Gene Hightowerlog
11 days ago Gene Hightowerexit
11 days ago Gene Hightowerseccomp
11 days ago Gene Hightowerseccomp
2024-04-12 Gene Hightowerwhite
2024-04-04 Gene Hightowermailing list
2024-04-03 Gene Hightowernicer
2024-04-03 Gene Hightowerbuild the sockaddr_un without copy
2024-04-03 Gene Hightowerat some point, the old way stopped working; the first...
2024-03-29 Gene Hightowerstill must match obs first
...
heads
5 days ago master
2 years ago duck-send
2 years ago main
2 years ago mail-loop
6 years ago PEGTL
7 years ago CHUNKING
7 years ago SMTPUTF8
9 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