annotate thesis/tex/4-MasqmailsFuture.tex @ 131:a496788a30b3

bib stuff: Ref on the Internet -> Websites
author meillo@marmaro.de
date Wed, 10 Dec 2008 08:32:12 +0100
parents 5a122d28f1ca
children a83a29e10b10
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
109
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
1 \chapter{\masqmail's present and future}
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
2
99
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
3 << plans to get masqmail more popular again (if that is the goal) >> %FIXME
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
4
129
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
5 architecture:
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
6 (ssl) -> msg-in (local or remote protocol handlers) -> spam-filter (and more) -> queue -> msg-out (local-delivery by MDA, or remote-protocol-handlers) -> (ssl)
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
7
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
8
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
9 http://fanf.livejournal.com/50917.html %how not to design an mta - the sendmail command
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
10 http://fanf.livejournal.com/51349.html %how not to design an mta - partitioning for security
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
11 http://fanf.livejournal.com/61132.html %how not to design an mta - local delivery
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
12 http://fanf.livejournal.com/64941.html %how not to design an mta - spool file format
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
13 http://fanf.livejournal.com/65203.html %how not to design an mta - spool file logistics
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
14 http://fanf.livejournal.com/65911.html %how not to design an mta - more about log-structured MTA queues
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
15 http://fanf.livejournal.com/67297.html %how not to design an mta - more log-structured MTA queues
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
16 http://fanf.livejournal.com/70432.html %how not to design an mta - address verification
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
17 http://fanf.livejournal.com/72258.html %how not to design an mta - content scanning
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
18
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
19
5a122d28f1ca moved some comment lines
meillo@marmaro.de
parents: 117
diff changeset
20
99
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
21 << concrete decisions based on results of the last 2 chapters >> %FIXME
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
22
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
23 \section{Existing features}
117
098bd0876934 worked on ch03 (MTAs)
meillo@marmaro.de
parents: 109
diff changeset
24 This overview regards \masqmail\ version 0.2.21, the state this document starts off.
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
25
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
26 First of all \masqmail\ is an \MTA. Therefor it accepts mail on the command line and via \SMTP. Mail queueing and alias expansion is supported. \masqmail\ is able to deliver mail to local mailboxes (in \name{mbox} or \name{maildir} format) or pass it to a \name{mail delivery agent} (like \name{procmail}). Mail destinated to remote locations is sent via \SMTP. Outgoing \SMTP\ connections feature \name{SMTP-Auth} and \name{SMTP-after-POP} authentication, but incoming \SMTP\ does not.
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
27
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
28 As \masqmail\ is focused on non-permanent Internet connections, online state can be queried by three methods: reading from a file, reading the output of a command, or by asking an \name{mserver}. Each method may return a string indicating one of the available routes being online, or returning nothing to indicate offline state.
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
29
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
30 Delivery to recipients on the local host or in local nets is done at once; delivery to recipients on the Internet is only done when being online, and queued otherwise. Each online route may have a different mail server to which mail is relayed. Return address headers are modified appropriate if wished.
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
31
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
32 Additional to the \mta\ job, \masqmail\ also offers mail retrieval services with being a \NAME{POP3} client. Thus it can fetch mail from remote locations, dependent on the active online route.
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
33
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
34
109
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
35 \subsubsection*{masqmail stuff}
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
36
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
37 The \masqmail\ executable can be called under various names for \name{sendmail-compatibility} reasons. This is commonly organized by creating symbolic links with with different names to the \masqmail\ executable. These are \path{/usr/lib/sendmail} and \path{/usr/sbin/sendmail} because many programs expect a \mta\ to be located there. Further more \sendmail\ provides shortcuts by calling it with a different name instead of supplying command line arguments. The best known of it is \path{mailq}, which is equivilent to calling the \MTA\ with the argument \verb+-bq+. \masqmail\ reacts to the names \path{mailq}, \path{smtpd}, \path{mailrm}, \path{runq}, \path{rmail}, and \path{in.smtpd}. The last four are an addition to \sendmail. Not implemented is the name \path{newaliases} because it is not relevant to \masqmail. To provide the command nonetheless, one may write a shell script located at \path{/usr/bin/newaliases}, that simply invokes \verb+masqmail -bi+.
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
38
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
39 %masqmail: mailq, mailrm, runq, rmail, smtpd/in.smtpd
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
40 %sendmail: hoststat, mailq, newaliases, purgestat, smtpd
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
41
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
42 \masqmail\ is written in the \NAME{C} programming language. The program, as of version 0.2.21, consists of 34 source code and eight header files, containing about 9,000 lines of code\footnote{Measured with \name{sloccount} by David A.\ Wheeler.}. Additionally, it includes a \name{base64} implementation (about 300 lines) and \name{md5} code (about 150 lines). For systems that do not provide \name{libident}, this library is distributed as well (circa 600 lines); an available shared library however has higher precedence in linking.
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
43
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
44 The only mandatory dependency is \name{glib}---a cross-platform software utility library, originated in the \NAME{GTK+} project. It provides safer replacements for many standard library functions. (The unsafe \verb+sprintf()+ is one example.) Also it offers handy data containers, easy-to-use implementations of data structures, and much more.
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
45
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
46 With \masqmail\ comes the small tool \path{mservdetect}; it helps setting up a configuration that uses the \name{mserver} system to detect the online state. Two other binaries get compiled for testing purposes: \path{readtest} and \path{smtpsend}. All three programms use \masqmail\ source code; they only add a file with a \verb+main()+ function each.
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
47
de590ff06051 changes suggested by schaeffter
meillo@marmaro.de
parents: 99
diff changeset
48 \masqmail\ does not provide an interface for modules with additional functionality. There exists no add-on or module system. But the code is separated by function to the various source files, and some functional parts can be included or excluded by defining symbols. This means adding some argument (like \verb+--enable-maildir+) to the \verb+configure+ call. Thus the concerning code gets not removed by the preprocessor.
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
49
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
50
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
51 \section{Directions to go}
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
52
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
53 \subsection{\masqmail\ in five years}
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
54 \label{sec:masqmail-in-5-years}
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
55 Now how could \masqmail\ be like in, say, five years?
99
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
56
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
57 << requirements >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
58
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
59 << which parts to do >> %FIXME
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
60
99
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
61 << how to make masqmail future-safe >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
62
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
63 << how to advertise masqmail >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
64
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
65 << difference for free software >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
66
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
67 << why is it worth to revive masqmail? >> %FIXME
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
68
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
69
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
70 \subsection{A design from scratch}
99
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
71
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
72 << what would be needed (effort) >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
73
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
74 << would one create it at all? >> %FIXME
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
75
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
76 << should it be done? >> %FIXME
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
77
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
78
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
79
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
80 \section{Work to do}
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
81
99
d24fdd3d5990 added lots of comments and annotations about what to do
meillo@marmaro.de
parents: 93
diff changeset
82 << which parts to take out and do within the thesis >> %FIXME
93
a6f8a93abd64 new chapter 4 (split ch5); added lots of annotations
meillo@marmaro.de
parents:
diff changeset
83