annotate xml/sm-archive.in @ 13:75e1a9bcbc2e

gpl3, add removal option for original recipients
author carl
date Sat, 25 Aug 2007 11:14:49 -0700
parents 311e331f1bab
children c9a1fd8f633b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
616666e2f34c initial version
carl
parents:
diff changeset
1 <reference>
616666e2f34c initial version
carl
parents:
diff changeset
2 <title>@PACKAGE@ Sendmail milter - Version @VERSION@</title>
616666e2f34c initial version
carl
parents:
diff changeset
3 <partintro>
616666e2f34c initial version
carl
parents:
diff changeset
4 <title>Packages</title>
616666e2f34c initial version
carl
parents:
diff changeset
5 <para>The various source and binary packages are available at <ulink
616666e2f34c initial version
carl
parents:
diff changeset
6 url="http://www.five-ten-sg.com/@PACKAGE@/packages/">http://www.five-ten-sg.com/@PACKAGE@/packages/</ulink>
616666e2f34c initial version
carl
parents:
diff changeset
7 The most recent documentation is available at <ulink
616666e2f34c initial version
carl
parents:
diff changeset
8 url="http://www.five-ten-sg.com/@PACKAGE@/">http://www.five-ten-sg.com/@PACKAGE@/</ulink>
616666e2f34c initial version
carl
parents:
diff changeset
9 </para>
616666e2f34c initial version
carl
parents:
diff changeset
10
616666e2f34c initial version
carl
parents:
diff changeset
11 </partintro>
616666e2f34c initial version
carl
parents:
diff changeset
12
616666e2f34c initial version
carl
parents:
diff changeset
13 <refentry id="@PACKAGE@.1">
616666e2f34c initial version
carl
parents:
diff changeset
14 <refentryinfo>
13
75e1a9bcbc2e gpl3, add removal option for original recipients
carl
parents: 4
diff changeset
15 <date>2007-08-25</date>
0
616666e2f34c initial version
carl
parents:
diff changeset
16 </refentryinfo>
616666e2f34c initial version
carl
parents:
diff changeset
17
616666e2f34c initial version
carl
parents:
diff changeset
18 <refmeta>
616666e2f34c initial version
carl
parents:
diff changeset
19 <refentrytitle>@PACKAGE@</refentrytitle>
616666e2f34c initial version
carl
parents:
diff changeset
20 <manvolnum>1</manvolnum>
616666e2f34c initial version
carl
parents:
diff changeset
21 <refmiscinfo>@PACKAGE@ @VERSION@</refmiscinfo>
616666e2f34c initial version
carl
parents:
diff changeset
22 </refmeta>
616666e2f34c initial version
carl
parents:
diff changeset
23
616666e2f34c initial version
carl
parents:
diff changeset
24 <refnamediv id='name.1'>
616666e2f34c initial version
carl
parents:
diff changeset
25 <refname>@PACKAGE@</refname>
616666e2f34c initial version
carl
parents:
diff changeset
26 <refpurpose>a sendmail milter to add recipients to messages</refpurpose>
616666e2f34c initial version
carl
parents:
diff changeset
27 </refnamediv>
616666e2f34c initial version
carl
parents:
diff changeset
28
616666e2f34c initial version
carl
parents:
diff changeset
29 <refsynopsisdiv id='synopsis.1'>
616666e2f34c initial version
carl
parents:
diff changeset
30 <title>Synopsis</title>
616666e2f34c initial version
carl
parents:
diff changeset
31 <cmdsynopsis>
616666e2f34c initial version
carl
parents:
diff changeset
32 <command>@PACKAGE@</command>
616666e2f34c initial version
carl
parents:
diff changeset
33 <arg><option>-c</option></arg>
616666e2f34c initial version
carl
parents:
diff changeset
34 <arg><option>-d <replaceable class="parameter">n</replaceable></option></arg>
616666e2f34c initial version
carl
parents:
diff changeset
35 <arg><option>-p <replaceable class="parameter">sendmail-socket</replaceable></option></arg>
616666e2f34c initial version
carl
parents:
diff changeset
36 <arg><option>-t <replaceable class="parameter">timeout</replaceable></option></arg>
616666e2f34c initial version
carl
parents:
diff changeset
37 </cmdsynopsis>
616666e2f34c initial version
carl
parents:
diff changeset
38 </refsynopsisdiv>
616666e2f34c initial version
carl
parents:
diff changeset
39
616666e2f34c initial version
carl
parents:
diff changeset
40 <refsect1 id='options.1'>
616666e2f34c initial version
carl
parents:
diff changeset
41 <title>Options</title>
616666e2f34c initial version
carl
parents:
diff changeset
42 <variablelist>
616666e2f34c initial version
carl
parents:
diff changeset
43 <varlistentry>
616666e2f34c initial version
carl
parents:
diff changeset
44 <term>-c</term>
616666e2f34c initial version
carl
parents:
diff changeset
45 <listitem><para>
616666e2f34c initial version
carl
parents:
diff changeset
46 Load the configuration file, print a cannonical form
616666e2f34c initial version
carl
parents:
diff changeset
47 of the configuration on stdout, and exit.
616666e2f34c initial version
carl
parents:
diff changeset
48 </para></listitem>
616666e2f34c initial version
carl
parents:
diff changeset
49 </varlistentry>
616666e2f34c initial version
carl
parents:
diff changeset
50 <varlistentry>
616666e2f34c initial version
carl
parents:
diff changeset
51 <term>-d <replaceable class="parameter">n</replaceable></term>
616666e2f34c initial version
carl
parents:
diff changeset
52 <listitem><para>
616666e2f34c initial version
carl
parents:
diff changeset
53 Set the debug level to <replaceable class="parameter">n</replaceable>.
616666e2f34c initial version
carl
parents:
diff changeset
54 </para></listitem>
616666e2f34c initial version
carl
parents:
diff changeset
55 </varlistentry>
616666e2f34c initial version
carl
parents:
diff changeset
56 <varlistentry>
616666e2f34c initial version
carl
parents:
diff changeset
57 <term>-p <replaceable class="parameter">sendmail-socket</replaceable></term>
616666e2f34c initial version
carl
parents:
diff changeset
58 <listitem><para>
616666e2f34c initial version
carl
parents:
diff changeset
59 Set the socket used for the milter connection to sendmail. This is either
616666e2f34c initial version
carl
parents:
diff changeset
60 "inet:port@ip-address" or "local:local-domain-socket-file-name".
616666e2f34c initial version
carl
parents:
diff changeset
61 </para></listitem>
616666e2f34c initial version
carl
parents:
diff changeset
62 </varlistentry>
616666e2f34c initial version
carl
parents:
diff changeset
63 <varlistentry>
616666e2f34c initial version
carl
parents:
diff changeset
64 <term>-t <replaceable class="parameter">timeout</replaceable></term>
616666e2f34c initial version
carl
parents:
diff changeset
65 <listitem><para>
616666e2f34c initial version
carl
parents:
diff changeset
66 Set the timeout in seconds used for communication with sendmail.
616666e2f34c initial version
carl
parents:
diff changeset
67 </para></listitem>
616666e2f34c initial version
carl
parents:
diff changeset
68 </varlistentry>
616666e2f34c initial version
carl
parents:
diff changeset
69 </variablelist>
616666e2f34c initial version
carl
parents:
diff changeset
70 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
71
616666e2f34c initial version
carl
parents:
diff changeset
72 <refsect1 id='usage.1'>
616666e2f34c initial version
carl
parents:
diff changeset
73 <title>Usage</title>
616666e2f34c initial version
carl
parents:
diff changeset
74 <para><command>@PACKAGE@</command> -c</para>
4
311e331f1bab initial version
carl
parents: 0
diff changeset
75 <para><command>@PACKAGE@</command> -d 10 -p local:sm-archive.sock</para>
0
616666e2f34c initial version
carl
parents:
diff changeset
76 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
77
616666e2f34c initial version
carl
parents:
diff changeset
78 <refsect1 id='installation.1'>
616666e2f34c initial version
carl
parents:
diff changeset
79 <title>Installation</title>
616666e2f34c initial version
carl
parents:
diff changeset
80 <para>
616666e2f34c initial version
carl
parents:
diff changeset
81 This is now a standard GNU autoconf/automake installation, so the normal
616666e2f34c initial version
carl
parents:
diff changeset
82 "./configure; make; su; make install" works. "make chkconfig" will
616666e2f34c initial version
carl
parents:
diff changeset
83 setup the init.d runlevel scripts. Alternatively, you can use the
616666e2f34c initial version
carl
parents:
diff changeset
84 source or binary RPMs at <ulink
616666e2f34c initial version
carl
parents:
diff changeset
85 url="http://www.five-ten-sg.com/@PACKAGE@/packages">http://www.five-ten-sg.com/@PACKAGE@/packages</ulink>.
616666e2f34c initial version
carl
parents:
diff changeset
86 </para>
616666e2f34c initial version
carl
parents:
diff changeset
87 <para>
616666e2f34c initial version
carl
parents:
diff changeset
88 Note that this has ONLY been tested on Linux, specifically RedHat Linux.
616666e2f34c initial version
carl
parents:
diff changeset
89 You will need at a minimum a C++ compiler with a
616666e2f34c initial version
carl
parents:
diff changeset
90 minimally thread safe STL implementation. The distribution includes a
616666e2f34c initial version
carl
parents:
diff changeset
91 test.cpp program. If it fails this milter won't work. If it passes,
616666e2f34c initial version
carl
parents:
diff changeset
92 this milter might work.
616666e2f34c initial version
carl
parents:
diff changeset
93 </para>
616666e2f34c initial version
carl
parents:
diff changeset
94 <para>
616666e2f34c initial version
carl
parents:
diff changeset
95 Modify your sendmail.mc by adding
616666e2f34c initial version
carl
parents:
diff changeset
96 the following line in your sendmail.mc and rebuild the .cf file
616666e2f34c initial version
carl
parents:
diff changeset
97 </para>
616666e2f34c initial version
carl
parents:
diff changeset
98 <para><screen>INPUT_MAIL_FILTER(`sm-archive', `S=local:/var/run/sm-archive/sm-archive.sock, F=T, T=C:30s;S:5m;R:5m;E:5m')</screen></para>
616666e2f34c initial version
carl
parents:
diff changeset
99 <para>
616666e2f34c initial version
carl
parents:
diff changeset
100 Modify the default <citerefentry>
616666e2f34c initial version
carl
parents:
diff changeset
101 <refentrytitle>@PACKAGE@.conf</refentrytitle> <manvolnum>5</manvolnum>
616666e2f34c initial version
carl
parents:
diff changeset
102 </citerefentry> configuration.
616666e2f34c initial version
carl
parents:
diff changeset
103 </para>
616666e2f34c initial version
carl
parents:
diff changeset
104 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
105
616666e2f34c initial version
carl
parents:
diff changeset
106 <refsect1 id='configuration.1'>
616666e2f34c initial version
carl
parents:
diff changeset
107 <title>Configuration</title>
616666e2f34c initial version
carl
parents:
diff changeset
108 <para>
616666e2f34c initial version
carl
parents:
diff changeset
109 The configuration file is documented in <citerefentry>
616666e2f34c initial version
carl
parents:
diff changeset
110 <refentrytitle>@PACKAGE@.conf</refentrytitle> <manvolnum>5</manvolnum>
616666e2f34c initial version
carl
parents:
diff changeset
111 </citerefentry>. Any change to the config file, or any file included
616666e2f34c initial version
carl
parents:
diff changeset
112 from that config file, will cause it to be reloaded within three
616666e2f34c initial version
carl
parents:
diff changeset
113 minutes.
616666e2f34c initial version
carl
parents:
diff changeset
114 </para>
616666e2f34c initial version
carl
parents:
diff changeset
115 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
116
616666e2f34c initial version
carl
parents:
diff changeset
117 <refsect1 id='introduction.1'>
616666e2f34c initial version
carl
parents:
diff changeset
118 <title>Introduction</title>
616666e2f34c initial version
carl
parents:
diff changeset
119 <para>
616666e2f34c initial version
carl
parents:
diff changeset
120 Consider the problem of archiving all the mail sent to or from particular
616666e2f34c initial version
carl
parents:
diff changeset
121 email addresses or domains. This milter allows you to configure archive
616666e2f34c initial version
carl
parents:
diff changeset
122 mailboxes for each address or domain. It will add the address of the archive
616666e2f34c initial version
carl
parents:
diff changeset
123 mailbox to messages that pass thru this milter.
616666e2f34c initial version
carl
parents:
diff changeset
124 </para>
616666e2f34c initial version
carl
parents:
diff changeset
125 <para>
4
311e331f1bab initial version
carl
parents: 0
diff changeset
126 The archive milter reads a text configuration file (sm-archive.conf) on
0
616666e2f34c initial version
carl
parents:
diff changeset
127 startup, and whenever the config file (or any of the referenced include
616666e2f34c initial version
carl
parents:
diff changeset
128 files) is changed. The entire configuration file is case insensitive.
616666e2f34c initial version
carl
parents:
diff changeset
129 If the configuration cannot be loaded due to a syntax error, the milter
616666e2f34c initial version
carl
parents:
diff changeset
130 will log the error and quit. If the configuration cannot be reloaded
616666e2f34c initial version
carl
parents:
diff changeset
131 after being modified, the milter will log the error and send an email to
616666e2f34c initial version
carl
parents:
diff changeset
132 root from sm-archive@$hostname. You probably want to added sm-archive@$hostname
616666e2f34c initial version
carl
parents:
diff changeset
133 to your /etc/mail/virtusertable since otherwise sendmail will reject
616666e2f34c initial version
carl
parents:
diff changeset
134 that message.
616666e2f34c initial version
carl
parents:
diff changeset
135 </para>
616666e2f34c initial version
carl
parents:
diff changeset
136 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
137
616666e2f34c initial version
carl
parents:
diff changeset
138 <refsect1 id='todo.1'>
616666e2f34c initial version
carl
parents:
diff changeset
139 <title>TODO</title>
616666e2f34c initial version
carl
parents:
diff changeset
140 <para>
616666e2f34c initial version
carl
parents:
diff changeset
141 Placeholder for future ideas.
616666e2f34c initial version
carl
parents:
diff changeset
142 </para>
616666e2f34c initial version
carl
parents:
diff changeset
143 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
144
616666e2f34c initial version
carl
parents:
diff changeset
145 <refsect1 id='copyright.1'>
616666e2f34c initial version
carl
parents:
diff changeset
146 <title>Copyright</title>
616666e2f34c initial version
carl
parents:
diff changeset
147 <para>
13
75e1a9bcbc2e gpl3, add removal option for original recipients
carl
parents: 4
diff changeset
148 Copyright (C) 2007 by 510 Software Group &lt;carl@five-ten-sg.com&gt;
0
616666e2f34c initial version
carl
parents:
diff changeset
149 </para>
616666e2f34c initial version
carl
parents:
diff changeset
150 <para>
616666e2f34c initial version
carl
parents:
diff changeset
151 This program is free software; you can redistribute it and/or modify it
616666e2f34c initial version
carl
parents:
diff changeset
152 under the terms of the GNU General Public License as published by the
13
75e1a9bcbc2e gpl3, add removal option for original recipients
carl
parents: 4
diff changeset
153 Free Software Foundation; either version 3, or (at your option) any
0
616666e2f34c initial version
carl
parents:
diff changeset
154 later version.
616666e2f34c initial version
carl
parents:
diff changeset
155 </para>
616666e2f34c initial version
carl
parents:
diff changeset
156 <para>
616666e2f34c initial version
carl
parents:
diff changeset
157 You should have received a copy of the GNU General Public License along
616666e2f34c initial version
carl
parents:
diff changeset
158 with this program; see the file COPYING. If not, please write to the
616666e2f34c initial version
carl
parents:
diff changeset
159 Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
616666e2f34c initial version
carl
parents:
diff changeset
160 </para>
616666e2f34c initial version
carl
parents:
diff changeset
161 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
162
616666e2f34c initial version
carl
parents:
diff changeset
163 <refsect1 id='version.1'>
616666e2f34c initial version
carl
parents:
diff changeset
164 <title>CVS Version</title>
616666e2f34c initial version
carl
parents:
diff changeset
165 <para>
616666e2f34c initial version
carl
parents:
diff changeset
166 $Id$
616666e2f34c initial version
carl
parents:
diff changeset
167 </para>
616666e2f34c initial version
carl
parents:
diff changeset
168 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
169 </refentry>
616666e2f34c initial version
carl
parents:
diff changeset
170
616666e2f34c initial version
carl
parents:
diff changeset
171
616666e2f34c initial version
carl
parents:
diff changeset
172 <refentry id="@PACKAGE@.conf.5">
616666e2f34c initial version
carl
parents:
diff changeset
173 <refentryinfo>
13
75e1a9bcbc2e gpl3, add removal option for original recipients
carl
parents: 4
diff changeset
174 <date>2007-08-25</date>
0
616666e2f34c initial version
carl
parents:
diff changeset
175 </refentryinfo>
616666e2f34c initial version
carl
parents:
diff changeset
176
616666e2f34c initial version
carl
parents:
diff changeset
177 <refmeta>
616666e2f34c initial version
carl
parents:
diff changeset
178 <refentrytitle>@PACKAGE@.conf</refentrytitle>
616666e2f34c initial version
carl
parents:
diff changeset
179 <manvolnum>5</manvolnum>
616666e2f34c initial version
carl
parents:
diff changeset
180 <refmiscinfo>@PACKAGE@ @VERSION@</refmiscinfo>
616666e2f34c initial version
carl
parents:
diff changeset
181 </refmeta>
616666e2f34c initial version
carl
parents:
diff changeset
182
616666e2f34c initial version
carl
parents:
diff changeset
183 <refnamediv id='name.5'>
616666e2f34c initial version
carl
parents:
diff changeset
184 <refname>@PACKAGE@.conf</refname>
616666e2f34c initial version
carl
parents:
diff changeset
185 <refpurpose>configuration file for @PACKAGE@ sendmail milter</refpurpose>
616666e2f34c initial version
carl
parents:
diff changeset
186 </refnamediv>
616666e2f34c initial version
carl
parents:
diff changeset
187
616666e2f34c initial version
carl
parents:
diff changeset
188 <refsynopsisdiv id='synopsis.5'>
616666e2f34c initial version
carl
parents:
diff changeset
189 <title>Synopsis</title>
616666e2f34c initial version
carl
parents:
diff changeset
190 <cmdsynopsis>
616666e2f34c initial version
carl
parents:
diff changeset
191 <command>@PACKAGE@.conf</command>
616666e2f34c initial version
carl
parents:
diff changeset
192 </cmdsynopsis>
616666e2f34c initial version
carl
parents:
diff changeset
193 </refsynopsisdiv>
616666e2f34c initial version
carl
parents:
diff changeset
194
616666e2f34c initial version
carl
parents:
diff changeset
195 <refsect1 id='description.5'>
616666e2f34c initial version
carl
parents:
diff changeset
196 <title>Description</title>
616666e2f34c initial version
carl
parents:
diff changeset
197 <para>The <command>@PACKAGE@.conf</command> configuration file is
616666e2f34c initial version
carl
parents:
diff changeset
198 specified by this partial bnf description.</para>
616666e2f34c initial version
carl
parents:
diff changeset
199
616666e2f34c initial version
carl
parents:
diff changeset
200 <literallayout class="monospaced"><![CDATA[
616666e2f34c initial version
carl
parents:
diff changeset
201 CONFIG = {ENV-FROM ENV-TO}+
616666e2f34c initial version
carl
parents:
diff changeset
202 ENV-FROM = env_from "{" LIST "}" ";"
616666e2f34c initial version
carl
parents:
diff changeset
203 ENV-TO = rcpt_to "{" LIST "}" ";"
616666e2f34c initial version
carl
parents:
diff changeset
204 LIST = ELEMENT {LIST}+
13
75e1a9bcbc2e gpl3, add removal option for original recipients
carl
parents: 4
diff changeset
205 ELEMENT = ADDRESS TARGET ["remove"] ";"
0
616666e2f34c initial version
carl
parents:
diff changeset
206 ADDRESS = (USER@ | DOMAIN | USER@DOMAIN)
616666e2f34c initial version
carl
parents:
diff changeset
207 TARGET = ("" | USER@DOMAIN)
616666e2f34c initial version
carl
parents:
diff changeset
208 };]]></literallayout>
616666e2f34c initial version
carl
parents:
diff changeset
209 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
210
616666e2f34c initial version
carl
parents:
diff changeset
211 <refsect1 id='sample.5'>
616666e2f34c initial version
carl
parents:
diff changeset
212 <title>Sample</title>
616666e2f34c initial version
carl
parents:
diff changeset
213 <literallayout class="monospaced"><![CDATA[
616666e2f34c initial version
carl
parents:
diff changeset
214 env_from {
616666e2f34c initial version
carl
parents:
diff changeset
215 fred@example.com manager@example.com;
616666e2f34c initial version
carl
parents:
diff changeset
216 example.com archive@example.com;
616666e2f34c initial version
carl
parents:
diff changeset
217 joe@example.com ""; # suppress archiving for joe
616666e2f34c initial version
carl
parents:
diff changeset
218 };
616666e2f34c initial version
carl
parents:
diff changeset
219
616666e2f34c initial version
carl
parents:
diff changeset
220 rcpt_to {
616666e2f34c initial version
carl
parents:
diff changeset
221 fred@example.com manager@example.com;
13
75e1a9bcbc2e gpl3, add removal option for original recipients
carl
parents: 4
diff changeset
222 other@example.com manager@example.com remove; // other does not get a copy
0
616666e2f34c initial version
carl
parents:
diff changeset
223 };
616666e2f34c initial version
carl
parents:
diff changeset
224
616666e2f34c initial version
carl
parents:
diff changeset
225 };]]></literallayout>
616666e2f34c initial version
carl
parents:
diff changeset
226 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
227
616666e2f34c initial version
carl
parents:
diff changeset
228 <refsect1 id='version.5'>
616666e2f34c initial version
carl
parents:
diff changeset
229 <title>CVS Version</title>
616666e2f34c initial version
carl
parents:
diff changeset
230 <para>
616666e2f34c initial version
carl
parents:
diff changeset
231 $Id$
616666e2f34c initial version
carl
parents:
diff changeset
232 </para>
616666e2f34c initial version
carl
parents:
diff changeset
233 </refsect1>
616666e2f34c initial version
carl
parents:
diff changeset
234
616666e2f34c initial version
carl
parents:
diff changeset
235 </refentry>
616666e2f34c initial version
carl
parents:
diff changeset
236 </reference>