• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

guide/H03-May-2022-

ChangesH A D30-May-20115.3 KiB168118

README.BerkeleyH A D21-Feb-200113.3 KiB373253

README.SieveH A D25-Aug-20005.3 KiB12796

Release.NotesH A D30-May-201142.8 KiB980772

macH A D18-Apr-20051.7 KiB4132

sieve-release-notesH A D25-Aug-2000990 2623

README.Berkeley

1@(#)@(#)README	2.6   2.6 4/2/91
2
3
4The Post Office Protocol Server:  Installation Guide
5
6
7
8Introduction
9
10The Post Office Protocol server runs on a variety of Unix[1] computers
11to manage electronic mail for Macintosh and MS-DOS computers.  The
12server was developed at the University of California at Berkeley and
13conforms fully to the specifications in RFC 1081[2] and RFC 1082[3].
14The Berkeley server also has extensions to send electronic mail on
15behalf of a client.
16
17This guide explains how to install the POP server on your Unix
18computer.  It assumes that you are not only familiar with Unix but also
19capable of performing Unix system administration.
20
21
22How to Obtain the Server
23
24The POP server is available via anonymous ftp from ftp.CC.Berkeley.EDU
25(128.32.136.9, 128.32.206.12).  It is in two files in the pub directory:
26a compressed tar file popper-version.tar.Z and a Macintosh StuffIt archive
27in BinHex format called MacPOP.sit.hqx.
28
29
30Contents of the Distribution
31
32The distribution contains the following:
33
34+   All of the C source necessary to create the server program.
35
36+   A visual representation of how the POP system works.
37
38+   A man page for the popper daemon.
39
40+   This guide.
41
42
43Compatibility
44
45The Berkeley POP server has been successfully tested on the following
46Unix operating systems:
47
48+   Berkeley Systems Distribution 4.3
49
50+   Sun Microsystems Operating System versions 3.5 and 4.0
51
52+   Ultrix version 2.3
53
54
55Support
56
57The Berkeley POP server is not officially supported and is without any
58warranty, explicit or implied.  However, we are interested in your
59experiences using the server.  Bugs, comments and suggestions should be
60sent electronically to netinfo@garnet.Berkeley.EDU.
61
62
63Operational Characteristics
64
65The POP Transaction Cycle
66
67The Berkeley POP server is a single program (called popper) that is
68launched by inetd when it gets a service request on the POP TCP port.
69(The official port number specified in RFC 1081 for POP version 3 is
70port 110.  However, some POP3 clients attempt to contact the server at
71port 109, the POP version 2 port.  Unless you are running both POP2 and
72POP3 servers, you can simply define both ports for use by the POP3
73server.  This is explained in the installation instructions later on.)
74The popper program initializes and verifies that the peer IP address is
75registered in the local domain, logging a warning message when a
76connection is made to a client whose IP address does not have a
77canonical name.  For systems using BSD 4.3 bind, it also checks to see
78if a cannonical name lookup for the client returns the same peer IP
79address, logging a warning message if it does not.  The the server
80enters the authorization state, during which the client must correctly
81identify itself by providing a valid Unix userid and password on the
82server's host machine.  No other exchanges are allowed during this
83state (other than a request to quit.)  If authentication fails, a
84warning message is logged and the session ends.  Once the user is
85identified, popper changes its user and group ids to match that of the
86user and enters the transaction state.  The server makes a temporary
87copy of the user's maildrop (ordinarily in /usr/spool/mail) which is
88used for all subsequent transactions.  These include the bulk of POP
89commands to retrieve mail, delete mail, undelete mail, and so forth.  A
90Berkeley extension also allows the user to submit a mail parcel to the
91server who mails it using the sendmail program (this extension is
92supported in the HyperMail client distributed with the server).  When
93the client quits, the server enters the final update state during which
94the network connection is terminated and the user's maildrop is updated
95with the (possibly) modified temporary maildrop.
96
97
98Logging
99
100The POP server uses syslog to keep a record of its activities.  On
101systems with BSD 4.3 syslogging, the server logs (by default) to the
102"local0" facility at priority "notice" for all messages except
103debugging which is logged at priority "debug".  The default log file is
104/usr/spool/mqueue/POPlog.  These can be changed, if desired.  On
105systems with 4.2 syslogging all messages are logged to the local log
106file, usually /usr/spool/mqueue/syslog.
107
108Problems
109
110If the filesystem which holds the /usr/spool/mail fills up users will
111experience difficulties.  The filesystem must have enough space to hold
112(approximately) two copies of the largest mail box.  Popper (v1.81 and
113above) is designed to be robust in the face of this problem, but you may
114end up with a situation where some of the user's mail is in
115
116	/usr/spool/mail/.userid.pop
117
118and some of the mail is in
119
120	/usr/spool/mail/userid
121
122If this happens the System Administrator should clear enough disk space
123so that the filesystem has at least as much free disk as both mailboxes
124hold and probably a little more.  Then the user should initiate a POP
125session, and do nothing but quit.  If the POP session ends without an
126error the user can then use POP or another mail program to clean up his/her
127mailbox.
128
129Alternatively, the System Administrator can combine the two files (but
130popper will do this for you if there is enough disk space).
131
132
133Debugging
134
135The popper program will log debugging information when the -d parameter
136is specified after its invocation in the inetd.conf file.  Care should
137be exercised in using this option since it generates considerable
138output in the syslog file.  Alternatively, the "-t <file-name>" option
139will place debugging information into file "<file-name>" using fprintf
140instead of syslog.  (To enable debugging, you must edit the Makefile
141to add -DDEBUG to the compiler options.)
142
143For SunOS version 3.5, the popper program is launched by inetd from
144/etc/servers.  This file does not allow you to specify command line
145arguments.  Therefore, if you want to enable debugging, you can specify
146a shell script in /etc/servers to be launched instead of popper and in
147this script call popper with the desired arguments.
148
149
150Installation
151
1521.  Examine this file for the latest information, warnings, etc.
153
1542.  Check the Makefile for conformity with your system.
155
1563.  Issue the make command in the directory containing the popper
157    source.
158
1594.  Issue the make install command in the directory containing the
160    popper source to copy the program to /usr/etc.
161
1625.  Enable syslogging:
163
164    +   For systems with 4.3 syslogging:
165
166        Add the following line to the /etc/syslog.conf file:
167
168            local0.notice;local0.debug  /usr/spool/mqueue/POPlog
169
170        Create the empty file /usr/spool/mqueue/POPlog.
171
172        Kill and restart the syslogd daemon.
173
174    +   For systems with 4.2 syslogging:
175
176        Be sure that you are logging messages of priority 7 and higher.
177        For example:
178
179            7/usr/spool/mqueue/syslog
180            9/dev/null
181
1826.  Update /etc/services:
183
184    Add the following line to the /etc/services file:
185
186        pop 110/tcp
187
188    Note:  This is the official port number for version 3 of the
189    Post Office Protocol as defined in RFC 1081.  However, some
190    POP3 clients use port 109, the port number for the previous
191    version (2) of POP.  Therefore you may also want to add the
192    following line to the /etc/services file:
193
194    pop2    109/tcp
195
196    For Sun systems running yp, also do the following:
197
198    +   Change to the /var/yp directory.
199
200    +   Issue the make services command.
201
2027.  Update the inetd daemon configuration.  Include the second line ONLY if you
203    are running the server at both ports.
204
205    +   On BSD 4.3 and SunOS 4.0 systems, add the following line to the
206        /etc/inetd.conf file:
207
208        pop stream tcp nowait root /usr/etc/popper popper
209        pop2 stream tcp nowait root /usr/etc/popper popper
210
211    +   On Ultrix systems, add the following line to the
212        /etc/inetd.conf file:
213
214        pop stream tcp nowait /usr/etc/popper popper
215        pop2 stream tcp nowait /usr/etc/popper popper
216
217    +   On SunOS 3.5 systems, add the following line to the
218        /etc/servers file:
219
220        pop tcp /usr/etc/popper
221        pop2 tcp /usr/etc/popper
222
223        Kill and restart the inetd daemon.
224
225You can confirm that the POP server is running on Unix by telneting to
226port 110 (or 109 if you set it up that way).  For example:
227
228%telnet myhost 110
229Trying...
230Connected to myhost.berkeley.edu.
231Escape character is '^]'.
232+OK UCB Pop server (version 1.6) at myhost starting.
233quit
234Connection closed by foreign host.
235
236
237Release Notes
238
2391.831uiuc2
240	Unlinking temporary drop file (safely). (Steve Dorner, 12/12/91)
241
2421.831uiuc1
243	Make sure user's shell is in /etc/shells. (Paul Pomes)
244	Timeout added. (Steve Dorner, 12/5/91)
245
2461.83    Make sure that everything we do as root is non-destructive.
247
2481.82	Make the /usr/spool/mail/.userid.pop file owned by the user rather
249	than owned by root.
250
2511.81	There were two versions of 1.7 floating around, 1.7b4 and 1.7b5.
252	The difference is that 1.7b5 attempted to save disk space on
253	/usr/spool/mail by deleting the users permanent maildrop after
254	making the temporary copy.  Unfortunately, if compiled with
255	-DDEBUG, this version could easily wipe out a users' mail file.
256	This is now fixed.
257
258	This version also fixes a security hole for systems that have
259	/usr/spool/mail writeable by all users.
260
261	With this version we go to all new SCCS IDs for all files.  This
262	is unfortunate, and we hope it is not too much of a problem.
263
264	Thanks to Steve Dorner of UIUC for pointing out the major problem.
265
2661.7     Extensive re-write of the maildrop processing code contributed by
267        Viktor Dukhovni <viktor@math.princeton.edu> that greatly reduces the
268        possibility that the maildrop can be corrupted as the result of
269        simultaneous access by two or more processes.
270
271        Added "pop_dropcopy" module to create a temporary maildrop from
272        the existing, standard maildrop as root before the setuid and
273        setgid for the user is done.  This allows the temporary maildrop
274        to be created in a mail spool area that is not world read-writable.
275
276        This version does *not* send the sendmail "From " delimiter line
277        in response to a TOP or RETR command.
278
279        Encased all debugging code in #ifdef DEBUG constructs.  This code can
280        be included by specifying the DEGUG compiler flag.  Note:  You still
281        need to use the -d or -t option to obtain debugging output.
282
2831.6     Corrects a bug that causes the server to crash on SunOS
284        4.0 systems.
285
286        Uses varargs and vsprintf (if available) in pop_log and
287        pop_msg.  This is enabled by the "HAVE_VSPRINTF"
288        compiler flag.
289
290        For systems with BSD 4.3 bind, performs a cannonical
291        name lookup and searches the returned address(es) for
292        the client's address, logging a warning message if it
293        is not located.  This is enabled by the "BIND43"
294        comiler flag.
295
296        Removed all the includes from popper.h and distributed
297        them throughout the porgrams files, as needed.
298
299        Reformatted the source to convert tabs to spaces and
300        shorten lines for display on 80-column terminals.
301
3021.5     Creates the temporary maildrop with mode "600" and
303        immediately unlinks it.
304
305        Uses client's IP address in lieu of a canonical name if
306        the latter cannot be obtained.
307
308        Added "-t <file-name>" option.  The presence of this
309        option causes debugging output to be placed in the file
310        "file-name" using fprintf instead of the system log
311        file using syslog.
312
313        Corrected maildrop parsing problem.
314
3151.4     Copies user's mail into a temporary maildrop on which
316        all subsequent activity is performed.
317
318        Added "pop_log" function and replaced "syslog" calls
319        throughout the code with it.
320
3211.3     Corrected updating of Status: header line.
322
323        Added strncasecmp for systems that do not have one.
324        Used strncasecmp in all appropriate places.  This is
325        enabled by the STRNCASECMP compiler flag.
326
3271.2     Support for version 4.2 syslogging added.  This is
328        enabled by the SYSLOG42 compiler flag.
329
3301.1     Several bugs fixed.
331
3321.0     Original version.
333
334
335Limitations
336
337+   The POP server copies the user's entire maildrop to /tmp and
338    then operates on that copy.  If the maildrop is particularly
339    large, or inadequate space is available in /tmp, then the
340    server will refuse to continue and terminate the connection.
341
342+   Simultaneous modification of a single maildrop can result in
343    confusing results.  For example, manipulating messages in a
344    maildrop using the Unix /usr/ucb/mail command while a copy of
345    it is being processed by the POP server can cause the changes
346    made by one program to be lost when the other terminates.  This
347    problem is being worked on and will be fixed in a later
348    release.
349
350
351Credits
352
353The POP server was written by Edward Moy and Austin Shelton with
354contributions from Robert Campbell (U.C. Berkeley) and Viktor Dukhovni
355(Princeton University).  Edward Moy wrote the HyperMail stack and drew
356the POP operation diagram.  This installation guide was written by
357Austin Shelton.
358
359
360Footnotes
361
362[1] Copyright (c) 1990 Regents of the University of California.
363    All rights reserved.  The Berkeley software License Agreement
364    specifies the terms and conditions for redistribution.  Unix is
365    a registered trademark of AT&T corporation.  HyperCard and
366    Macintosh are registered trademarks of Apple Corporation.
367
368[2] M. Rose, Post Office Protocol - Version 3.  RFC  1081, NIC,
369    November 1988.
370
371[3] M. Rose, Post Office Protocol - Version 3 Extended Service
372    Offerings.  RFC 1082, NIC, November 1988.
373

README.Sieve

1SIEVE SUPPORT
2
3Last updated: 27 October 1998 rcg
4
5
6
7
8There are 4 main components for Sieve support:
9    o  Platform-independent Sieve engine
10    o  Unix Delivery agent
11    o  Unix Sieve ACAP Daemon
12    o  Sieve GUI
13
14
15Sieve Engine
16----- ------
17
18The Sieve engine is platform independent, and conforms to
19draft-showalter-sieve-03.txt, except for (a) REJECT action not
20implemented, and (b) wildcard searching not implemented (I plan on
21adding Henry Spencer's regexp code).  In addition, I've added support
22for envelope matching, and adding extra headers.  The envelope
23extension adds 'envelope.rcpt' and 'envelope.from' tests.  The MARK
24extension adds an extra header to the message.  The text can optionally
25contain ^f, which is replaced with the envelope return path, and/or ^r,
26which is replaced with the envelope recipient.
27
28The Sieve engine consists of three primary modules: a Sieve parser, the
29actual Sieve execution, and a module which allocates and deallocates
30structures used by both.  The Sieve parser uses a platform-independent
31scanner/parser (called skanx), which also includes some string-handling
32functions (for portability).  Extensive tracing is available; the code
33expects have available a callback function to write trace entries.
34
35The Sieve engine has hooks to allow for parsed Sieve scripts to be
36cached in memory (or on disk), but this is not yet implemented;
37currently each mail message causes the script to be parsed into
38structures, executed, and the structures released.
39
40Sieve parsing and execution are separated for two main reasons: to
41allow for syntax errors to be detected before any execution has begun,
42and to allow for caching.
43
44The Sieve engine is called by a delivery agent, using the Delivery
45Agent API (DAA, pronounced "duh").  The incoming message envelope and
46headers, and optionally all or the start of the body, are parsed into
47structures.  These structures are passed to the Sieve engine.  The
48Sieve engine expects various call-back functions to be available at
49link time.  These call-backs handle either utility tasks (such as
50address parsing), or platform-specific actions (such as generating a
51reply or setting the IMAP delivery folder).
52
53The Sieve engine expects to read the Sieve script from a file.  It is
54passed the full path to the file, and opens it (using standard C).  It
55knows nothing of file system specifics.
56
57The Sieve engine includes calls to simply parse (not execute) a Sieve
58script, to check for syntax errors.   Parse-time errors and warnings
59are returned in the Sieve structure, as integers (count of
60errors/warnings) and strings (specifics of errors/warnings, in the
61format specified by draft-gellens-acap-acnt-00.txt).
62
63The Sieve engine has been running on Windows-NT for some months now.
64
65
66Unix Delivery Agent
67---- -------- -----
68
69The Unix delivery agent parses the message headers into the DAA-defined
70structures, calls Sieve, and depending on the return value, either
71delivers or discards the message.
72
73Current limitations:
74    1) The envelope originator MUST be specified, with -f on the command line.
75    2) Tracing/logging call-back not yet implemented.
76    3) Reply, forward callbacks not yet implemented.
77    4) Context stuct get assigned empty strings for envelope originator
78       and recipient.
79    5) No file locking yet on sieve script.  (Will be implemented using
80       dot-locking in the same fashion as sievead.)
81    6) Doesn't always write to mailbox correctly.  Messages get
82       appended to others.
83
84
85Unix Sieve ACAP Daemon
86---- ----- ---- -----
87
88The Sieve ACAP Daemon (sievead, pronouned "seh'-vee-ad" or
89"seh-vee'-ad") listens on the ACAP port (674), or a specified port (we
90will apply for one when we publish an I-D on this), and implements just
91enough ACAP to allow a client to retrieve or store a Sieve script, as
92specified in draft-gellens-acap-acnt-00.txt (that is, using attribute
93'account.sieve.script').  The Daemon reads and writes the Sieve script
94locally to "~/.sieve_script", using standard dot-file locking as the
95*only* file-locking mechanism (no flock() calls).
96
97The Unix sievead is currently working.
98
99
100Sieve GUI
101----- ---
102
103There is a Windows Sieve GUI, and an HTML/Perl based GUI, both of which
104allow users to easily create, delete, and modify simple Sieve rules.
105Based on the Eudora filters interface, the GUI presents a list of
106rules, each of which can have one or two conditions, and up to four
107actions.  Only a very limited subset of Sieve is used, to keep things
108simple.
109
110The Windows GUI includes an edit box, so power users can roll their
111own, using Sieve syntax.
112
113The Windows GUI calls the Sieve engine parser.  It also writes a Sieve
114script as a standardized set of comments at the file head.  Only Sieve
115syntax which fits into the GUI is written as comments.  The comments
116use the same syntax as the filters files in Eudora.  The HTML/Perl GUI
117also reads and writes these comments.  The Windows GUI processes the
118actual Sieve, and generates the comments as well.  The HTML/Perl GUI
119reads and writes the comments, but ignores the actual Sieve syntax.
120
121The Windows GUI is usable, but the HTML/Perl code still needs to have
122authentication integrated into it, and needs more extensive testing.
123
124Current Limitations:
125    1. The Windows client currently stores authentication and server
126       data, *including the password*, in cleartext in the Registry.
127