* Removed some temporary diagnostics that had been left in serv_sieve.c
[citadel.git] / citadel / docs / journaling.html
blob5408346e60ac26fd2b0d1ac50448b51c6729df12
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <title>Message Journaling with the Citadel System</title>
5 <meta http-equiv="content-type"
6 content="text/html; charset=ISO-8859-1">
7 </head>
8 <body>
9 <div align="center">
10 <h1>Message Journaling with the Citadel System</h1>
11 <h2>A technical guide</h2>
12 Copyright &copy;2006 by the Citadel development team.<br>
13 </div>
15 <div align="justify">
17 <hr>
19 <h3><a name="toc">Table of Contents</a></h3>
21 <a href="#introduction">Introduction</a><br>
22 <a href="#overview">Technical overview of Citadel journaling</a><br>
23 <a href="#resource">Additional resource utilization</a><br>
24 <a href="#where">Where should I send the journalized messages?</a><br>
25 <a href="#configuration">How to configure journaling</a><br>
26 <a href="#disclaimer">Disclaimer</a><br>
28 <hr>
30 <h3><a name="introduction">Introduction</a></h3>
32 <p>There are many different environments in which the Citadel system is
33 useful for messaging and collaboration tasks. Naturally, many sites use
34 Citadel as their organization's primary email server. Some of these
35 organizations are corporations which operate in industries that are subject
36 to regulations which dictate that all electronic messages must be archived
37 for some period of time.</p>
39 <p>Message journaling is a function of the Citadel system which provides the
40 ability to record all messages which are processed by the server. Journaling,
41 by itself, is <i>not</i> a message archival service, nor should one attempt to
42 treat it as one. We recommend that you combine Citadel journaling with a
43 third-party archival product or service, in order to assemble a data retention
44 solution that will meet the requirements of your organization.</p>
46 <h3><a name="overview">Technical overview of Citadel journaling</a></h3>
48 <p>In order to keep the configuration options simple and straightforward,
49 Citadel implements only one variety of journaling. It is generally known
50 in the messaging universe as &quot;envelope journaling.&quot; As you are
51 probably already aware, one cannot trust the headers of any particular
52 message to be a reliable indication of which users have read it. In addition
53 to the declared sender and recipients, there may also be blind carbon copy
54 (BCC) recipients, recipients on one or more mailing lists, and even recipients
55 who are not listed due to forged or badly formed headers.</p>
57 <p>The format of a journalized message, therefore, contains extra information
58 about who <i>actually</i> sent and/or received the original message. The very
59 first portion of the journalized message lists the sender, message ID, and
60 recipients. It should be noted that the listed Sender and Recipients are
61 those which were relevant to delivery <i>on the Citadel server performing the
62 journaling of the message.</i> If the message arrived via SMTP from the
63 outside world, any recipients not on the local Citadel server would not be
64 listed, because they were not involved in the transaction which delivered the
65 message to the server.</p>
67 <p>The original message is then included, as an attachment of type
68 <tt>message/rfc822</tt>, to the journal message.</p>
70 <p>This logic provides the ability to answer these questions:
71 <ul>
72 <li>If a message was sent <i>from</i> someone on this server, who received it?
73 <li>If a message was sent <i>to</i> someone on this server, who <i>else</i>
74 received it?
75 </ul>
76 Either question can be answered by searching your archive for the message in
77 question and reviewing the names and addresses listed in the journalized
78 messages.</p>
81 <h3><a name="resource">Additional resource utilization</a></h3>
83 <p>On a server with message journaling enabled, each message must pass through
84 the submit chain twice: once for the delivery of the original message, and once
85 for the delivery of the journalized message. You must plan accordingly for the
86 additional overhead which will be incurred. Nearly twice as much CPU, memory,
87 and disk space will be consumed by journaling.</p>
89 <p>Despite the extra processing, however, it should be noted that the Citadel
90 server performs journaling as a deferred background operation. This allows
91 interactive users to continue along instead of waiting for the server to
92 synchronously journal each message that is submitted.</p>
95 <h3><a name="where">Where should I send the journalized messages?</a></h3>
97 <p>As previously noted, any valid email address may be used as the destination
98 for journalized messages. Where you send your journalized messages will
99 likely depend upon how you are going to archive them.</p>
101 <p>Some archival systems contain their own email addresses. With these
102 products and services, you are expected to email your journalized messages
103 directly to a specific address. This is typically referred to as "push"
104 journaling because the transfer is initiated by your server. If you intend
105 to use this type of system, the required configuration is obvious: the
106 journal destination is the email address of your archival system.</p>
108 <p>Other archival systems are built around the idea that you should provide
109 a dedicated email address on <i>your</i> server, and the archival system
110 periodically uses POP3 (or POP3S, the SSL-encrypted version of POP3) to poll
111 the mailbox for new journalized messages. Upon successful retrieval of new
112 messages, the archival system deletes the journalized messages from your
113 server. This is typically referred to as "pull" journaling because the
114 transfer is initiated externally. If you intend to use this type of system,
115 you should create a dedicated account on your Citadel server for this purpose,
116 and then configure that account as the journal destination. No real users
117 should ever log in to this account. It exists solely as a drop box for
118 journalized messages.</p>
120 <p>In rare instances, you may wish to send the journalized messages to an
121 address on some other node on a private Citadel network. This could be useful
122 if, for example, one server is used to aggregate messages journalized from
123 several other servers. It might also be useful if, for some reason, you
124 require a dedicated server for journaling.</p>
126 <p>It should also be noted that the message data format contains a field which
127 declares that a message is actually a journalized copy of some other message.
128 The Citadel system will not journalize any message which carries this flag.
129 This prevents messages from being double journalized (or worse, caught in an
130 infinite loop of journaling).</p>
133 <h3><a name="configuration">How to configure journaling</a></h3>
135 <p>After you have formulated a strategy for combining journaling with some
136 third-party archival product or service as part of a compliance solution, the
137 actual configuration is very easy. You only need to set the following three
138 configuration items in Citadel:
139 <ul>
140 <li>Perform journaling of email messages? (Yes or No)
141 <li>Perform journaling of non-email messages? (Yes or No)
142 <li>Address to which journalized messages are to be sent? (Specify any email address)
143 </ul>
144 </p>
146 <p>From the text-based Citadel client, these options may be found in the
147 <tt><b>.A</b>ide <b>S</b>ystem-configuration <b>G</b>eneral</tt> command. You
148 will see the following options among the many other options in this dialog:
149 <pre>
150 Perform journaling of email messages [Yes]:
151 Perform journaling of non-email messages [Yes]:
152 Email destination of journalized messages [example@example.com]:
153 </pre>
154 &quot;Non-email messages&quot; refers to any message which has no recipients.
155 This includes posts to public and private rooms, calendar items, address book
156 entries, notes, tasks, instant messages, and any other data types which may
157 be introduced in the future.
158 </p>
160 <p>Naive administrators may find the categorization of instant messages in the
161 latter category to be somewhat confusing. After all, instant messages do have
162 both a sender and a recipient. However, they were never passed through the
163 email submission and delivery chain, therefore they are not categorized as
164 email. As you already know, all instant messages are saved as posts to the
165 <tt>Sent/Received Pages</tt> rooms of both the sender and recipient. These
166 posts are actually what is being journaled.</p>
168 <p>Configuration of journaling using WebCit is even easier. Log in with your
169 web browser and then select Administration --&gt; Edit site-wide
170 configuration --&gt; Indexing/Journaling, and you will find the same three
171 options.</p>
173 <p>It is not necessary to restart the Citadel server when you change your
174 journaling options. Changes will take effect immediately.</p>
177 <h3><a name="disclaimer">Disclaimer</a></h3>
179 <p>The message journaling feature of Citadel is only one component which may
180 be utilized as part of a larger solution for regulatory compliance. The
181 Citadel developers do not make any guarantee, expressed or implied, that this
182 functionality by itself will cause your organization's email services to
183 be sufficiently archived. It is up to you to design your complete archival
184 solution, to test it, and to evaluate its ability to comply with whatever
185 regulations are relevant to your organization.</p>
189 </div>
190 </body>
191 </html>