exim.txt
changeset 0 1a57317575ca
child 1 8ca8d1b61947
equal deleted inserted replaced
-1:000000000000 0:1a57317575ca
       
     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.