Fixes default tip
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Sun, 05 Jul 2015 23:40:51 +0200
changeset 24 5898f11d12c0
parent 23 49b311800e28
Fixes
short.conf
short.txt
--- a/short.conf	Sun Jul 05 22:52:36 2015 +0200
+++ b/short.conf	Sun Jul 05 23:40:51 2015 +0200
@@ -25,5 +25,5 @@
 
 [macros]
 (?u)\b(i):(?P<target>[\$\w]+)=eximvar[]
-(?u)\b(o):(?P<target>\w+)=eximopt[]
+(?u)\b(o):(?P<target>[.\w]+)=eximopt[]
 (?u)\b(d):(?P<target>\w+)=eximdriver[]
--- a/short.txt	Sun Jul 05 22:52:36 2015 +0200
+++ b/short.txt	Sun Jul 05 23:40:51 2015 +0200
@@ -17,15 +17,6 @@
 == Typografische Konventionen
 
 
-////
-_italic_::
-    Namen von Dateien, Programmen, Hosts, Domains, Mail-Header, URLS: _example.com_, _From:_
-o:fixed::
-    Kommandos, Code-Beispiele, Exim-Konfigurations-Optionen: o:primary_hostname
-*+fixed bold+*::
-    Hervorhebung von Kommandos, Nutzereingaben: *+exim -bV+*
-////
-
 d:bold::
     Exim Treibernamen im Text: Der driver:dnslookup Router
 
@@ -43,15 +34,14 @@
 <<editme,Build Konfiguration>> und die <<runtime,Runtime Konfiguration>>.
 
 [[editme]]
-== Build-Konfiguration _EDITME_
+=== Build-Konfiguration _EDITME_
 
 * Maintainer pflegt die _EDITME_
 * Je nach Distro unterschiedliche Konfigurationen, teilweise sogar 
 mehrere, wie 'fat', 'light', 'heavy'.
+* Wesentliche Daten der Features aus der Build-Konfiguration:
 
- $ exim -bV
-
-listet wesentliche in der Buildkonfiguration gewählte Features auf.
+ exim -bV
 
 [[runtime]]
 === Runtime-Konfiguration _exim.conf_
@@ -61,7 +51,7 @@
 
 Das verwendete File läßt sich ermitteln mit:
 
- $ exim -bP configure_file
+ exim -bP configure_file
 
 Das aktive Konfigurationsfile kann auch auf der Kommandozeile festgelegt
 werden. Für einige Operationen muss der Pfad ein absoluter sein.  Auch
@@ -79,14 +69,7 @@
 und eventuell über o:.include eingelesener Files
 ist statisch. Dynamisch sind dann Expansionen, Lookups.
 
-=== Syntax
-
-Der Parser der Konfigurationsdatei ist ziemlich einfach.
-
-. Kommentarzeilen werden entfernt
-. Führende und anhängige Leerzeichen werden entfernt
-. Forsetzungszeilen („\“ am Zeilenende) werden zusammengefasst
-. einfache Syntax-Checks
+== Aufbau der Runtime-Konfiguration _exim.conf_
 
 Die Konfiguration besteht aus mehreren Abschnitten. Nicht alle Abschnitte
 sind identisch aufgebaut.
@@ -108,7 +91,12 @@
 Authentifizierung::
     Parameter für die SMTP-Authentifizierung (sowohl Client als auch Server)
 
-== Syntax der Konfiguration
+== Syntax der Runtime-Konfiguration _exim.conf_
+
+. Führende und anhängige Leerzeichen werden entfernt
+. Kommentarzeilen werden entfernt
+. Forsetzungszeilen („\“ am Zeilenende) werden zusammengefasst
+. Macros werden ersetzt
 
 === Kommentare
 
