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
<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" />
13
<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B"
15
<!-- Copyright 1998 - 2001 Double Precision, Inc. See COPYING for -->
14
<!-- Copyright 1998 - 2004 Double Precision, Inc. See COPYING for -->
16
15
<!-- distribution information. -->
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.
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 />
29
<li><a href="/webadmin/">Web-based administration and configuration
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
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
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
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 />
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
64
<li>Message submission protocol (RFC 2476).<br />
67
<li>IPv6 support (experimental).<br />
70
<li>Mailboxes can be accessed via POP3. Courier source distribution
71
includes an integrated POP3 server.<br />
74
<li>Mailboxes can be accessed via IMAP. Courier source distribution
75
includes an integrated IMAP server.<br />
78
<li>Mailboxes can be accessed via HTTP. Courier source distribution
79
includes an integrated webmail server.<br />
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 />
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
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><phonenumber@fax></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 />
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 />
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><phonenumber@fax></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
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
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 />
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>
112
supported. To use SOCKS you need to install Courier's Socks 5 proxy
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 />
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
152
<li>Authenticated SMTP.<br />
155
<li><code>XVERP</code> and <code>XEXDATA</code> ESMTP extensions.<br />
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 />
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 />
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 />
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 />
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
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 />
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>
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
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.
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.
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.
398
331
<h2>Smart organization of the message queue and temporary directories</h2>
399
332
Courier automatically creates subdirectories when necessary, and deletes them