1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="mailman-admin.css" type='text/css' />
<link rel="first" href="mailman-admin.html" title='GNU mailman - list Administration Manual' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="prev" href="node6.html" />
<link rel="parent" href="node3.html" />
<link rel="next" href="node8.html" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name='aesop' content='information' />
<title>1.4 Basic Architectural Overview</title>
</head>
<body>
<div class="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="1.3 a List's Web"
href="node6.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="1 introduction to GNU"
href="node3.html"><img src='up.png'
border='0' height='32' alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="2 the List Configuration"
href="node8.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">GNU Mailman - List Administration Manual</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></a></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="node6.html">1.3 A List's Web</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="node3.html">1 Introduction to GNU</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="node8.html">2 The List Configuration</a>
</div>
<hr /></div>
</div>
<!--End of Navigation Panel-->
<h2><a name="SECTION002140000000000000000">
1.4 Basic Architectural Overview</a>
</h2>
<p>
This section will outline the basic architecture of GNU Mailman, such
as how messages are processed by the sytem. Without going into lots
of detail, this information will help you understand how the
configuration options control Mailman's functionality.
<p>
When mail enters the system from your mail server, it is dropped into
one of several Mailman <em>queues</em> depending on the address the
message was sent to. For example, if your system has a mailing list
named <var>mylist</var> and your domain is <var>example.com</var>, people can
post messages to your list by sending them to
<var>mylist@example.com</var>. These messages will be dropped into the
<em>incoming</em> queue, which is also colloquially called the
<em>moderate-and-munge</em> queue. The incoming queue is where most of
the approval process occurs, and it's also where the message is
prepared for sending out to the list membership.
<p>
There are separate queues for the built-in archiver, the bounce
processor, the email command processor, as well as the outgoing email
and news queues. There's also a queue for messages generated by the
Mailman system. Each of these queues typically has one <em>queue
runner</em> (or ``qrunner'') that processes messages in the queue. The
qrunners are idle when there are no messages to process.
<p>
Every message in the queues is represented by two files, a message
file and a metadata file. Both of these files share the same base
name, which is a combination of a unique hash and the Unix time that
the message was received. The metadata file has a suffix of
<span class="file">.db</span> and the message file has a suffix of either <span class="file">.msg</span> if
stored in plain text, or <span class="file">.pck</span> if stored in a more efficient
internal representation<a name="tex2html1"
href="#foot39"><sup>1</sup></a>.
<p>
As a message moves through the incoming queue, it performs various
checks on the message, such as whether it matches one of the
moderation criteria, or contains disallowed MIME types. Once a
message is approved for sending to the list membership, the message is
prepared for sending by deleting, adding, or changing message headers,
adding footers, etc. Messages in the incoming queue may also be
stored for appending to digests.
<p>
<br><hr><h4>Footnotes</h4>
<dl>
<dt><a name="foot39">... representation</a><A
HREF="node7.html#tex2html1"><sup>1</sup></a></dt>
<dd>Specifically, a Python pickle
</dd>
</dl>
<div class="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="1.3 a List's Web"
href="node6.html"><img src='previous.png'
border='0' height='32' alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="1 introduction to GNU"
href="node3.html"><img src='up.png'
border='0' height='32' alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="2 the List Configuration"
href="node8.html"><img src='next.png'
border='0' height='32' alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">GNU Mailman - List Administration Manual</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
href="contents.html"><img src='contents.png'
border='0' height='32' alt='Contents' width='32' /></a></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
border='0' height='32' alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="node6.html">1.3 A List's Web</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="node3.html">1 Introduction to GNU</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="node8.html">2 The List Configuration</a>
</div>
</div>
<hr />
<span class="release-info">Release 2.1, documentation updated on January 11, 2020.</span>
</div>
<!--End of Navigation Panel-->
</body>
</html>
|