Allow any old and crufty protocol version
[ghsmtp.git] / README
blob91dc6ea753a67da0e7fd8a31e0c4de968f2bf8b0
1 Gene Hightower's SMTP server.
3 A program to receive Internet (RFC 5321) mail.  This is a “personal
4 domain” type program that delivers mail for all addresses to a single
5 user's ~/Maildir.
7 Free software — AGPLv3 with OpenSSL exception.
9 Written using Standard C++ — plus PEGTL, (at one time Ragel, before
10 that Bison), OpenSSL, boost-iostreams, ldns, spf2, regdom, TinyCDB,
11 glog etc.  Compiles with recent GCC and Clang.
13 sudo dnf install \
14   boost-devel \
15   file-devel \
16   fmt-devel \
17   glog-devel \
18   ldns-devel \
19   libasan \
20   libidn2-devel \
21   libopenarc-devel \
22   libopendkim-devel \
23   libopendmarc-devel \
24   libpsl-devel \
25   libspf2-devel \
26   libubsan \
27   libunistring-devel \
28   openssl-devel \
29   tinycdb-devel
31 sudo apt-get install \
32   libboost-all-dev   \
33   libcdb-dev         \
34   libfmt-dev         \
35   libgoogle-glog-dev \
36   libidn2-dev        \
37   libldns-dev        \
38   libmagic-dev       \
39   libopendkim-dev    \
40   libopendmarc-dev   \
41   libpsl-dev         \
42   libspf2-dev        \
43   libunistring-dev   \
44   pkg-config
46 Run it from (x)inetd or daemontools as a non-root user.  It will
47 accept mail and store it in that user's ~/Maildir.
49 I run it on the Fedora distribution of GNU/Linux/systemd — might also
50 work on other platforms.
52 Support for some useful SMTP extensions:
54 RFC 1870: Message Size Declaration
55 RFC 2920: Command Pipelining
56 RFC 3030: Transmission of Large and Binary MIME Messages
57 RFC 3207: Secure SMTP over Transport Layer Security
58 RFC 3463: Enhanced Mail System Status Codes
59 RFC 6152: 8-bit MIME Transport
60 RFC 6531: Internationalized Email
62 The software works with IPv4 and IPv6, mostly.
64 I wrote this to experiment with and learn about Internet mail.  I do
65 use it as my every day SMTP server for a number of domains.