Skip to content

Commit c8d0798

Browse files
committed
import
0 parents  commit c8d0798

File tree

473 files changed

+37890
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

473 files changed

+37890
-0
lines changed

BIN.Makefile

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
SHELL=/bin/sh
2+
3+
# Files are edited in the installation directory, then copied.
4+
# There are 40 arguments to idedit after the filename,
5+
# showing the positions of each byte in the following ten ints:
6+
# uida, uidd, uidl, uido, uidp, uidq, uidr, uids, gidq, gidn.
7+
# Normal little-endian positions are n n+1 n+2 ... n+39 for some n.
8+
# Normal big-endian positions are n+3 n+2 n+1 n n+7 ... n+36 for some n.
9+
10+
setup:
11+
mkdir /var/qmail
12+
./idedit install-big XXX
13+
./idedit qmail-lspawn XXX
14+
./idedit qmail-queue XXX
15+
./idedit qmail-rspawn XXX
16+
./idedit qmail-showctl XXX
17+
./idedit qmail-start XXX
18+
./install-big
19+
cp /var/qmail/boot/binm1+df /var/qmail/rc
20+
chmod 755 /var/qmail/rc
21+
echo '|fastforward -d /etc/aliases.cdb' > /var/qmail/alias/.qmail-default
22+
chmod 644 /var/qmail/alias/.qmail-default
23+
hostname | grep -q '\.'
24+
./config-fast `hostname`

BIN.README

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
Like any other piece of software (and information generally), qmail
2+
comes with NO WARRANTY.
3+
4+
Configuration: The qmail home directory is /var/qmail. (This must be a
5+
local directory, not shared among machines. Under Linux, make sure that
6+
all mail-handling filesystems are mounted with synchronous metadata.)
7+
The user-ext delimiter is -. The silent concurrency limit is 120. The
8+
queue subdirectory split is 23.
9+
10+
To install:
11+
# make setup
12+
13+
To set up qmail to receive and deliver mail, follow the instructions in
14+
/var/qmail/doc/fastforward/ALIASES, and then start at step 9 of
15+
/var/qmail/doc/INSTALL.
16+
17+
Compilation environment: Oops, the package creator forgot to edit this!
18+
He's supposed to list his OS version, compiler version, hardware, and
19+
name.

BLURB

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
qmail is a secure, reliable, efficient, simple message transfer agent.
2+
It is meant as a replacement for the entire sendmail-binmail system on
3+
typical Internet-connected UNIX hosts.
4+
5+
Secure: Security isn't just a goal, but an absolute requirement. Mail
6+
delivery is critical for users; it cannot be turned off, so it must be
7+
completely secure. (This is why I started writing qmail: I was sick of
8+
the security holes in sendmail and other MTAs.)
9+
10+
Reliable: qmail's straight-paper-path philosophy guarantees that a
11+
message, once accepted into the system, will never be lost. qmail also
12+
supports maildir, a new, super-reliable user mailbox format. Maildirs,
13+
unlike mbox files and mh folders, won't be corrupted if the system
14+
crashes during delivery. Even better, not only can a user safely read
15+
his mail over NFS, but any number of NFS clients can deliver mail to him
16+
at the same time.
17+
18+
Efficient: On a Pentium under BSD/OS, qmail can easily sustain 200000
19+
local messages per day---that's separate messages injected and delivered
20+
to mailboxes in a real test! Although remote deliveries are inherently
21+
limited by the slowness of DNS and SMTP, qmail overlaps 20 simultaneous
22+
deliveries by default, so it zooms quickly through mailing lists. (This
23+
is why I finished qmail: I had to get a big mailing list set up.)
24+
25+
Simple: qmail is vastly smaller than any other Internet MTA. Some
26+
reasons why: (1) Other MTAs have separate forwarding, aliasing, and
27+
mailing list mechanisms. qmail has one simple forwarding mechanism that
28+
lets users handle their own mailing lists. (2) Other MTAs offer a
29+
spectrum of delivery modes, from fast+unsafe to slow+queued. qmail-send
30+
is instantly triggered by new items in the queue, so the qmail system
31+
has just one delivery mode: fast+queued. (3) Other MTAs include, in
32+
effect, a specialized version of inetd that watches the load average.
33+
qmail's design inherently limits the machine load, so qmail-smtpd can
34+
safely run from your system's inetd.
35+
36+
Replacement for sendmail: qmail supports host and user masquerading,
37+
full host hiding, virtual domains, null clients, list-owner rewriting,
38+
relay control, double-bounce recording, arbitrary RFC 822 address lists,
39+
cross-host mailing list loop detection, per-recipient checkpointing,
40+
downed host backoffs, independent message retry schedules, etc. In
41+
short, it's up to speed on modern MTA features. qmail also includes a
42+
drop-in ``sendmail'' wrapper so that it will be used transparently by
43+
your current UAs.

