qmail 1.03 19980615 Copyright 1998 D. J. Bernstein, qmail@pobox.com qmail is a secure, reliable, efficient, simple message transfer agent. It is meant as a replacement for the entire sendmail-binmail system on typical Internet-connected UNIX hosts. See BLURB, BLURB2, BLURB3, and BLURB4 for more detailed advertisements. INSTALL says how to set up and test qmail. If you're upgrading from a previous version, read UPGRADE instead. See PIC.* for some ``end-to-end'' pictures of mail flowing through the qmail system. See http://pobox.com/~djb/qmail.html for other qmail-related software and a pointer to the qmail mailing list. Other documentation: http://pobox.com/~djb/proto.html shows solutions to several Internet mail problems; many of these solutions are implemented in qmail. CHANGES and THANKS show how qmail has changed since it was first released. SECURITY, INTERNALS, THOUGHTS, and TODO record many of the qmail design decisions. The rest of this file is a list of systypes where various versions of qmail have been reported to work. 0.96 was the final gamma version; 1.00 had exactly the same code as 0.96. To see your systype, make systype; cat systype. 1.00: a.ux-3.0-svr2-:-:-:mc68030-:- (tnx RF) 1.01: aix-3-2-:-:-:000000406300-:- (tnx DG) 1.01: aix-3-2-:-:-:000011216700-:- (tnx JLB) 1.01: aix-4-1-:-:-:000041574c00-:- (tnx M2H) 1.01: aix-4-1-:-:-:000088581000-:- (tnx HJB) 1.01: aix-4-1-:-:-:002b51134c00-:- (tnx MP) 1.00: aix-4-1-:-:-:00910033a000-:- (tnx KJJ) 1.01: aix-4-2-:-:-:000055247900-:- (tnx JLB) 1.01: aix-4-2-:-:-:000062295800-:- (tnx TD) 1.01: aix-4-2-:-:-:000136094c00-:- (tnx T2U) 1.00: aix-4-2-:-:-:000205254600-:- (tnx MGM) 1.01: aix-4-2-:-:-:005255bc4c00-:- (tnx DS) 1.01: aix-4-2-:-:-:006030944c00-:- 1.01: bsd.386-1.1-0-:i386-:-:i386-:- (tnx T2M) 1.01: bsd.os-2.0-:i386-:-:pentium-:- (tnx MSS) 1.01: bsd.os-2.0.1-:i386-:-:i486-:- (tnx KR) 0.96: bsd.os-2.1-:i386-:-:-:- (tnx DAR) 1.00: bsd.os-2.1-:i386-:-:i486-:- (tnx RJC) 0.96: bsd.os-2.1-:i386-:-:pentium-:- (tnx UO) 1.01: bsd.os-3.0-:i386-:-:-:- (tnx VU) 1.01: bsd.os-3.0-:i386-:-:pentium-:- (tnx RJO) 1.01: bsd.os-3.1-:i386-:-:pentium-:- (tnx ABC) 1.01: bsd.os-3.1-:i386-:-:pentium.ii-:- (tnx UO) 0.96: dgux-5.4r2.01-generic-:-:-:aviion-:- (tnx HWM) 1.01: freebsd-2.1.0-release-:i386-:-:i486-dx-:- (tnx VV) 1.01: freebsd-2.1.0-release-:i386-:-:i486.dx2-:- (tnx JLB) 1.00: freebsd-2.1.0-release-:i386-:-:i486dx-:- (tnx chrisj=???) 1.01: freebsd-2.1.0-release-:i386-:-:pentium.735\90.or.815\100-:- (tnx MBS) 1.01: freebsd-2.1.5-release-:i386-:-:i486-dx-:- (tnx B1F) 0.96: freebsd-2.1.5-release-:i386-:-:i486dx-:- (tnx FN) 1.01: freebsd-2.1.5-release-:i386-:-:unknown.-:- (tnx BMF) 1.00: freebsd-2.1.6-release-:i386-:-:-:- (tnx TM) 0.96: freebsd-2.1.6-release-:i386-:-:Pentium-Pro.150-:- (tnx CH) 1.01: freebsd-2.1.6-release-:i386-:-:cy486dlc-:- (tnx M3H) 0.96: freebsd-2.1.6.1-release-:i386-:-:pentium.735\90.or.815\100-:- (tnx MF) 1.01: freebsd-2.1.7-release-:i386-:-:i486-dx-:- (tnx AAF) 1.00: freebsd-2.1.7-release-:i386-:-:pentium.735\90.or.815\100-:- (tnx JBB) 1.01: freebsd-2.1.7-release-:i386-:-:pentium.815\100-:- (tnx B1F) 1.01: freebsd-2.2-970422-releng-:i386-:-:-:- (tnx TM) 1.00: freebsd-2.2-release-:i386-:-:-:- (tnx MT) 1.01: freebsd-2.2-stable-:i386-:-:cyrix.5x86-:- (tnx A2B) 1.01: freebsd-2.2-stable-:i386-:-:pentium-:- (tnx gary@systemics=???) 1.01: freebsd-2.2.1-release-:i386-:-:-:- (tnx M2R) 1.01: freebsd-2.2.1-release-:i386-:-:i486-dx-:- (tnx PGR) 1.00: freebsd-2.2.1-release-:i386-:-:i486.dx2-:- (tnx BR) 1.01: freebsd-2.2.1-release-:i386-:-:pentium-:- (tnx REB) 1.01: freebsd-2.2.1-release-:i386-:-:pentium.pro-:- (tnx JS) 1.01: freebsd-2.2.2-release-:i386-:-:amd.am5x86.write-through-:- (tnx AGB) 1.01: freebsd-2.2.2-release-:i386-:-:i486-dx-:- (tnx A2L) 1.01: freebsd-2.2.2-release-:i386-:-:i486.dx2-:- (tnx D3S) 1.01: freebsd-2.2.2-release-:i386-:-:pentium-:- (tnx B2F) 1.01: freebsd-2.2.2-release-:i386-:-:pentium.pro-:- (tnx M2G) 1.01: freebsd-2.2.5-release-:i386-:-:i486-dx-:- (tnx R2N) 1.01: freebsd-2.2.5-release-:i386-:-:i486.dx2-:- (tnx AY) 1.01: freebsd-2.2.5-release-:i386-:-:pentium.pro-:- (tnx AI) 1.01: freebsd-2.2.5-stable-:i386-:-:i486.dx2-:- (tnx JK) 1.01: freebsd-2.2.5-stable-:i386-:-:pentium-:- (tnx root@defiant=???) 1.01: freebsd-2.2.6-release-:i386-:-:-:- (tnx TM) 1.01: freebsd-2.2.6-release-:i386-:-:amd.am5x86.write-through-:- (tnx root@skully=???) 1.00: freebsd-3.0-970209-snap-:i386-:-:-:- (tnx YF) 1.01: freebsd-3.0-970428-snap-:i386-:-:pentium-:- (tnx M3S) 1.01: freebsd-3.0-970807-snap-:i386-:-:amd.k6-:- (tnx KMD) 1.01: freebsd-3.0-980309-snap-:i386-:-:pentium-:- (tnx MM) 1.01: freebsd-3.0-current-:i386-:-:pentium-:- (tnx KB) 1.01: hp-ux-a.09.05-a-:-:-:9000.712-:- (tnx SV) 1.01: hp-ux-a.09.07-a-:-:-:9000.712-:- (tnx LB) 1.00: hp-ux-b.09.00-a-:-:-:9000.360-:- (tnx VV) 1.01: hp-ux-b.10.20-a-:-:-:9000.755-:- (tnx BCK) 1.01: irix-5.3-11091812-:-:-:ip22-:- (tnx JL) 1.01: irix-6.2-03131015-:-:-:ip22-:- (tnx DS) 1.01: irix64-6.2-03131016-:-:-:ip19-:- (tnx AH) 1.01: irix64-6.2-06101031-:-:-:ip28-:- (tnx DB) 1.01: linux-1.2.13-:i386-:-:i486-:- (tnx RF) 1.01: linux-1.2.13-:i386-:-:pentium-:- (tnx MEE) 1.01: linux-1.99.4-:i386-:-:pentium-:- (tnx C2H) 1.01: linux-2.0.0-:i386-:-:i486-:- (tnx kragen@gentle=???) 1.01: linux-2.0.0-:i386-:-:pentium-:- (tnx MJD) 1.01: linux-2.0.6-:i386-:-:pentium-:- 1.00: linux-2.0.6-:i386-:-:ppro-:- (tnx MR) 1.01: linux-2.0.7-:i386-:-:i486-:- (tnx TLM) 1.01: linux-2.0.9-:i386-:-:i486-:- (tnx VBM) 0.96: linux-2.0.13-:i386-:-:pentium-:- (tnx BW) 1.01: linux-2.0.15-:i386-:-:i486-:- (tnx JCD) 1.01: linux-2.0.18-:i386-:-:i486-:- (tnx tk@avalon=???) 1.01: linux-2.0.18-:i386-:-:pentium-:- (tnx root@webtvchat=???) 1.00: linux-2.0.22-:i386-:-:pentium-:- (tnx MDI) 1.00: linux-2.0.23-:i386-:-:i486-:- (tnx B2L) 1.01: linux-2.0.24-:i386-:-:i486-:- (tnx GLM) 1.00: linux-2.0.24-:i386-:-:pentium-:- (tnx VV) 0.96: linux-2.0.25-:i386-:-:i486-:- (tnx BDB) 1.01: linux-2.0.25-:i386-:-:pentium-:- (tnx KA) 0.93: linux-2.0.26-:i386-:-:i486-:- (tnx blynch@texas=???) 1.01: linux-2.0.26-:i386-:-:pentium-:- (tnx robbie@opus=???) 1.00: linux-2.0.27-:-:-:sparc-:- (tnx SVD) 1.00: linux-2.0.27-:i386-:-:i386-:- (tnx ECG) 1.01: linux-2.0.27-:i386-:-:i486-:- (tnx BN) 1.01: linux-2.0.27-:i386-:-:pentium-:- (tnx EK) 1.01: linux-2.0.27-:i386-:-:ppro-:- (tnx L3L) 1.01: linux-2.0.28-:i386-:-:i486-:- (tnx AAF) 1.00: linux-2.0.28-:i386-:-:pentium-:- (tnx root@duggy=???) 1.01: linux-2.0.28-:i386-:-:ppro-:- (tnx S3T) 1.01: linux-2.0.28-osfmach3-:-:-:ppc-:- (tnx CG) 1.01: linux-2.0.29-:alpha-:-:alpha-:- (tnx MB) 1.01: linux-2.0.29-:i386-:-:i386-:- (tnx AJK) 1.01: linux-2.0.29-:i386-:-:i486-:- (tnx FPL) 1.01: linux-2.0.29-:i386-:-:pentium-:- (tnx FW) 1.00: linux-2.0.29-:i386-:-:ppro-:- (tnx MMM) 1.01: linux-2.0.30-:-:-:sparc-:- (tnx J2P) 1.01: linux-2.0.30-:alpha-:-:alpha-:- (tnx WS) 1.01: linux-2.0.30-:i386-:-:i386-:- (tnx OK) 1.00: linux-2.0.30-:i386-:-:i486-:- (tnx KUT) 1.01: linux-2.0.30-:i386-:-:i486-:- (tnx PK) 1.01: linux-2.0.30-:i386-:-:pentium-:- (tnx AV) 1.00: linux-2.0.30-:i386-:-:ppro-:- (tnx root@gate=???) 1.01: linux-2.0.30-osfmach3-:-:-:ppc-:- (tnx PTW) 1.01: linux-2.0.30u11-:i386-:-:pentium-:- (tnx JTB) 1.01: linux-2.0.31-:i386-:-:i486-:- (tnx SAE) 1.01: linux-2.0.31-:i386-:-:pentium-:- (tnx B3W) 1.01: linux-2.0.31-:i386-:-:ppro-:- (tnx JAK) 1.01: linux-2.0.32-:-:-:ie86-:- (tnx root@vmlinuz=???) 1.01: linux-2.0.32-:alpha-:-:alpha-:- (tnx NR) 1.01: linux-2.0.32-:i386-:-:i486-:- (tnx SC) 1.01: linux-2.0.32-:i386-:-:pentium-:- (tnx HT) 1.01: linux-2.0.32-:i386-:-:ppro-:- (tnx RK) 1.01: linux-2.0.33-:i386-:-:i486-:- (tnx RAB) 1.01: linux-2.0.33-:i386-:-:pentium-:- (tnx AF) 1.01: linux-2.0.33-:i386-:-:ppro-:- (tnx B2W) 1.01: linux-2.1.9-:i386-:-:i486-:- (tnx SJB) 1.01: linux-2.1.10-:i386-:-:i486-:- (tnx JB) 0.96: linux-2.1.13-:i386-:-:i486-:- (tnx ML) 0.96: linux-2.1.14-:i386-:-:pentium-:- (tnx SCW) 0.96: linux-2.1.23-:i386-:-:pentium-:- (tnx JF) 1.01: linux-2.1.24-:-:-:ppc-:- (tnx meta=???) 0.96: linux-2.1.25-:i386-:-:i486-:- (tnx JBF) 0.96: linux-2.1.25-:i386-:-:pentium-:- (tnx UO) 1.00: linux-2.1.26-:i386-:-:i486-:- (tnx DK) 1.00: linux-2.1.27-:i386-:-:pentium-:- (tnx JF) 1.01: linux-2.1.28-:i386-:-:i486-:- (tnx HDG) 1.00: linux-2.1.28-:i386-:-:pentium-:- (tnx RGS) 1.00: linux-2.1.29-:i386-:-:i486-:- (tnx SJW) 1.01: linux-2.1.35-:i386-:-:pentium-:- (tnx JF) 1.01: linux-2.1.36-:i386-:-:i486-:- (tnx ML) 1.01: linux-2.1.42-:i386-:-:i486-:- (tnx wtanaka=???) 1.01: linux-2.1.46-:i386-:-:pentium-:- (tnx VR) 1.01: linux-2.1.51-:i386-:-:pentium-:- (tnx KO) 1.01: linux-2.1.61-:i386-:-:i486-:- (tnx RO) 1.01: linux-2.1.65-:i386-:-:i486-:- (tnx F2T) 1.01: linux-2.1.71-:i386-:-:ppro-:- (tnx MJG) 1.01: linux-2.1.78-:i386-:-:pentium-:- (tnx AS) 1.01: linux-2.1.82-:i386-:-:pentium-:- (tnx AY) 1.01: linux-2.1.85-:i386-:-:pentium-:- (tnx PJH) 1.00: machten-4-0.4-:-:-:powerpc-:- (tnx RAM) 1.01: netbsd-1.1-:i386-:-:pentium.(genuineintel.586-class.cpu)-:- (tnx GL) 1.01: netbsd-1.2-:hp300-:-:-:- (tnx ML) 1.01: netbsd-1.2-:i386-:-:i486dx.(genuineintel.486-class.cpu)-:- (tnx T2K) 0.96: netbsd-1.2-:i386-:-:pentium.(genuineintel.586-class.cpu)-:- (tnx GH) 1.01: netbsd-1.2.1-:mac68k-:-:apple.macintosh.se/30..(68030)-:- (tnx HM) 1.01: netbsd-1.2.1-:sparc-:-:fmi,mb86904.@.110.mhz,.on-chip.fpu-:- (tnx ZU) 0.96: netbsd-1.2c-:pmax-:-:-:- (tnx JLW) 1.01: netbsd-1.3-:hp300-:-:hp.9000/433.(33mhz.mc68040.cpu+mmu+fpu,.4k.on-chip.physical.i/d.caches)-:- (tnx TB) 1.01: netbsd-1.3.1-:sun3-:-:sun.3/60-:- (tnx MBS) 1.01: netbsd-1.3_alpha-:i386-:-:intel.pentium.(p54c).(586-class)-:- (tnx GL) 1.01: nextstep-3.1-:mc680x0-:-:68040-:- (tnx JRY) 1.01: nextstep-3.3-:hppa-:-:7100lc-:- 1.01: nextstep-3.3-:i386-:-:pentium-:- (tnx HM) 1.01: nextstep-3.3-:mc680x0-:-:68040-:- (tnx WEB) 1.01: nextstep-4.1-:mc680x0-:-:68040-:- (tnx FN) 1.00: openbsd-2.0-hoth#0-:openbsd.i386-:-:i386-:- (tnx MBS) 1.00: openbsd-2.0-mr_potatoe_head#2-:openbsd.i386-:-:i386-:- (tnx JJMK) 0.96: openbsd-2.0-puma#1-:openbsd.m68k-:-:mac68k-:- (tnx AKB) 1.01: openbsd-2.1-asgard#1-:openbsd.i386-:-:i386-:- (tnx ETT) 1.01: openbsd-2.1-generic#71-:openbsd.sparc-:-:sparc-:- (tnx MMM2) 1.01: openbsd-2.1-katana#2-:openbsd.i386-:-:i386-:- (tnx CHR) 1.01: openbsd-2.1-puma#0-:openbsd.m68k-:-:mac68k-:- (tnx AKB) 1.01: openbsd-2.2-ele#2-:openbsd.i386-:-:i386-:- (tnx RC) 1.01: openbsd-2.2-generic#424-:openbsd.i386-:-:i386-:- (tnx ETT) 1.01: osf1-v2.0-240-:-:-:alpha-:- (tnx JF) 1.00: osf1-v3.2-148-:-:-:alpha-:- (tnx DL) 1.01: osf1-v3.2-148-:-:-:alpha-:- (tnx RSK) 1.01: osf1-v3.2-41-:-:-:alpha-:- (tnx MSD) 1.01: osf1-v3.2-mp-4.2-:-:-:alpha-:- (tnx MSD) 1.01: osf1-v4.0-386-:-:-:alpha-:- (tnx TEE) 1.01: osf1-v4.0-464-:-:-:alpha-:- (tnx AWB) 1.01: osf1-v4.0-564-:-:-:alpha-:- (tnx A2P) 1.01: osf1-v4.0-564.32-:-:-:alpha-:- (tnx TLF) 1.01: osf1-v4.0-878-:-:-:alpha-:- (tnx BJM) 1.01: sco_sv-3.2-2-:-:-:i386-:- (tnx PW) 1.01: sinix-l-5.41-d0005-:-:-:mx300i-:- (tnx IH) 1.01: sunos-4.1.1-1-:mc68020-:sun3-:sun3-:sun3- (tnx JWB) 1.01: sunos-4.1.1-1-:mc68020-:sun3-:sun3x-:sun3x- (tnx TT) 1.01: sunos-4.1.3-jl-2-:sparc-:sun4-:sun4c-:sun4c- (tnx T2K) 1.01: sunos-4.1.3_u1-1-:sparc-:sun4-:sun4c-:sun4c- (tnx MBS) 1.01: sunos-4.1.3_u1-1-:sparc-:sun4-:sun4m-:sun4m- (tnx RSK) 1.01: sunos-4.1.3_u1-10-:sparc-:sun4-:sun4m-:sun4m- (tnx aoki=???) 1.00: sunos-4.1.3_u1-4-:unknown-:sun4-:sun4m-:sun4m- (tnx J2B) 1.01: sunos-4.1.3_u1-6-:sparc-:sun4-:sun4m-:sun4m- (tnx RD) 1.01: sunos-4.1.4-1-:unknown-:sun4-:sun4m-:sun4m- (tnx M3S) 1.01: sunos-4.1.4-2-:sparc-:sun4-:sun4m-:sun4m- 1.01: sunos-5.3-generic-:sparc-:sun4-:sun4m-:sun4m- (tnx JDJ) 1.01: sunos-5.4-generic-:sparc-:sun4-:sun4m-:sun4m- (tnx jimo=???) 0.96: sunos-5.4-generic_101945-10-:sparc-:sun4-:sun4m-:sun4m- (tnx W2K) 1.00: sunos-5.4-generic_101945-34-:sparc-:sun4-:sun4m-:sun4m- (tnx ACB) 0.96: sunos-5.4-generic_101946-35-:i386-:i86pc-:i86pc-:i86pc- (tnx CK) 1.01: sunos-5.5-generic-:i386-:i86pc-:i86pc-:i86pc- (tnx seong=???) 1.01: sunos-5.5-generic-:sparc-:sun4-:sun4c-:sun4c- (tnx SPM) 1.01: sunos-5.5-generic-:sparc-:sun4-:sun4m-:sun4m- (tnx RDM) 1.01: sunos-5.5-generic-:sparc-:sun4-:sun4u-:sun4u- (tnx YC) 1.01: sunos-5.5-generic_103093-02-:sparc-:sun4-:sun4m-:sun4m- (tnx RF) 0.96: sunos-5.5-generic_103093-03-:sparc-:sun4-:sun4m-:sun4m- (tnx RDM) 1.01: sunos-5.5-generic_103093-06-:sparc-:sun4-:sun4m-:sun4m- (tnx ERH) 1.01: sunos-5.5-generic_103093-10-:sparc-:sun4-:sun4d-:sun4d- (tnx KT) 1.01: sunos-5.5-generic_103094-05-:i386-:i86pc-:i86pc-:i86pc- (tnx M2G) 1.01: sunos-5.5.1-generic-:i386-:i86pc-:i86pc-:i86pc- (tnx cro=???) 1.01: sunos-5.5.1-generic-:sparc-:sun4-:sun4c-:sun4c- (tnx CG) 1.01: sunos-5.5.1-generic-:sparc-:sun4-:sun4m-:sun4m- (tnx MBS) 1.01: sunos-5.5.1-generic-:sparc-:sun4-:sun4u-:sun4u- 0.96: sunos-5.5.1-generic_103640-02-:sparc-:sun4-:sun4m-:sun4m- (tnx SGC) 1.00: sunos-5.5.1-generic_103640-03-:sparc-:sun4-:sun4u-:sun4u- (tnx EG) 1.00: sunos-5.5.1-generic_103640-05-:sparc-:sun4-:sun4m-:sun4m- (tnx L2L) 1.01: sunos-5.5.1-generic_103640-05-:sparc-:sun4-:sun4u-:sun4u- (tnx KY) 1.01: sunos-5.5.1-generic_103640-06-:sparc-:sun4-:sun4u-:sun4u- (tnx RA) 1.01: sunos-5.5.1-generic_103640-08-:sparc-:sun4-:sun4c-:sun4c- (tnx RA) 1.01: sunos-5.5.1-generic_103640-08-:sparc-:sun4-:sun4d-:sun4d- (tnx MS) 1.01: sunos-5.5.1-generic_103640-08-:sparc-:sun4-:sun4m-:sun4m- (tnx S2P) 1.01: sunos-5.5.1-generic_103640-08-:sparc-:sun4-:sun4u-:sun4u- (tnx CM) 1.01: sunos-5.5.1-generic_103640-12-:sparc-:sun4-:sun4m-:sun4m- (tnx IK) 1.01: sunos-5.5.1-generic_103640-18-:sparc-:sun4-:sun4u-:sun4u- (tnx PMH) 1.01: sunos-5.5.1-generic_103641-08-:i386-:i86pc-:i86pc-:i86pc- (tnx TL) 1.01: sunos-5.5.1-generic_103641-12-:i386-:i86pc-:i86pc-:i86pc- (tnx JS) 1.01: sunos-5.5.1-generic_105428-01-:sparc-:sun4-:sun4u-:sun4u- (tnx BCM) 0.96: sunos-5.5.1-generic_patch-:i386-:i86pc-:i86pc-:i86pc- (tnx D2K) 1.01: sunos-5.6-generic-:sparc-:sun4-:sun4c-:sun4c- (tnx DS) 1.01: sunos-5.6-generic-:sparc-:sun4-:sun4m-:sun4m- (tnx BDM) 1.01: sunos-5.6-generic-:sparc-:sun4-:sun4u-:sun4u- (tnx RPS) 1.01: sunos-5.6-generic_105182-01-:i386-:i86pc-:i86pc-:i86pc- (tnx JFK) 1.01: sunos-5.6-generic_105182-04-:i386-:i86pc-:i86pc-:i86pc- (tnx YC) 0.96: ultrix-4.3-1-:pmax-:-:risc-:- (tnx YF) 1.01: ultrix-4.4-0-:-:-:risc-:- (tnx RSK) 1.01: unix_sv-4.2mp-2.1.2-:i386-:-:i386-:- (tnx J2W)