|
1 Exim |
|
2 ==== |
|
3 Heiko Schlittermann |
|
4 :doctype: book |
|
5 |
|
6 Im folgenden nehme ich Bezug auf Exim 4.85. |
|
7 Ultimative Referenz ist immer das Spec-File, also die |
|
8 Referenzdokumentation, die den Exim begleitet. Einige Details werden |
|
9 hier ausgelassen werden. |
|
10 |
|
11 == Konfigurationsdatei |
|
12 |
|
13 Exim sucht beim Start nach genau einer Konfigurationsdatei. |
|
14 Diese lässt sich mit |
|
15 |
|
16 exim -bP configure_file |
|
17 |
|
18 anzeigen. |
|
19 |
|
20 |
|
21 === Format der Konfigurationsdatei |
|
22 |
|
23 Die Konfigurationsdatei beginnt mit einem globalen Teil, es folgen |
|
24 Abschnitte für ACL, Router, Transports, Address-Rewriting, |
|
25 Retry-Verhalten und Authentifizierung. |
|
26 |
|
27 Kommentare sind erlaubt - das sind Zeilen, die mit dem Rautenzeichen (#) |
|
28 beginnen. Vor der Raute ist lediglich Whitespace erlaubt. Rautenzeichen |
|
29 an anderen Stellen sind *kein* Kommentar. |
|
30 |
|
31 Der Parser der Konfigurationsdatei ist relativ simpel: |
|
32 |
|
33 . Kommentarzeilen werden entfernt |
|
34 . Fortsetzungszeilen werden zusammengesetzt |
|
35 |
|
36 Es ist also möglich, auch innerhalb von Fortsetzungszeilen Kommentare zu |
|
37 verwenden: |
|
38 |
|
39 ---- |
|
40 domainlist local_domains = example.com \ |
|
41 # foo bar comment |
|
42 : example.org \ |
|
43 : example.net |
|
44 ---- |
|
45 |
|
46 |
|
47 ==== Macros |
|
48 |
|
49 In der Konfigurationsdatei dürfen Macros enthalten sein. Macros bestehen |
|
50 ausschließlich aus Großbuchstaben und Ziffern. |
|
51 |
|
52 ---- |
|
53 FOOBAR = foo bar |
|
54 FOO = bar |
|
55 ---- |
|
56 |
|
57 Die Macros sind ein sehr einfacher Textersetzungsmechanismus, der |
|
58 während des Einlesens der der Konfiguration stattfindet. Die Gültigkeit |
|
59 der Macros beginnt an der Stelle ihrer Definition. Macro-Namen dürfen |
|
60 nicht in später definierten Macro-Namen enthalten sein. Eine |
|
61 Neudefinition von Macros ist jederzeit möglich: |
|
62 |
|
63 ---- |
|
64 FOO = bar |
|
65 … |
|
66 FOO == foobar |
|
67 ---- |
|
68 |
|
69 Macros, die auf der Kommandozeile beim Aufruf des Exim gesetzt werden, |
|
70 haben Vorrang vor denen, die in der Konfiguration definiert sind. Aus |
|
71 Sicherheitsgründen legt Exim aber seine setuid-Rechte ab, sobald auf der |
|
72 Kommandozeile Macros definiert sind. |
|
73 footnote:[Mit Ausnahme von Macros, die in einer zur Build-Zeit |
|
74 definierten Whitelist stehen.] |
|
75 |
|
76 exim -DFOO=bar … |
|
77 |
|
78 ==== Includes |
|
79 |
|
80 Die Konfigurationsdatei darf weitere Konfigurationsdateien |
|
81 referenzieren. Diese werden mit `.include` oder mit |
|
82 `.include_if_exists` eingelesen. Ebenso ist ein bedingtes Lesen von |
|
83 Teilen der Konfiguration möglich: `.ifdef` erlaubt hier den Test von |
|
84 Macros. |