config.txt
changeset 1 8ca8d1b61947
child 2 130fc78aac2a
equal deleted inserted replaced
0:1a57317575ca 1:8ca8d1b61947
       
     1 = Konfiguration =
       
     2 
       
     3 Die Konfigurationsdatei des Exim ist der „magischste“ Teil des Exim.
       
     4 Viele Einstellungen in der Konfiguration werden erst zur Laufzeit
       
     5 interpretiert.  Ein Test, ob die Konfiguration syntaktisch
       
     6 korrekt ist, lässt sich ausführen mit:
       
     7 
       
     8  > exim -bV
       
     9 
       
    10 Syntaktische Korrektheit allein ist jedoch nicht ausreichend. Fehler
       
    11 können auch später, z.B. durch durch <<expansion,Text-Expansion>>, auftreten.
       
    12 
       
    13 == Konfigurationsdatei
       
    14 
       
    15 Exim sucht beim Start nach genau einer Konfigurationsdatei.
       
    16 Je nach Build können mehrere Stellen in Frage kommen. Der Name der
       
    17 verwendeten Konfigurationsdatei läßt sich ermitteln:
       
    18 
       
    19  > exim -bP configure_file
       
    20 
       
    21 Alternativ kann dem Exim auch der Name einer Konfigurationsdatei auf der
       
    22 Kommandozeile übergeben werden. Jedoch wird Exim einer solchen
       
    23 Konfiguration nur bedingt vertrauen und unter Umständen sofort auf seine
       
    24 setuid-Eigenschaften verzichten.
       
    25 
       
    26 Diese eine Konfigurationsdatei kann `.include`-Anweisungen enthalten, um
       
    27 weitere Teile einzulesen.
       
    28 
       
    29 === Syntax der Konfigurationsdatei
       
    30 
       
    31 TIP: Eine leere Datei ist eine gültige Konfigurationsdatei, aber nicht
       
    32 zwingend eine brauchbare Konfiguration. Für kurze Tests ist dieser Fakt
       
    33 aber sehr brauchbar. Z.B: `exim -C /dev/null -bP primary_hostname`, um
       
    34 Exims Vorstellung über den aktuellen Hostnamen zu überprüfen.
       
    35 
       
    36 Es gelten folgende einfache Regeln beim Lesen der Konfiguration:
       
    37 
       
    38 .Whitespace
       
    39 Leer- und Tabulatorzeichen am Zeilenanfang und -ende werden ignoriert.
       
    40 
       
    41 .Kommentare
       
    42 Zeilen, die mit `#` beginnen, werden ignoriert. Wird an anderen Stellen
       
    43 ein `#` verwendet, hat dieses Zeichen *nicht* die Bedeutung eines
       
    44 Kommentarzeichens.
       
    45 
       
    46 .Fortsetzungzeilen
       
    47 Zeilen, die mit einem `\` enden, werden durch die Folgezeile fortgesetzt, 
       
    48 der Zeilenumbruch wird dabei entfernt.
       
    49 
       
    50 .Macrodefinitionen
       
    51 // spec:6.4
       
    52 Macros werden häufig verwendet, um sehr lange Konfigurationsausdrücke zu
       
    53 vereinfachen.  Makros ermöglichen eine einfach Textersetzung beim
       
    54 *Einlesen* der Konfiguration:
       
    55 
       
    56 ----
       
    57 FOO = foo   <1>
       
    58 FOO == bar  <2>
       
    59 ----
       
    60 <1> Definition des Macros
       
    61 <2> Neu-Definition des Macros
       
    62 
       
    63 Macros können auf der Kommandozeile mit `-DFOO=foobar` gesetzt werden.
       
    64 
       
    65 .Einbettung weiterer Files
       
    66 In das Hauptkonfigurations-File können weitere Dateien eingebetten
       
    67 werden:
       
    68 
       
    69 ----
       
    70 .include other/file
       
    71 ----
       
    72 
       
    73 Eine bedingte Einbettung ist mit `.include_if_exists` möglich.
       
    74 
       
    75 .Bedingtes Einlesen
       
    76 // spec:6.9
       
    77 In Abhängigkeit von definierten Macros können Teile der
       
    78 Konfigurationsdatei überprungen werden:
       
    79 
       
    80 ----
       
    81 .ifdef FOO
       
    82 primary_hostname = foo
       
    83 .endif
       
    84 ----
       
    85 
       
    86 Verwendbar sind `.ifdef`, `.ifndef`, `.elifdef`, `.elifndef`,
       
    87 `.else` und `.endif`. Dies Auswertung erfolgt während des Einlesens der
       
    88 Konfiguration, also noch *vor* dem Start des Exim.
       
    89 
       
    90 [[config.structure]]
       
    91 === Aufbau der Konfigurationsdatei
       
    92 
       
    93 Die Konfiguration ist entsprechend der Funktionsweise des Exim neben dem
       
    94 globalen Teil in mehrere Abschnitte gegliedert:
       
    95 
       
    96 ACL::
       
    97     Access Control Lists steuern während einer eingehenden Verbindung
       
    98     die Akzeptanz der Nachricht
       
    99 
       
   100 Routers::
       
   101     Router sind Regeln, nach denen die Nachrichten weitergeleitet
       
   102     werden.
       
   103 
       
   104 Transports::
       
   105     Im Transports-Abschnit wird festgelegt, wie die Nachrichten
       
   106     weitergeleitet werden.
       
   107 
       
   108 Rewrite::
       
   109     In diesem Abschnitt sind die Regeln beschrieben, nach denen
       
   110     Adress-Umschreibungen vorgenommen werden sollen.
       
   111 
       
   112 Authentication::
       
   113     Konfiguration der Authentifizierungsparameter als Client und als
       
   114     Server
       
   115