@@ -119,7 +107,7 @@
 
 * Macros werden generell groß geschrieben.
 * Macros sind ein einfache  statischer Textersetzungsmechanismus (im Sinne
-* globaler „Konstanten“) und für das
+  globaler „Konstanten“) und für das
   bedingte Parsen von Konfigurationsteilen. 
 * Macros können in der Konfiguration definiert werden, aber
   auch auf der Kommandozeile. (Auf der Kommandozeile gibt es jedoch wegen eventueller Sicherheitsimplikationen
@@ -142,14 +130,15 @@
 
  exim -DTESTING -DTRANSPORT=foo …
 
-Macros können neu definiert werden („==“ statt „=“). Macros von der Kommandozeile haben Vorrang.
+* Macros können neu definiert werden („==“ statt „=“). 
+* Macros von der Kommandozeile haben Vorrang.
 
 === Optionen
 
 * Optionen werden generell klein geschrieben.
 * Es gibt ca. 250 globale Optionen, hinzu kommen noch weitere Optionen für Router,
 Transports, Authenticators, usw.
-* Optionen haben einen bestimmten <<types,Datentyp>>. 
+* Optionen haben einen Werte von bestimmten <<types,Datentypen>>. 
 
 .Beispiel
  primary_hostname = foo.example.com
@@ -171,12 +160,12 @@
  hostlist trusted_hosts = 192.168.0.0/24 : 127.0.0.1
 
 Mail-Adressen::
-    Mailadressen
+    Mail-Adressen von Absender oder Empfänger
 
  addresslist blocked_senders = ad@bestholiday.de : *@mailgun.com
 
 Local Parts::
-    Local Parts von Mail-Adressen, z.B. von ACL-Checks ausgenommene lokale Empfänger 
+    Local Parts von Mail-Adressen
 
  localpartlist rfc = postmaster : abuse
 
@@ -190,12 +179,15 @@
 .Beispiel Debugging
  exim -bP +local_domains
 
-=== Instanzen von Routern, Transports, Authentificators
+=== Instanzen von Routern, Transports, Authenticators
 
-* Router, Transports und Authenificators werden in einzelnen „Funktionsblöcken“ definiert.  
-* Diese Blöcke haben selbstgewählte Namen und eine Liste von
-  Optionen, die das Verhalten des jeweiligen Routers, Transports oder
-  Authenticators bestimmen.
+* Router, Transports und Authenticators werden in einzelnen „Funktionsblöcken“ definiert.  
+* Diese Blöcke haben selbstgewählte Namen, einen Treiber, der das generelle
+  Verhalten des Blocks festlegt und Optionen,
+  die das Verhalten des jeweiligen Routers, Transports oder
+  Authenticators weiter bestimmen.
+* _Generische_ Optionen gelten für alle Router, Transports
+* Jeder Treiber hat zusätzlich spezifische Optionen
 
 .Beispiel
  begin transports
@@ -211,11 +203,11 @@
 [[types]]
 == Werte und ihre Typen
 
-ALle Optionen der Konfigurationsdatei haben einen spezifischen Daten-Typ.
+Alle Optionen der Konfigurationsdatei haben einen spezifischen Daten-Typ.
 
 * _bool_, _integer_, _fixed-point_, _time_ und _string_
 * Listen sind immer String-Listen
-* Werte, die der Expansion unterliegen, sind immer vom Typ _string_
+* Werte, die der späteren Expansion unterliegen, sind immer vom Typ _string_
 
 
 === Bool
@@ -223,8 +215,7 @@
 Werte vom Typ _bool_ sind einfache Schalter.
 
 .Format 
- <option> = true|yes
- <option> = false|no
+ ... = true|yes|false|no
  <option>
  no_<option>
  not_<option>
@@ -241,17 +232,17 @@
 
 .Format
   … = <digits>[<suffix>]
-        = 0<oct digts>[<suffix>]
-        = 0x<hex digts>[<suffix>]
+  … = 0<oct digts>[<suffix>]
+  … = 0x<hex digts>[<suffix>]
 
 Erlaubte Suffixe sind 'K' (2^10^) und 'M' (2^20^).
 
 .Beipiel
  check_spool_space = 10M
 
-=== Fixed-Point
+=== Festkomma-Zahlen
 
-Fixkomma-Zahlen, maximal 3 Nachkommastellen
+Festkomma-Zahlen, maximal 3 Nachkommastellen
 
 .Format
  … = <digits>[.<max 3 digits>]
@@ -274,11 +265,9 @@
 .Beispiel
  auto_thaw = 3d12h
 
-CAUTION: Bei der Ausgabe von Intervall-Optionen werden die Zeiten normalisiert.
-
 === Zeichenketten
 
-* Zeichenketten gibt es in zwei Formen: Literale Zeichenketten und gequotete
+* Zeichenketten gibt es in zwei Formen: *literale* Zeichenketten und *gequotete*
   Zeichenketten..
 * Zeichenketten, die später noch expandiert werden, werden _immer_ als gequotete
   Zeichenketten behandelt.
@@ -335,8 +324,11 @@
 
 * Reguläre Ausdrücke werden durch 'libpcre' ausgewertet, sie sind also kompatibel
   mit den von Perl bekannten regulären Ausdrücken. 
-* Reguläre Ausdrücke werden immer zuerst als String evaluiert, eventuelle Backslash-Sequenzen müssen also ggf. geschützt
+* Reguläre Ausdrücke werden immer zuerst als String evaluiert und normalerweise
+  dort, wo Expansion stattfindet, eventuelle Backslash-Sequenzen müssen also ggf. geschützt
   werden.
+* Dort wo Reguläre Ausdrücke mit anderen Syntaxelementen verwechselt werden
+  könnten, beginnen sie zwingend mit „^“.
 
 .Format
  … = ^<regexp>
@@ -350,11 +342,11 @@
 
 == Expansion von Zeichenketten
 
-* Viele Stellen der Konfiguration verwenden String-Expansion (Typ 'string*' im
-_spec.txt_). String-Expansion wird von '$' getriggert.  Das Ergebnis ist dann
-ein neuer String oder 'forced failure'. 
-* Die Expansion der Strings erfolgt in der Regel erst im Bedarfsfall („late
-binding“). 
+* Viele Stellen der Konfiguration verwenden Zeichenketten-Expansion (Typ 'string*' im
+_spec.txt_). Zeichenketten-Expansion wird von '$' getriggert.  Das Ergebnis ist dann
+ein neuer String oder 'forced failure', dieses ist vergleichbar mit 'undef' oder
+'NULL'.
+* Die Expansion der Strings erfolgt erst im Bedarfsfall („late binding“). 
 
 CAUTION: Es stehen aber nicht in jeder Phase alle Expansions-Items zur Verfügung. (z.B.
 wird der Wert der globalen Option o:message_size_limit expandiert, aber bereits
@@ -373,9 +365,11 @@
 
 === Expansions-Items
 
-* Aus Sicht des Expanders ist alles, was mit einem '$' beginnt, ein
+* Aus Sicht des Expanders ist jedes Token, das mit einem '$' beginnt, ein
 Expansions-Item.
 
+Diese Expansions-Items lassen sich unterteilen:
+
 Variablen::
     Das sind operative Parameter, Information über die aktuelle Nachricht,
     den aktuellen Systemzustand, Rückgabewerte.
@@ -453,8 +447,8 @@
 
 * Der Key ergibt sich aus dem Kontext, das Lookup wird dennoch durch den
   String-Expander behandelt. Wenn das Lookup erfolgreich ist, wird als Resultat
-  der Key zurückgeliefert, nicht ein eventuell vorhandener Wert!
-* Analogie: +exists($key) ? $key : ''+
+  der Key zurückgeliefert, und *nicht* ein eventuell vorhandener Wert!
+* Analogie: ++exists($key) ? $key : ''++
 
 .Format
  … = <type>;<file> 
@@ -468,7 +462,7 @@
 
 ==== Single Key
 
-Single-Key Lookups beziehen sich auf einfach (und meist schnelle) Key/Value
+Single-Key Lookups beziehen sich auf einfache (und meist schnelle) Key/Value
 Daten. Das sind Dateien im Format der _/etc/aliases_, das sind Verzeichnisse und
 DBM-Files.
 http://www.exim.org/exim-html-current/doc/html/spec_html/ch-file_and_database_lookups.html#SECTsinglekeylookups[spec]
@@ -655,6 +649,18 @@
 entscheiden und dann die SMTP-Verbindung mit 5xx zu beenden. Damit bleibt die
 Verantwortung für die Bounce beim Absender.
 
+.Beispiel
+
+ acl_check_recipient:
+
+   accept local_parts = postmaster
+          domains     = +local_domains
+
+   require message    = sender verification failed
+           verify     = sender
+
+   …
+
 == Router
 
 Im Router-Abschnitt wird durch einzelne Blöcke das Routing-Verhalten gesteuert.
@@ -672,7 +678,7 @@
     case FAIL:        generate bounce
     case DEFER:       back to queue
     case DECLINE:     if (more?) goto NEXT ROUTER
-                      generate bounce
+    default:          generate bounce
 
 .Beispiel
  external:                       
@@ -805,11 +811,10 @@
 
 === Prozesse
 
-Mit
+Für eine gute Übersicht über die aktuellen Aktivitäten des Exim:
 
  exiwhat
 
-erhält man eine gute Übersicht über die aktuellen Aktivitäten des Exim.
 
 === Queue
 
@@ -902,7 +907,8 @@
 
 'exim_tidydb'::
     Wird regelmäßig über Cron aufgerufen um die Inhalte der Datenbankfiles
-    aufzuräumen. Die Files werden dabei nicht zwangsläufig kleiner!
+    aufzuräumen. Die Files werden dabei nicht zwangsläufig kleiner, aber
+    es werden alte Einträge gelöscht.
 
 
 == Debugging
@@ -921,8 +927,8 @@
 
 Teile der Konfiguration können mit:
 
+ exim -bP 
  exim -bP <option>
- exim -bP 
  exim -bP transports
  exim -bP routers
 
@@ -931,12 +937,11 @@
 === Routing im Trockentest
 
 Das nützlichste Werkzeug ist sicher der Routing-Trockentest.
-Mit
+Ein Address-Test kann gestartet werden. Das entspricht dem Routing-Vorgang:
 
  exim -bt <address> 
 
-wird ein Address-Test gemacht. Das entspricht dem Routing-Vorgang. Im
-Unterschied zum echten Routing-Vorgang stehen diesem Test aber keine
+IUnterschied zum echten Routing-Vorgang stehen diesem Test aber keine
 Header-Daten zur Verfügung. Die Absender-Adresse kann mit _-f <sender>_
 eingesetzt werden:
 
@@ -1005,6 +1010,10 @@
 
  exim -be <string>
 
+Ohne die Angabe eines zu expandierenden Strings wird eine interaktive
+Expander-Sitzung gestaret, wenn der Exim mit Readline-Unterstützung übersetzt
+wurde, steht diese hier zur Verfügung.
+
 .Beispiel
  exim -be '${lookup{root}lsearch{/etc/aliases}}'