Upstream qmail 1.01
[qmail] / UPGRADE
CommitLineData
2117e02e
MW
1SAVE COPIES OF YOUR OUTGOING MAIL! Like any other piece of software (and
2information generally), the qmail system comes with NO WARRANTY. It's
3much more secure and reliable than sendmail, but that's not saying much.
4
5
6Here's how to upgrade from qmail 1.00 to qmail 1.01. This procedure will
7overwrite the old qmail binaries. Furthermore, it may begin delivering
8messages from the queue before you have had a chance to test it.
9
10
11WARNING: The qmail-start command line has changed.
12
13
14Before starting, compare conf* to your old conf*, and make any necessary
15changes. Do not copy your old conf*; the baseline has changed.
16
17
18How to install:
19
20 1. Compile the programs:
21 # make
22 2. Create the formatted man pages, *.0:
23 # make man
24 3. Inform your users that mail will not be accepted for a few minutes.
25 4. Disable deliveries by killing your old qmail-send. Wait for it to
26 print ``exiting'' in the log.
27 5. Disable SMTP service by commenting out the smtp line in inetd.conf;
28 kill -HUP your inetd. (If you are using tcpserver, simply kill -STOP
29 your tcpserver.) Wait for current qmail-smtpd processes to die. (If
30 you are running a QMTP server, disable that too.)
31 6. Install the new binaries and man pages:
32 # rm /var/qmail/bin/* /var/qmail/man/*/*
33 # make setup
34 7. Run instcheck to make sure it doesn't print any warnings:
35 # make check
36 8. Reenable deliveries:
37 # env - PATH="/var/qmail/bin:$PATH" \
38 qmail-start ./Mailbox splogger qmail &
39 Make sure to include the ./ in ./Mailbox.
40 9. Insert ./Mailbox into the qmail-start line in your boot scripts.
4110. Reenable SMTP service by restoring the smtp line in inetd.conf; kill
42 -HUP your inetd. (If you are using tcpserver, simply kill -CONT your
43 tcpserver. If you are running a QMTP server, reenable that too.)
44
45
46How to test (steps 11-17 can be done before step 10):
47
4811. Look for a
49 qmail: running
50 line in syslog. (The big number is a splogger timestamp.)
5112. Local-local test: Send yourself an empty message. (Replace ``me''
52 with your username. Make sure to include the ``to:'' colon.)
53 % echo to: me | /var/qmail/bin/qmail-inject
54 The message will show up immediately in ~/Mailbox, and syslog will
55 show something like this:
56 qmail: new msg 53
57 qmail: info msg 53: bytes 246 from <me@domain> qp 20345 uid 666
58 qmail: starting delivery 1: msg 53 to local me@domain
59 qmail: delivery 1: success: did_1+0+0/
60 qmail: end msg 53
61 (53 is an inode number; 20345 is a process ID; your numbers will
62 probably be different.)
6313. Local-error test: Send a message to a nonexistent local address.
64 % echo to: nonexistent | /var/qmail/bin/qmail-inject
65 qmail: new msg 53
66 qmail: info msg 53: bytes 246 from <me@domain> qp 20351 uid 666
67 qmail: starting delivery 2: msg 53 to local nonexistent@domain
68 qmail: delivery 2: failure: No_such_address.__#5.1.1_/
69 qmail: bounce msg 53 qp 20357
70 qmail: end msg 53
71 qmail: new msg 54
72 qmail: info msg 54: bytes 743 from <> qp 20357 uid 666
73 qmail: starting delivery 3: msg 54 to local me@domain
74 qmail: delivery 3: success: did_1+0+0/
75 qmail: end msg 54
76 You will now have a bounce message in ~/Mailbox.
7714. Local-remote test: Send an empty message to your account on another
78 machine.
79 % echo to: me@wherever | /var/qmail/bin/qmail-inject
80 qmail: new msg 53
81 qmail: info msg 53: bytes 246 from <me@domain> qp 20372 uid 666
82 qmail: starting delivery 4: msg 53 to remote me@wherever
83 qmail: delivery 4: success: 1.2.3.4_accepted_message./...
84 qmail: end msg 53
85 There will be a pause between ``starting delivery'' and ``success'';
86 SMTP is slow. Check that the message is in your mailbox on the other
87 machine.
8815. Local-postmaster test: Send mail to postmaster, any capitalization.
89 % echo to: POSTmaster | /var/qmail/bin/qmail-inject
90 Look for the message in ~alias/Mailbox.
9116. Double-bounce test: Send a message with a completely bad envelope.
92 % /var/qmail/bin/qmail-inject -f nonexistent
93 To: unknownuser
94 Subject: testing
95
96 This is a test. This is only a test.
97 %
98 (Use end-of-file, not dot, to end the message.) Look for the double
99 bounce in ~alias/Mailbox.
10017. Group membership test:
101 % cat > ~me/.qmail-groups
102 |groups >> MYGROUPS; exit 0
103 % /var/qmail/bin/qmail-inject me-groups < /dev/null
104 % cat ~me/MYGROUPS
105 MYGROUPS will show your normal gid and nothing else. (Under Solaris,
106 make sure to use /usr/ucb/groups; /usr/bin/groups is broken.)
10718. SMTP server test: Forge some mail locally via SMTP.
108 % telnet 127.0.0.1 25
109 Trying 127.0.0.1...
110 Connected to 127.0.0.1.
111 Escape character is '^]'.
112 220 domain ESMTP
113 helo dude
114 250-domain
115 250-PIPELINING
116 250 8BITMIME
117 mail <me@domain>
118 250 ok
119 rcpt <me@domain>
120 250 ok
121 data
122 354 go ahead
123 Subject: testing
124
125 This is a test.
126 .
127 250 ok 812345679 qp 12345
128 quit
129 221 domain
130 Connection closed by foreign host.
131 %
132 Look for the message in your mailbox.
13319. Remote-local test: Send yourself some mail from another machine.
13420. Remote-error test: I think you can figure this one out.
13521. UA test: Try sending mail, first to a local account, then to a
136 remote account, with your normal user agent.
13722. Remote-postmaster test: Send mail from another machine to
138 PoStMaStEr@domain. Look for the message in ~alias/Mailbox.
139
140
141That's it! To report success:
142 % ( echo 'First M. Last'; cat `cat SYSDEPS` ) \
143 | mail djb-qst@koobera.math.uic.edu
144Replace First M. Last with your name. If you have questions about qmail,
145contact qmail@pobox.com.