BLURB2

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
Mailing list management is one of qmail's strengths. Notable features:
2+
3+
* qmail lets each user handle his own mailing lists. The delivery
4+
instructions for user-whatever go into ~user/.qmail-whatever.
5+
6+
* qmail makes it really easy to set up mailing list owners. If the user
7+
touches ~user/.qmail-whatever-owner, all bounces will come back to him.
8+
9+
* qmail supports VERPs, which permit completely reliable automated
10+
bounce handling for mailing lists of any size.
11+
12+
* SPEED---qmail blasts through mailing lists an order of magnitude
13+
faster than sendmail. For example, one message was successfully
14+
delivered to 150 hosts around the world in just 70 seconds, with qmail's
15+
out-of-the-box configuration.
16+
17+
* qmail automatically prevents mailing list loops, even across hosts.
18+
19+
* qmail allows inconceivably gigantic mailing lists. No random limits.
20+
21+
* qmail handles aliasing and forwarding with the same simple mechanism.
22+
For example, Postmaster is controlled by ~alias/.qmail-postmaster. This
23+
means that cross-host loop detection also applies to aliases.
24+
25+
* qmail supports the ezmlm mailing list manager, which easily and
26+
automatically handles bounces, subscription requests, and archives.

BLURB3

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
Here are some of qmail's features.
2+
3+
Setup:
4+
* automatic adaptation to your UNIX variant---no configuration needed
5+
* AIX, BSD/OS, FreeBSD, HP/UX, Irix, Linux, OSF/1, SunOS, Solaris, and more
6+
* automatic per-host configuration (config, config-fast)
7+
* quick installation---no big list of decisions to make
8+
9+
Security:
10+
* clear separation between addresses, files, and programs
11+
* minimization of setuid code (qmail-queue)
12+
* minimization of root code (qmail-start, qmail-lspawn)
13+
* five-way trust partitioning---security in depth
14+
* optional logging of one-way hashes, entire contents, etc. (QUEUE_EXTRA)
15+
16+
Message construction (qmail-inject):
17+
* RFC 822, RFC 1123
18+
* full support for address groups
19+
* automatic conversion of old-style address lists to RFC 822 format
20+
* sendmail hook for compatibility with current user agents
21+
* header line length limited only by memory
22+
* host masquerading (control/defaulthost)
23+
* user masquerading ($MAILUSER, $MAILHOST)
24+
* automatic Mail-Followup-To creation ($QMAILMFTFILE)
25+
26+
SMTP service (qmail-smtpd):
27+
* RFC 821, RFC 1123, RFC 1651, RFC 1652, RFC 1854
28+
* 8-bit clean
29+
* 931/1413/ident/TAP callback (tcp-env)
30+
* relay control---stop unauthorized relaying by outsiders (control/rcpthosts)
31+
* no interference between relay control and forwarding
32+
* tcpd hook---reject SMTP connections from known abusers
33+
* automatic recognition of local IP addresses
34+
* per-buffer timeouts
35+
* hop counting
36+
37+
Queue management (qmail-send):
38+
* instant handling of messages added to queue
39+
* parallelism limit (control/concurrencyremote, control/concurrencylocal)
40+
* split queue directory---no slowdown when queue gets big
41+
* quadratic retry schedule---old messages tried less often
42+
* independent message retry schedules
43+
* automatic safe queueing---no loss of mail if system crashes
44+
* automatic per-recipient checkpointing
45+
* automatic queue cleanups (qmail-clean)
46+
* queue viewing (qmail-qread)
47+
* detailed delivery statistics (qmailanalog, available separately)
48+
49+
Bounces (qmail-send):
50+
* QSBMF bounce messages---both machine-readable and human-readable
51+
* HCMSSC support---language-independent RFC 1893 error codes
52+
* double bounces sent to postmaster
53+
54+
Routing by domain (qmail-send):
55+
* any number of names for local host (control/locals)
56+
* any number of virtual domains (control/virtualdomains)
57+
* domain wildcards (control/virtualdomains)
58+
* configurable percent hack support (control/percenthack)
59+
* UUCP hook
60+
61+
SMTP delivery (qmail-remote):
62+
* RFC 821, RFC 974, RFC 1123
63+
* 8-bit clean
64+
* automatic downed host backoffs
65+
* artificial routing---smarthost, localnet, mailertable (control/smtproutes)
66+
* per-buffer timeouts
67+
* passive SMTP queue---perfect for SLIP/PPP (serialmail, available separately)
68+
69+
Forwarding and mailing lists (qmail-local):
70+
* address wildcards (.qmail-default, .qmail-foo-default, etc.)
71+
* sendmail .forward compatibility (dot-forward, available separately)
72+
* fast forwarding databases (fastforward, available separately)
73+
* sendmail /etc/aliases compatibility (fastforward/newaliases)
74+
* mailing list owners---automatically divert bounces and vacation messages
75+
* VERPs---automatic recipient identification for mailing list bounces
76+
* Delivered-To---automatic loop prevention, even across hosts
77+
* automatic mailing list management (ezmlm, available separately)
78+
79+
Local delivery (qmail-local):
80+
* user-controlled address hierarchy---fred controls fred-anything
81+
* mbox delivery
82+
* reliable NFS delivery (maildir)
83+
* user-controlled program delivery: procmail etc. (qmail-command)
84+
* optional new-mail notification (qbiff)
85+
* optional NRUDT return receipts (qreceipt)
86+
* conditional filtering (condredirect, bouncesaying)
87+
88+
POP3 service (qmail-popup, qmail-pop3d):
89+
* RFC 1939
90+
* UIDL support
91+
* TOP support
92+
* APOP hook
93+
* modular password checking (checkpassword, available separately)

