+ <li>Purge by age (specify in days) </li>
+ <li>Purge by message count in the room (specify number of messages) </li>
+ <li>Do not purge at all </li>
+</ul>
+<p>Again, this setting may be overridden on a per-floor basis, and the
+floor setting may be overridden on a per-room basis. You'll also notice
+that you can set a <i>different</i> default for mailbox rooms if you
+want
+to. This can allow you, for example, to set a policy under which old
+messages scroll out of public rooms, but private mail stays online
+indefinitely
+until deleted by the mailbox owners.<br>
+</p>
+<p>"How often to run network jobs" refers to the sharing of content on
+a
+Citadel network. If your system is on a Citadel network, this
+configuration
+item dictates how often the Citadel server will contact other Citadel
+servers to send and receive messages. In reality, this will happen more
+frequently than you specify, because other Citadel servers will be
+contacting yours at regular intervals as well.<br>
+</p>
+<p>"Hour to run purges" determines when expired and/or deleted objects
+are purged from the database. These purge operations are
+typically run overnight and automatically, sometime during whatever
+hour you specify. If your site is much busier at night than
+during the day, you may choose to have the auto-purger run during the
+day.</p>
+<p>"Enable full text search index," if enabled, instructs the server to
+build and maintain a searchable index of all messages on the
+system. This is a time and resource intensive process -- it could
+take days to build the index if you enable it on a large
+database. It is also fairly memory intensive; we do not recommend
+that you enable the index unless your host system has at least 512 MB
+of memory. Once enabled, however, it will be updated
+incrementally
+and will not have any noticeable impact on the interactive response
+time of your system. The full text index is currently only
+searchable when using IMAP clients; other search facilities will be
+made available in the near future.</p>
+<p>The "Perform journaling..." options allow you to configure
+your Citadel server to send an extra copy of every message, along with
+recipient information if applicable, to the email address of your choice.
+The journaling destination address may be an account on the local Citadel
+server, an account on another Citadel server on your network, or an Internet
+email address. These options, used in conjunction with an archiving service,
+allow you to build an archive of all messages which flow through your Citadel
+system. This is typically used for regulatory compliance in industries which
+require such things. Please refer to the <a href="journaling.html">journaling
+guide</a> for more details on this subject.</p>
+<p><span style="font-family: monospace;">Save this configuration? No</span><br>
+</p>
+<p>When you're done, enter 'Yes' to confirm the changes, or 'No' to
+discard the changes.</p>
+</div>
+<hr size="2" width="100%">
+<h2 align="center"><a name="Configuring_Citadel_for_Internet_e-mail"></a>Configuring
+Citadel for Internet e-mail</h2>
+<div align="justify">
+<h3><a name="Introduction"></a>Introduction</h3>
+As you know by now, Citadel is a completely self-contained,
+full-featured Internet e-mail system. When you run Citadel you do
+not need any other mail software on your host system. This
+eliminates the need for tedious mucking about with sendmail, qmail,
+postfix, Cyrus, the UW IMAP
+server, or any of countless other needlessly complex programs that lead
+some people to the false assumption that Unix systems are difficult to
+administer.<br>
+<br>
+Some of the many features supported by Citadel are:<br>
+<ul>
+ <li>Built-in SMTP and ESMTP service, for delivering and receiving
+e-mail on the Internet</li>
+ <li>Built-in POP3 service, for remote fetching of messages</li>
+ <li>Built-in IMAP service, for access to mail using any standard mail
+client program</li>
+ <li>Web mail (implemented using the "WebCit" middleware, which is
+installed separately)</li>
+ <li>Support for mailing lists, in both "individual message" and
+"digest" formats</li>
+ <li>Multiple/virtual domain support</li>
+ <li>Any user may have multiple Internet e-mail addresses, in multiple
+domains</li>
+ <li>Global address book (Users with addresses in a domain may be
+spread out across many servers on a Citadel network)</li>
+ <li>Easy-to-configure integration with <a
+ href="http://www.spamassassin.org/">SpamAssassin</a> can block spam <i>before</i>
+it enters the mail system</li>
+ <li>Easy-to-configure integration with most Realtime Blackhole
+Lists (RBL) provide further defense against spammers</li>
+</ul>
+This section of the documentation will demonstrate how to configure
+these features.<br>
+<br>
+<h3><a name="Basic_site_configuration"></a>Basic site configuration</h3>
+<p>Basic configuration of your Citadel system for Internet e-mail
+begins with
+the <tt><b>.A</b>ide <b>S</b>ystem configuration <b>I</b>nternet</tt>
+command:</p>
+<pre>Lobby> <b>.A</b>ide <b>S</b>ystem configuration <b>I</b>nternet<br><br>### Host or domain Record type<br>--- -------------------------------------------------- --------------------<br> 1<br><A>dd <D>elete <S>ave <Q>uit -><br></pre>
+<p>This is a "clean" setup. For a simple, standalone e-mail system you
+simply have to enter the <tt><b>A</b>dd</tt> command:</p>
+<pre><A>dd <D>elete <S>ave <Q>uit -> <b>A</b>dd<br><br>Enter host name: schmeep.splorph.com<br> (1) localhost (Alias for this computer)<br> (2) gateway domain (Domain for all Citadel systems)<br> (3) smart-host (Forward all outbound mail to this host)<br> (4) directory (Consult the Global Address Book)<br> (5) SpamAssassin (Address of SpamAssassin server)<br> (6) RBL (domain suffix of spam hunting RBL)<br><br>Which one [1]:<br></pre>
+<p><b>localhost:</b> Basically what you're doing here is telling
+Citadel
+what any aliases for your machine are. If your machine were <tt>schmeep.splorph.com</tt>
+and you also had a DNS entry set up for <tt>blah.com</tt>, you might
+want to enter '1' and enter <tt>blah.com</tt> as your alias, so that
+e-mail
+sent to that address won't bounce.</p>
+<p><i>Important tip:</i> if your system is known by one name and <i>only</i>
+one domain, you might not even need to do this at all. You will recall
+that you entered your system's fully qualified domain name earlier when
+you went through the <tt><b>.A</b>ide <b>S</b>ystem configuration <b>G</b>eneral</tt>
+command. The domain name you entered there is automatically considered
+by Citadel to be a 'localhost' entry in your Internet mail
+configuration. It does not hurt to enter it in both locations, though.</p>
+<p><b>gateway domain:</b> this is a simple way of mapping various
+Citadel hosts in an Internet domain. For example, if you enter <tt>bar.com</tt>
+as a gateway domain, then mail to users at <tt>foo.bar.com</tt> will
+be forwarded to the host called <tt>foo</tt> on a Citadel network,
+mail to users
+at <tt>kunst.bar.com</tt> will be delivered to the Citadel server
+called
+<tt>kunst</tt>, etc. This feature has limited usefulness; if you are
+operating
+a network of Citadel servers, it is more likely that you will use the
+'directory'
+feature, explained below.</p>
+<p><b>smart-host:</b> Normally, Citadel sends outbound Internet e-mail
+directly to its destination. This may not be appropriate for some
+sites; you may require (due to local convention, security policy, or
+whatever) that all outbound mail be sent to an SMTP relay or forwarder.
+To configure this
+functionality, simply enter the domain name or IP address of your relay
+as a 'smart-host' entry.</p>
+<p>If your relay server is running on a port other
+than the standard SMTP port 25, you can also specify the port number
+using "host:port" syntax; i.e. <tt>relay99.myisp.com:2525</tt></p>
+<p>Furthermore, if your relay server requires authentication, you can
+specify it using username:password@host or username:password@host:port
+syntax; i.e. <tt>jsmith:pass123@relay99.myisp.com:25</tt></p>
+<p><b>directory:</b> a domain for which you are participating in
+directory services across any number of Citadel nodes. For example, if
+users who have addresses in the domain <tt>citadel.org</tt> are spread
+out across multiple Citadel servers on your network, then enter <tt>citadel.org</tt>
+as a 'directory' entry. <i>For this to work, all Citadel servers
+participating in directory service <b>must</b> carry and share the <tt>Global
+Address Book></tt> room.</i></p>
+<p><b>spamassassin:</b> if you are running a <a
+ href="http://www.spamassassin.org">SpamAssassin</a> service anywhere
+on your
+<b>local</b> network, enter its name or IP address as a 'spamassassin'
+entry. This may be (and, in fact, will usually be) <tt>127.0.0.1</tt>
+to specify
+that the service is running on the same host computer as the Citadel
+server.</p>
+<p>Please install SpamAssassin as per its own documentation. You will
+want to run SpamAssassin in client/server mode, where a <tt>spamd</tt>
+daemon is always running on your computer. Citadel does not utilize the
+<tt>spamc</tt> client; instead, it implements SpamAssassin's protocol
+on its own.</p>
+<p>Connecting to a SpamAssassin service across a wide area network is
+strongly discouraged. In order to determine whether an incoming e-mail
+is spam, Citadel must feed the <i>entire message</i> to the
+SpamAssassin service. Doing this over a wide area network would consume
+time and bandwidth,
+which would affect performance.</p>
+<p>Citadel invokes the SpamAssassin service when incoming messages are
+arriving via SMTP. Before a message is accepted, it is submitted to
+SpamAssassin. If SpamAssassin determines that the message is spam, the
+Citadel SMTP
+service <i>rejects the message,</i> causing a delivery failure on the
+sending
+host. This is superior to software which files away spam in a separate
+folder, because delivery failures will cause some spammers to assume
+the
+address is invalid and remove it from their mailing lists.</p>
+<p><b>RBL:</b> Realtime Blackhole Lists (RBL's) provide defense against
+spammers based on their source IP address. There are many such lists
+available on the Internet, some of which may be utilized free of
+charge. Since they are DNS based, the lists do not require storage on
+your server -- they are queried during the SMTP conversation.</p>
+<p>Citadel can utilize any RBL that uses the <tt>z.y.x.w.nameoflist.org</tt>
+syntax, where <tt>w.x.y.z</tt> is the source IP address which is
+attempting to deliver mail to your server. For example, <a
+ href="http://www.spamcop.net">SpamCop</a> would use the query <tt>2.0.0.127.bl.spamcop.net</tt>
+to determine whether the host at <tt>127.0.0.2</tt> is a known spammer
+or open relay. In this case, you simply select option '6' to add an RBL
+entry, and provide it with the domain suffix of <tt>bl.spamcop.net</tt>
+(the IP address
+and extra dot will be automatically prepended for each query).</p>
+<p>Now select <tt><b>S</b>ave</tt> and you are just about ready for
+Internet e-mail.</p>
+<h3><a name="Enabling_the_Internet_mail_protocols"></a>Enabling the
+Internet mail protocols</h3>
+<p>As previously mentioned, Citadel contains its own SMTP, POP3, and
+IMAP services. Enabling them is simple.</p>
+<p>Check for the existance of a current MTA (sendmail, qmail, etc.) by
+connecting to port 25 on your host. If you see something similar to the
+following
+you're running an MTA already and you'll need to shut it down:</p>
+<pre>smw @ pixel % telnet localhost 25<br>Trying 127.0.0.1...<br>Connected to localhost.<br>Escape character is '^]'.<br>220 pixel.citadel.org ESMTP Sendmail 8.9.3/8.9.3; Wed, 15 Mar 2000 19:00:53 -0500<br></pre>
+<p>In the above example, we see that the host already has Sendmail
+listening on port 25. Before Citadel can use port 25, Sendmail must be
+shut off. Please consult the documentation for your operating system
+for instructions on how to do this. (On a Red Hat Linux system, for
+example, you can run the <tt>ntsysv</tt> utility, un-checking <tt>sendmail</tt>
+to disable it at
+the next reboot; then, run <tt>service sendmail stop</tt> to shut off
+the
+currently running service.)</p>
+<p>If you get a 'connection refused' message when you telnet to port 25
+there's nothing running and you should be able to continue. You might
+also want to turn off POP (try the above test substituting 110 for 25)
+and IMAP (port 143) and use Citadel's POP and IMAP services.</p>
+<p>Citadel will look for an existing pop/smtp server on startup. If
+they
+don't exist (and you've configured them properly) then Citadel should
+enable
+them at startup. You can check your logs to be sure, or you can start
+the
+server from a shell and watch it load. It might look something like
+this:</p>
+<font size="-2"> </font>
+<pre><font size="-2">smw @ pixel % ./citserver<br><br>Multithreaded message server for Citadel<br>Copyright (C) 1987-2006 by the Citadel development team.<br>Citadel is open source, covered by the GNU General Public License, and<br>you are welcome to change it and/or distribute copies of it under certain<br>conditions. There is absolutely no warranty for this software. Please<br>read the 'COPYING.txt' file for details.<br><br>Loading citadel.config<br>Opening databases<br>This is GDBM version 1.8.0, as of May 19, 1999.<br>Checking floor reference counts<br>Creating base rooms (if necessary)<br>Registered a new service (TCP port 504)<br>Registered a new service (TCP port 0)<br>Initializing loadable modules<br>Registered server command CHAT (Begin real-time chat)<br>Registered server command PEXP (Poll for instant messages)<br>Registered server command GEXP (Get instant messages)<br>Registered server command SEXP (Send an instant message)<br>Registered server command DEXP (Disable instant messages)<br>Registered a new session function (type 0)<br>Registered a new x-msg function (priority 0)<br>Loaded module: $Id$<br>Registered a new session function (type 1)<br>Registered a new message function (type 201)<br>Registered a new message function (type 202)<br>Registered server command REGI (Enter registration info)<br>Registered server command GREG (Get registration info)<br>Registered a new user function (type 100)<br>Loaded module: $Id$<br>Server-hosted upgrade level is 5.62<br>Loaded module: $Id$<br>Registered server command EXPI (Expire old system objects)<br>Registered server command FSCK (Check message ref counts)<br>Loaded module: $Id$<br><b>citserver: Can't bind: Address already in use<br>ERROR: could not bind to TCP port 25.</b><br>Registered a new service (TCP port 0)<br>Registered a new session function (type 50)<br>Loaded module: $Id$<br><b>citserver: Can't bind: Address already in use<br>ERROR: could not bind to TCP port 110.</b><br>Registered a new session function (type 0)<br>Loaded module: $Id$<br>Registered a new message function (type 202)Loaded module: $Id$<br>Registered server command RWHO (Display who is online)<br>Registered server command HCHG (Masquerade hostname)<br>Registered server command RCHG (Masquerade roomname)<br>Registered server command UCHG (Masquerade username)<br>Registered server command STEL (Enter/exit stealth mode)<br>Loaded module: $Id$<br>Changing uid to 513<br>Starting housekeeper thread<br></font></pre>
+<p>The lines emphasized in boldface in the above log output tell you
+that Citadel "can't bind" to various ports. The error 'address already
+in use' generally means that something else is already running on the
+requested port. Make SURE you've followed the above steps to remove
+sendmail/pop and start your Citadel server again.</p>
+<h3><a name="citmail"></a>Using Citadel in conjunction with another MTA</h3>
+<p>Occationally it is not practical to remove a non-Citadel MTA on your
+host system. For example, you might have multiple groups of users, some
+of
+which are using Citadel and some of which are using a legacy Unix mail
+spool. This type of configuration is discouraged, but two tools are
+provided
+to allow it.</p>
+<p>The tool is called <tt>citmail</tt> and it is, quite simply, a
+local MDA (Mail Delivery Agent) which you can configure into your MTA
+for final delivery of incoming messages to Citadel users. A full
+discussion of the finer points of complex Sendmail configurations is
+beyond the scope of this document; however, you might want to visit <a
+ href="http://pixel.citadel.org/citadel/docs/">Pixel BBS</a> where some
+useful HOWTO documents are provided.<br>
+</p>
+<p>The other tool is an <a href="http://www.faqs.org/rfcs/rfc2033.html">RFC2033</a>
+compliant LMTP service running on a local socket. If you're
+running a mailer that speaks LMTP (such as <a
+ href="http://www.postfix.org/">Postfix</a>), you can simply point your
+mailer at the socket called <span style="font-family: monospace;">citadel.socket</span>
+in your Citadel directory. For example, in Postfix you might put
+the following line into <span style="font-family: monospace;">main.cf</span>
+in order to tell it to use Citadel to deliver mail to local recipients:<br>
+</p>
+<pre>local_transport = lmtp:unix:/usr/local/citadel/lmtp.socket<br></pre>
+<p>Postfix also has something called a "fallback transport" which can
+be used to implement Citadel as a "secondary" mail system on your
+server, while keeping the existing Unix mailboxes intact.
+However, it is beyond the scope of this document to detail the finer
+points of the configuration of Postfix or any other mailer, so refer to
+the documentation to those programs and keep in mind that Citadel has
+LMTP support.<span style="font-family: monospace;"></span></p>
+<p>There are actually <i>two</i> LMTP sockets. One is called
+<tt>lmtp.socket</tt> and the other is called <tt>lmtp-unfiltered.socket</tt>
+(both are found in your Citadel directory). The difference should be
+obvious: messages submitted via <tt>lmtp.socket</tt> are subject to
+any
+spam filtering you may have configured (such as SpamAssassin), while
+messages
+submitted via <tt>lmtp-unfiltered.socket</tt> will bypass the filters.
+You
+would use the filtered socket when receiving mail from an external MTA
+such
+as Postfix, but you might want to use the unfiltered socket with
+utilities
+such as fetchmail.</p>
+<br>
+<p>For outbound mail, you
+can either allow Citadel to perform
+deliveries directly
+(this won't affect your other mail system because outbound mail doesn't
+tie
+up port 25) or enter <tt>127.0.0.1</tt> as your smart-host, which will
+tell
+Citadel to forward all of its outbound mail to your other mail system.</p>
+<h3><a name="Hosting_an_Internet_mailing_list"></a>Hosting an Internet
+mailing list</h3>
+<p>Citadel has built in mailing list service (known in Internet
+vernacular as "listserv") functionality. You can turn any room
+into a mailing list. Users can then choose how they participate
+-- by logging on to your Citadel server directly, or by having the
+room's contents mailed to
+them somewhere else. Configuring this is easy.</p>
+<p>Citadel supports two modes of mailing list delivery: </p>
+<ul>
+ <li>"List mode" -- each individual message is delivered as a single
+e-mail to each list mode recipient. The "From:" header will
+display the address of the message's original author.</li>
+ <li>"Digest mode" -- groups of one or more messages are delivered
+to digest mode recipients. The number of messages in the group
+depends on how many new messages arrived since the last batch was
+delivered. The "From:" header will display the address of the
+room itself, which allows replies to be posted back to the room.</li>
+</ul>
+A room may have any combination of list mode and digest mode
+recipients.
+<p>As alluded to above, every room on your Citadel system has an
+Internet e-mail address of its own. Messages sent to that address
+will be
+posted in the room (and sent back out to mailing list recipients, as
+well
+as to any other Citadels you share the room with). The address
+format
+is <tt>room_</tt> plus the name of the room, with any spaces replaced
+by
+underscores, followed by <tt>@</tt> and your hostname. For example, if
+your
+system is known as <tt>phlargmalb.orc.org</tt> on the Internet, and
+you have
+a room called <tt>Bubblegum Collectors</tt>, you can post to that room
+from
+anywhere on the Internet simply by sending an e-mail to <tt>room_bubblegum_collectors@phlargmalb.orc.org</tt>.
+When the message arrives, it's automatically posted in that room.</p>
+<p>To manually edit the list of "list mode" recipients, simply enter
+the <tt><b>.A</b>ide
+mailing <b>L</b>ist management</tt> command. Your text editor will
+open
+up and you will be able to create or edit a list of recipients, one per
+line. Lines beginning with a hash (<tt>#</tt>) are comments.</p>
+<p>To manually edit the list of "digest mode" recipients, enter the <tt><b>.A</b>ide
+mailing list <b>D</b>igest recipients</tt> command. As with the
+previous command, the text editor will open up and you can edit the
+list of digest mode recipients, one per line.</p>
+<p>Citadel also has a facility which allows users to subscribe or
+unsubscribe to mailing lists using a web browser. In order to do this,
+WebCit must also be running on your server in addition to Citadel.
+WebCit is obtained and installed separately from the rest of the
+Citadel system.</p>
+<p>In order to prevent "just anyone" from subscribing to any room on
+your system, there is a setting in the <tt><b>.A</b>ide <b>E</b>dit
+room</tt> command:</p>
+<pre>CitaNews} . Aide Edit this room<br>
+Room name [CitaNews]:<br>
+<br>
+<i>(lots of other stuff omitted for brevity...)</i><br>
+<br>
+Self-service list subscribe/unsubscribe [No]: Yes<br></pre>
+<p>When you answer "Yes" to self-service list subscribe/unsubscribe,
+you are
+enabling that feature. Now, all you have to do is tell the world about
+the
+web page they need to visit. It looks like this:</p>
+<center><tt>http://foobar.baz.org:2000/listsub</tt></center>
+<p>In this example, the server is called <tt>foobar.baz.org</tt> and
+WebCit is running on port 2000. Edit appropriately.</p>
+<p>Citadel offers a subscribe/unsubscribe facility that is more
+intuitive than other listservs. With most systems, sending commands to
+the listserv requires that you e-mail it commands in a special format.
+It's easy to get it wrong. Citadel simply uses your web browser. You
+select the list you want to subscribe or unsubscribe (hint: it's the
+list of rooms you've enabled self-service for), select whether you want
+list mode or digest mode, and enter your e-mail address. For security
+purposes, a confirmation message is sent to the address you enter. But
+you don't have to reply to the message in a weird format, either: the
+confirmation contains another URL which
+you simply click on (or paste into your browser if you can't click on
+URL's
+in your e-mail software) and the confirmation is automatically
+completed.</p>
+<hr size="2" width="100%">
+<center>
+<h2><a name="Building_or_joining_a_Citadel_network"></a>Building or
+joining a Citadel network</h2>
+</center>
+<h3><a name="Overview__"></a>Overview</h3>
+<p>If you are running Citadel as a BBS or other forum type of
+application, one way to 'keep the conversation going' is to share rooms
+with other Citadel systems. In a shared room, a message posted to the
+room is automatically
+propagated to every system on the network. It's kind of like a UseNet
+newsgroup, but without the spam.</p>
+<p>If you are using Citadel as the e-mail and groupware platform for a
+large organization, you can use its networking features to build a
+large network of Citadel servers which share content (think of rooms as
+public folders), redistribute e-mail throughout the organization, and
+integrate the global address book. It might make sense, for
+example, in a large corporation to give each department or location its
+own Citadel server. Thanks
+to Citadel's global address book features, you could still have all of
+the users share a single e-mail domain.</p>
+<p>Obviously, the first thing you have to do is find another Citadel to
+share rooms with, and make arrangements with them. The following
+Citadels are a good place to start:</p>
+<ul>
+ <li>UNCENSORED! - <a href="http://uncensored.citadel.org">uncensored.citadel.org</a>
+ </li>
+ <li>The Dog Pound II - <a href="http://dogpound2.citadel.org">dogpound2.citadel.org</a>
+ </li>