~ubuntu-branches/ubuntu/hoary/courier/hoary

« back to all changes in this revision

Viewing changes to courier/doc/intro.html

  • Committer: Bazaar Package Importer
  • Author(s): Thom May
  • Date: 2004-11-29 12:09:34 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20041129120934-kkn0xj11j0n1n6lo
Tags: 0.47-3ubuntu1
* Nathaniel McCallum
 - debian/*.init: pretty initscripts
 - debian/control: version depends on lsb-base

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0"?>
2
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3
 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
2
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
3
<html xmlns="http://www.w3.org/1999/xhtml">
5
4
<head>
 
5
  <meta http-equiv="Content-Type" content="" />
6
6
  <meta name="MSSmartTagsPreventParsing" content="TRUE" />
7
7
  <meta name="Author" content="Sam Varshavchik" />
8
 
  <!-- $Id: intro.html,v 1.35 2002/07/09 19:38:17 mrsam Exp $ -->
 
8
  <!-- $Id: intro.html,v 1.40 2004/08/27 23:47:11 mrsam Exp $ -->
9
9
  <title>Introduction</title>
10
10
  <link rel="icon" href="icon.gif" type="image/gif" />
11
11
</head>
12
12
 
13
 
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B"
14
 
alink="#FF0000">
15
 
<!-- Copyright 1998 - 2001 Double Precision, Inc.  See COPYING for -->
 
13
<body>
 
14
<!-- Copyright 1998 - 2004 Double Precision, Inc.  See COPYING for -->
16
15
<!-- distribution information. -->
17
16
 
18
17
<h2>Introduction</h2>
19
18
Courier is a modular multiprotocol mail server that's designed to strike a
20
 
balance between reasonable performance, flexibility and features. 
 
19
balance between reasonable performance, flexibility and features.
21
20
 
22
21
<h2>Features</h2>
23
22
<ul>
24
23
  <li>Can be configured to function as an intermediate mail relay, or as a
25
24
    mail server that receives mail for multiple domains and makes it
26
 
    accessible to mail clients, or anything in between.<br />
27
 
    <br />
28
 
  </li>
29
 
  <li><a href="/webadmin/">Web-based administration and configuration
30
 
    tool</a> .<br />
31
 
    <br />
32
 
  </li>
33
 
  <li>Uses an efficient <a
 
25
    accessible to mail clients, or anything in between.</li>
 
26
  <li><a target="_blank" href="/webadmin/">Web-based administration and
 
27
    configuration tool</a> .</li>
 
28
  <li>Local mailboxes can be accessed via POP3. Courier includes an
 
29
    integrated POP3 server.</li>
 
30
  <li>Local mailboxes can be accessed via IMAP. Courier includes an
 
31
    integrated IMAP server.</li>
 
32
  <li>Local mailboxes can be accessed via HTTP. Courier includes an <a
 
33
    href="/sqwebmail/screenshots.html">integrated webmail server</a>.</li>
 
34
  <li>The webmail server includes a personal <a target="_blank"
 
35
    href="http://www.courier-mta.org/sqwebmail/images/monthly.png">event
 
36
    calendar</a>.</li>
 
37
  <li>Uses an efficient <a target="_blank"
34
38
    href="http://www.courier-mta.org/mbox-vs-maildir/">maildir</a> format as
35
39
    its native mail storage format. Some support is provided for legacy mbox
36
 
    mailboxes.<br />
37
 
    <br />
38
 
  </li>
 
40
    mailboxes.</li>
 
41
  <li>Flexible "Sender Policy Framework" support; the ESMTP
 
42
    <code>HELO</code>, <code>MAIL FROM</code>, and the <code>From:</code>
 
43
    header can be validated using SPF.</li>
39
44
  <li>DSN, PIPELINING, and 8BITMIME ESMTP extensions. Courier automatically
40
45
    converts 8-bit messages to 7-bit encoding, for relaying mail to external
41
 
    mail gateways.<br />
42
 
    <br />
43
 
  </li>
 
46
    mail gateways.</li>
44
47
  <li>STARTTLS ESMTP extension (as well as IMAP/POP3/ESMTP/Webmail over SSL)
45
48
    in both the client and the server (requires OpenSSL). The ESMTP client
46
49
    can optionally require that the remote server's X.509 certificate is
47
 
    signed by a trusted root CA (a default set of root CAs is provided).<br />
48
 
    <br />
49
 
  </li>
 
50
    signed by a trusted root CA (a default set of root CAs is provided).</li>
50
51
  <li>Experimental TLS/SSL enhancements which are designed to implement a
51
52
    secure mail delivery channel between trusted domains, over an untrusted
52
53
    network. This is implemented by requiring mail to select domains use
58
59
    the attacker will not have an X.509 certificate signed by a private CA
59
60
    (this assumes, of course, that the security of the private CA hasn't been
60
61
    breached). This work is mostly complete, but still needs a little
61
 
    testing.<br />
62
 
    <br />
63
 
  </li>
64
 
  <li>Message submission protocol (RFC 2476).<br />
65
 
    <br />
66
 
  </li>
67
 
  <li>IPv6 support (experimental).<br />
68
 
    <br />
69
 
  </li>
70
 
  <li>Mailboxes can be accessed via POP3. Courier source distribution
71
 
    includes an integrated POP3 server.<br />
72
 
    <br />
73
 
  </li>
74
 
  <li>Mailboxes can be accessed via IMAP. Courier source distribution
75
 
    includes an integrated IMAP server.<br />
76
 
    <br />
77
 
  </li>
78
 
  <li>Mailboxes can be accessed via HTTP. Courier source distribution
79
 
    includes an integrated webmail server.<br />
80
 
    <br />
81
 
  </li>
 
62
  testing.</li>
 
63
  <li>Message submission protocol (RFC 2476).</li>
 
64
  <li>IPv6 support (experimental).</li>
82
65
  <li>NOTE: the integrated servers work with maildir-based mailboxes only.
83
66
    There are many existing POP3, IMAP, and webmail servers that provide
84
67
    excellent support for mbox-based mailboxes, so there's no reason to
85
 
    reinvent the wheel. Some popular mbox servers are: <a
86
 
    href="http://www.eudora.com/qpopper/">Qpopper</a>, <a
 
68
    reinvent the wheel. Some popular mbox servers are: <a target="_blank"
 
69
    href="http://www.eudora.com/qpopper/">Qpopper</a>, <a target="_blank"
87
70
    href="http://www.washington.edu/imap/">UW-IMAP</a>, and <a
88
 
    href="http://neomail.sourceforge.net/">NeoMail</a>.<br />
89
 
    <br />
90
 
  </li>
 
71
    target="_blank" href="http://neomail.sourceforge.net/">NeoMail</a>.</li>
91
72
  <li>A faxmail gateway (experimental) that forwards E-mail messages via fax
92
73
    (requires a compatible class 2 faxmodem). Courier doesn't implement the
93
74
    actual faxing all by itself, actually. Courier uses additional software
94
75
    (which must be separately installed), to take care of the low-level
95
 
    details. The popular <a
 
76
    details. The popular <a target="_blank"
96
77
    href="http://alpha.greenie.net/mgetty/">mgetty+sendfax</a> package talks
97
78
    to the faxmodem and handles the actual faxing. Conversion of E-mail
98
 
    messages to fax pages is done by <a
 
79
    messages to fax pages is done by <a target="_blank"
99
80
    href="http://www.ghostscript.com/">ghostscript</a>, troff or <a
 
81
    target="_blank"
100
82
    href="http://www.gnu.org/software/groff/groff.html">groff</a>, and the <a
101
 
    href="http://netpbm.sourceforge.net/">NetPBM</a> library. Courier glues
102
 
    all of these pieces together in a seamless manner any time an E-mail
103
 
    message addressed to <tt>&lt;phonenumber@fax&gt;</tt> is received. The
104
 
    main textual body of the E-mail message is placed on a cover page, and
105
 
    any attachments are converted to fax image format and transmitted after
106
 
    the cover page. At this time, Courier knows how to send plain text, PDF,
107
 
    and Postscript attachments. GIF, JPEG, and PNG images can be sent to (one
108
 
    image per page).<br />
109
 
    <br />
110
 
    The additional software packages that were mentioned previously are
111
 
    usually already included in most Linux and BSD installations. In most
112
 
    cases no additional software really needs to be installed in order to get
113
 
    faxmailing up and running.<br />
114
 
    <br />
115
 
  </li>
 
83
    target="_blank" href="http://netpbm.sourceforge.net/">NetPBM</a> library.
 
84
    Courier glues all of these pieces together in a seamless manner any time
 
85
    an E-mail message addressed to <tt>&lt;phonenumber@fax&gt;</tt> is
 
86
    received. The main textual body of the E-mail message is placed on a
 
87
    cover page, and any attachments are converted to fax image format and
 
88
    transmitted after the cover page. At this time, Courier knows how to send
 
89
    plain text, PDF, and Postscript attachments. GIF, JPEG, and PNG images
 
90
    can be sent to (one image per page). The additional software packages
 
91
    that were mentioned previously are usually already included in most Linux
 
92
    and BSD installations. In most cases no additional software really needs
 
93
    to be installed in order to get faxmailing up and running.</li>
116
94
  <li>Courier includes a mailing list manager, with fully automatic bounce
117
 
    processing.<br />
118
 
    <br />
119
 
  </li>
120
 
  <li>You don't need a full-blown mail server? Courier's <a
121
 
    href="http://www.inter7.com/courierimap/">IMAP server</a>, <a
122
 
    href="http://www.inter7.com/sqwebmail/">webmail server</a>, and <a
123
 
    href="http://www.flounder.net/~mrsam/maildrop/">mail filter</a> are
124
 
    available as independent packages that can be used with other mail
125
 
    servers (as long as the other mail servers store mail in <a
 
95
    processing.</li>
 
96
  <li>You don't need a full-blown mail server? Courier's <a target="_top"
 
97
    href="http://www.courier-mta.org/courierimap/">IMAP server</a>, <a
 
98
    target="_top" href="http://www.courier-mta.org/sqwebmail/">webmail
 
99
    server</a>, and <a target="_top"
 
100
    href="http://www.courier-mta.org/maildrop/">mail filter</a> are available
 
101
    as independent packages that can be used with other mail servers (as long
 
102
    as the other mail servers store mail in <a target="_blank"
126
103
    href="http://www.qmail.org/man/man5/maildir.html">maildirs</a>). These
127
104
    sub-packages are assembled from the same source code tree. The only
128
105
    difference is the top level makefile. Note: the independent builds are
129
106
    not always in sync with the main Courier build at any given time. They
130
107
    follow their own schedule, and may include a slightly older, or even more
131
108
    recent, code base! Over time, however, everything always syncs together
132
 
    since all builds are assembled from the same source code repository.<br />
133
 
    <br />
134
 
  </li>
 
109
    since all builds are assembled from the same source code repository.</li>
135
110
  <li>SOCKSv5 support. Courier can punch through a SOCKS firewall to send
136
111
    outgoing mail. Receiving mail through a SOCKS firewall is not yet
137
 
    supported, unfortunately. To use SOCKS you need to install <!-- either <a
138
 
                        href="http://www.inet.no/dante/">Dante</a>, or -->
139
 
     NEC's <a href="http://www.socks.nec.com/socks5.html">SOCKSv5</a>
140
 
    library.<br />
141
 
    <br />
142
 
  </li>
 
112
    supported. To use SOCKS you need to install Courier's Socks 5 proxy
 
113
    client library.</li>
143
114
  <li>PAM, LDAP, PostgreSQL (beta), or MySQL authentication. LDAP
144
 
    authentication requires <a href="http://www.openldap.org">OpenLDAP</a> to
145
 
    be installed. LDAP-based mail routing is also supported.<br />
146
 
    <br />
147
 
  </li>
 
115
    authentication requires <a target="_blank"
 
116
    href="http://www.openldap.org">OpenLDAP</a> to be installed. LDAP-based
 
117
    mail routing is also supported.</li>
148
118
  <li>Gateway mail to/from UUCP (if compatible UUCP software is separately
149
 
    installed).<br />
150
 
    <br />
151
 
  </li>
152
 
  <li>Authenticated SMTP.<br />
153
 
    <br />
154
 
  </li>
155
 
  <li><code>XVERP</code> and <code>XEXDATA</code> ESMTP extensions.<br />
156
 
    <br />
157
 
  </li>
 
119
    installed).</li>
 
120
  <li>Authenticated SMTP.</li>
 
121
  <li><code>XVERP</code> and <code>XEXDATA</code> ESMTP extensions.</li>
158
122
  <li>DNS-based blacklists. Ability to exempt whitelisted IP addresses from
159
 
    the blacklists.<br />
160
 
    <br />
161
 
  </li>
 
123
    the blacklists.</li>
162
124
  <li>Integrated mail filtering. An API is provided for installing arbitrary
163
125
    external mail filters, and the system administrator can selectively
164
126
    enable for any mail source (ESMTP, UUCP, locally submitted mail) for
170
132
    integral part of the mail server. Unwanted mail is rejected, and is not
171
133
    accepted by Courier for delivery (the external mail relay receives the
172
134
    error, and it becomes the external relay's problem as to what to do with
173
 
    unwanted junk mail).<br />
174
 
    <br />
175
 
  </li>
 
135
    unwanted junk mail).</li>
176
136
  <li>Partial ability to import <code>sendmail</code>'s aliases file, but not
177
137
    all aspects of <code>sendmail</code>'s aliasing is supported - like
178
138
    delivering to programs, for example. Still, most simple
179
 
    <code>aliases</code> files should be usable.<br />
180
 
    <br />
181
 
  </li>
 
139
    <code>aliases</code> files should be usable.</li>
182
140
  <li>Optional ability to import most of <code>Qmail</code>'s
183
141
    <code>.qmail</code> files (Courier uses an almost 100% compatible local
184
 
    mail delivery instruction format).<br />
185
 
    <br />
186
 
  </li>
 
142
    mail delivery instruction format).</li>
187
143
  <li>Most major components of Courier can be installed in non-default
188
144
    directories, allowing extreme customization for your particular
189
 
    environment.<br />
190
 
    <br />
191
 
  </li>
 
145
    environment.</li>
192
146
  <li>You can set a maximum number of messages to deliver simultaneously to
193
147
    the same host. This, in fact, is strongly encouraged so that a single
194
148
    nonfunctioning domain does not take up all available delivery slots. Rate
195
149
    limiting is implemented in the main scheduler, and applies to any
196
 
    transport mechanism, not just ESMTP.<br />
197
 
    <br />
198
 
  </li>
 
150
    transport mechanism, not just ESMTP.</li>
199
151
  <li>Mailing list administrators can specify a backup relay and have mail
200
152
    that's not immediately deliverable offloaded to a backup server (this
201
153
    feature needs testing/feedback).</li>
205
157
not support:</p>
206
158
<ul>
207
159
  <li><code>.forward</code> files are partially supported. Courier can import
208
 
    most basic <code>/etc/aliases</code> files from <a
 
160
    most basic <code>/etc/aliases</code> files from <a target="_blank"
209
161
    href="http://www.sendmail.org">sendmail</a>, but sendmail's
210
162
    <code>.forward</code> and <code>/etc/aliases</code> files are simply not
211
163
    100% compatible with Courier's security model. Most <code>.forward</code>
212
164
    and <code>/etc/aliases</code> files should be acceptable, but some may
213
 
    not.<br />
214
 
    <br />
215
 
  </li>
 
165
    not.</li>
216
166
  <li><code>ETRN</code> is not, and will never be implemented. It's a hack,
217
167
    and is functionally incompatible with Courier's internal message
218
168
    dispatcher. If a mail node does not have constant network connectivity,
219
169
    there are better ways of arranging for mail transport than ETRN. The
220
170
    transient mail node should download mail via IMAP, or maybe even UUCP.<br
221
171
    />
222
 
    <br />
223
172
  </li>
224
173
  <li>Workarounds for known defects in other mail software. Courier will not
225
174
    accept mail with raw 8-bit characters in the headers, because they are
231
180
    improperly-defined MX records, even though other mail servers ignore the
232
181
    bad data. Additionally, certain popular IMAP mail clients are known to
233
182
    not work with Courier's IMAP server, due to an improper IMAP
234
 
    implementation by the mail client.<br />
235
 
    <br />
236
 
  </li>
 
183
    implementation by the mail client.</li>
237
184
  <li>Scripting language for rewriting mail headers. Mail rewriting rules are
238
185
    hardcoded, and are expected to be sufficient in most cases. If you have
239
186
    an unusual situation that requires some oddball header rewriting, you'll
240
 
    have to implement it yourself.<br />
241
 
    <br />
242
 
  </li>
 
187
    have to implement it yourself.</li>
243
188
  <li>Support for mbox mailboxes in the POP3, IMAP, and webmail components.
244
189
    They support maildirs only. There are plenty of existing servers out
245
190
    there that read mbox mailboxes.</li>
248
193
<h2>Requirements</h2>
249
194
<ul>
250
195
  <li>A C++ compiler, <code>egcs</code> is recommended. Most of Courier are
251
 
    written in C, but several major sections are written in C++.<br />
252
 
    <br />
253
 
  </li>
 
196
    written in C, but several major sections are written in C++.</li>
254
197
  <li>GNU make. Other <code>make</code>s may work, but that's not
255
 
    guaranteed.<br />
256
 
    <br />
257
 
  </li>
 
198
  guaranteed.</li>
258
199
  <li>Either the GDBM or Berkeley DB library must be available. Only certain
259
200
    versions of Berkeley DB API are supported, because the Berkeley DB API
260
201
    often changes (tested with 2.4.14 and 1.8.5). GDBM is the recommended
261
 
    library.<br />
262
 
    <br />
263
 
  </li>
264
 
  <li>Perl 5.<br />
265
 
    <br />
266
 
  </li>
 
202
    library.</li>
 
203
  <li>Perl 5.</li>
267
204
  <li>The file system must support FIFOs. At least the file system that
268
205
    stores the mail queue must be able to support FIFOs. Courier will not
269
 
    work with AFS.<br />
270
 
    <br />
271
 
  </li>
272
 
  <li>Filesystem domain sockets must be available.<br />
273
 
    <br />
274
 
  </li>
 
206
    work with AFS.</li>
 
207
  <li>Filesystem domain sockets must be available.</li>
275
208
  <li>Some optional components have additional dependencies - notably the
276
209
    additional software required for faxmail support (see above).</li>
277
210
</ul>
278
211
 
279
212
<h2>Additional information</h2>
280
213
Here is a somewhat more detailed overview of Courier's less prominent
281
 
features: 
 
214
features:
282
215
 
283
216
<h3>Upgrade path</h3>
284
217
Courier can be installed on systems that were previously running sendmail or
286
219
of both servers, however Courier is not, and will never be a 100%-compatible
287
220
replacement for either sendmail or Qmail. Courier does not implement several
288
221
legacy features of either MTA, and there are no plans to implement them in
289
 
the future. The key differences are: 
 
222
the future. The key differences are:
290
223
<ul>
291
224
  <li>sendmail</li>
292
225
</ul>
332
265
administrator can also optionally enable recipient-specified mail filters.
333
266
With recipient-specified mail filtering enabled, any local mail recipient can
334
267
install an arbitrary mail filter to selectively accept or reject mail based
335
 
on any criteria. 
 
268
on any criteria.
336
269
 
337
270
<p>Currently the mail filtering API is not very well documented, but it's
338
271
there.</p>
342
275
href="courierdsn.html">DSN</a></code>, <code>SIZE</code>, and
343
276
<code>8BITMIME</code> extensions to SMTP. Courier also includes a reference
344
277
implementation of the experimental <code>XVERP</code> and
345
 
<code>XEXDATA</code> extensions. 
 
278
<code>XEXDATA</code> extensions.
346
279
 
347
280
<p>Courier is a closed mail relay by default. Courier cannot be accidentally
348
281
configured as a completely open relay. A deliberate feat of stupidity is
351
284
<h2>ESMTP BOFH</h2>
352
285
Courier does not deliver mail to domains with broken MX records. Courier also
353
286
refuses to accept any mail with a return address in a domain with broken MX
354
 
records. 
 
287
records.
355
288
 
356
289
<p>Courier can automatically blacklist domains whose mail servers reject
357
290
delivery status notifications.</p>
361
294
Header rewriting logic is hardcoded in C, there is no header rewriting
362
295
language as in sendmail. An interpreted language imposes a drastic speed
363
296
penalty. The rewriting library is fairly simple, and the the standard
364
 
rewriting rules will do for most situations. 
 
297
rewriting rules will do for most situations.
365
298
 
366
299
<p>Courier rejects messages with badly-formed or missing MIME headers.
367
300
Courier rejects messages containing 8-bit characters in the headers, or
377
310
Message scheduling, dispatching, and the actual transport mechanism are
378
311
completely modularized. Different message transport mechanisms such as UUCP
379
312
can be implemented in a simple plug-in fashion, however some C coding will be
380
 
required. 
 
313
required.
381
314
 
382
315
<h2>Message scheduling</h2>
383
316
Courier supports VERPs, multiple recipients per message, and
384
 
RFC1894-compliant delivery status notifications. 
 
317
RFC1894-compliant delivery status notifications.
385
318
 
386
319
<h2>Load limiting</h2>
387
320
You can set a maximum number of messages to deliver simultaneously to the
388
321
same host. This, in fact, is strongly encouraged so that a single
389
322
nonfunctioning domain does not take up all available delivery slots. Rate
390
323
limiting is implemented in the main scheduler, and applies to any transport
391
 
mechanism, not just ESMTP. 
 
324
mechanism, not just ESMTP.
392
325
 
393
326
<h2>Automatic restarts and garbage cleanup</h2>
394
327
Courier's scheduling engine restarts itself automatically, on a regular
395
328
basis. This helps with memory fragmentation. Courier tries to restart itself
396
 
during periods of system inactivity. 
 
329
during periods of system inactivity.
397
330
 
398
331
<h2>Smart organization of the message queue and temporary directories</h2>
399
332
Courier automatically creates subdirectories when necessary, and deletes them
402
335
accomodate the additional entries. On many file systems, once those messages
403
336
are deleted, the empty slack space in the directory is not reclaimed, and
404
337
actually slows down subsequent directory operations. Courier automatically
405
 
removes empty directories, reclaiming the slack space. 
 
338
removes empty directories, reclaiming the slack space.
406
339
 
407
340
<h2>Smart installation layout</h2>
408
341
 
419
352
<h2>Mailing lists</h2>
420
353
Courier can implement both sendmail and qmail-style address aliases.
421
354
De-duping of sendmail-style aliases is automatic. Courier source distribution
422
 
also includes a complete mailing list manager. 
423
 
 
424
 
<table>
425
 
  <tbody>
426
 
    <tr>
427
 
      <td><strong>PREV:</strong> <a href="index.html">Courier</a></td>
428
 
      <td><strong>NEXT:</strong> <a
429
 
      href="status.html">Status/Download</a></td>
430
 
    </tr>
431
 
  </tbody>
432
 
</table>
433
 
</body>
 
355
also includes a complete mailing list manager.</body>
434
356
</html>