BLURB4

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
qmail's modular, lightweight design and sensible queue management make
2+
it the fastest available message transfer agent. Here's how it stacks up
3+
against the competition in five different speed measurements.
4+
5+
* Scheduling: I sent a message to 8192 ``trash'' recipients on my home
6+
machine. All the deliveries were done in a mere 78 seconds---a rate of
7+
over 9 million deliveries a day! Compare this to the speed advertised
8+
for Zmailer's scheduling: 1.1 million deliveries a day on a
9+
SparcStation-10/50. (My home machine is a 16MB Pentium-100 under BSD/OS,
10+
with the default qmail configuration. qmail's logs were piped through
11+
accustamp and written to disk as usual.)
12+
13+
* Local mailing lists: When qmail is delivering a message to a mailbox,
14+
it physically writes the message to disk before it announces success---
15+
that way, mail doesn't get lost if the power goes out. I tried sending a
16+
message to 1024 local mailboxes on the same disk on my home machine; all
17+
the deliveries were done in 25.5 seconds. That's more than 3.4 million
18+
deliveries a day! Sending 1024 copies to a _single_ mailbox was just as
19+
fast. Compare these figures to Zmailer's advertised rate for throwing
20+
recipients away without even delivering the message---only 0.48 million
21+
per day on the SparcStation.
22+
23+
* Mailing lists with remote recipients: qmail uses the same delivery
24+
strategy that makes LSOFT's LSMTP so fast for outgoing mailing lists---
25+
you choose how many parallel SMTP connections you want to run, and qmail
26+
runs exactly that many. Of course, performance varies depending on how
27+
far away your recipients are. The advantage of qmail over other packages
28+
is its smallness: for example, one Linux user is running 60 simultaneous
29+
connections, without swapping, on a machine with just 16MB of memory!
30+
31+
* Separate local messages: What LSOFT doesn't tell you about LSMTP is
32+
how many _separate_ messages it can handle in a day. Does it get bogged
33+
down as the queue fills up? On my home machine, I disabled qmail's
34+
deliveries and then sent 5000 separate messages to one recipient. The
35+
messages were all safely written to the queue disk in 23 minutes, with
36+
no slowdown as the queue filled up. After I reenabled deliveries, all
37+
the messages were delivered to the recipient's mailbox in under 12
38+
minutes. End-to-end rate: more than 200000 individual messages a day!
39+
40+
* Overall performance: What really matters is how well qmail performs
41+
with your mail load. Red Hat Software found one day that their mail hub,
42+
a 48MB Pentium running sendmail 8.7, was running out of steam at 70000
43+
messages a day. They shifted the load to qmail---on a _smaller_ machine,
44+
a 16MB 486/66---and now they're doing fine.

0 commit comments

Comments
 (0)