abstract.txt
changeset 6 4779d7083767
parent 5 2994ba652074
child 10 905843405257
equal deleted inserted replaced
5:2994ba652074 6:4779d7083767
       
     1 Kurzer Konfigurationsritt
       
     2 =========================
       
     3 :Author: Heiko Schlittermann
       
     4 :Toc:
       
     5 :data-uri:
       
     6 :icons:
       
     7 :numbered:
       
     8 
       
     9 
       
    10 == Konfig im Detail ==
       
    11 
       
    12 Welche Konfiguration wird eingelesen? Je nach Installation kann das
       
    13 ein anderes File sind.
       
    14 
       
    15 .aktive Konfiguration ermitteln:
       
    16 ----
       
    17 > exim -bV | tail -n 1
       
    18 > exim -bP configure_file
       
    19 ----
       
    20 
       
    21 .aktive Konfiguration ändern
       
    22 ----
       
    23 > exim -C `pwd`/test.config …
       
    24 ----
       
    25 
       
    26 Die Konfiguration öfter gelesen, als vielleicht erwartet:
       
    27 
       
    28 * Klar - beim Start
       
    29 * Aber - wann wird gestartet?
       
    30     ** Start des Daemon
       
    31     ** Signal HUP
       
    32     ** re-exec for verschiedene Zwecke
       
    33 * Achtung: 
       
    34     ** exim4.conf + .include ist "statisch"
       
    35     ** lists, lookups, … "dynamisch"
       
    36 
       
    37 Der Config-Parser ist ziemlich einfach.
       
    38 
       
    39 * einfache Syntax-Checks
       
    40 * Erst „de-comment“, dann „trimm“, dann Fortsetzungszeilen mit `\`
       
    41   am Ende
       
    42 
       
    43 == Syntax der Konfiguration ==
       
    44 
       
    45 Es gibt Macros.
       
    46 
       
    47 * Macros - Text-Ersatz während des Einlesens,
       
    48   ggf. bedingt über `.ifdef`
       
    49 * `.include`, `.include_ifexists`
       
    50 
       
    51 .Macro-Ersetzungen
       
    52 ----
       
    53 FOO = foo               <1>
       
    54 FOO == bar              <2>
       
    55 primary_hostname = FOO
       
    56 ----
       
    57 <1> Definition
       
    58 <2> Re-Definition
       
    59 
       
    60 Es gibt weitere Elemente:
       
    61 
       
    62 * Optionsnamen
       
    63 * benamste Listen
       
    64 * Instanzen von Routern, Transports, …
       
    65 
       
    66 == Werte ==
       
    67 
       
    68 Optionen und Listen haben Werte. Es gibt _bool_, _integer_, _fixed-point_, _time_ und _string_.
       
    69 
       
    70 === Bool ===
       
    71 
       
    72 _bool_ sind einfache Schalter.
       
    73 
       
    74 .Format 
       
    75 ----
       
    76 true
       
    77 false
       
    78 <option>
       
    79 no_<option>
       
    80 not_<option>
       
    81 ----
       
    82 
       
    83 ----
       
    84 split_spool_directory
       
    85 not_split_spool_directory
       
    86 split_spool_directory = true
       
    87 split_spool_directory = no
       
    88 ----
       
    89 
       
    90 .spect.txt
       
    91  +---------------------+---------+-------------+--------------+ 
       
    92  |split_spool_directory|Use: main|Type: boolean|Default: false|
       
    93  +---------------------+---------+-------------+--------------+
       
    94 
       
    95 === Integer ===
       
    96 
       
    97 Zahlen halt. Ganze Zahlen.
       
    98 
       
    99 .Format
       
   100 ----
       
   101   <n>[<suffix>]
       
   102  0<n>[<suffix>]
       
   103 0x<n>[<suffix>]
       
   104        suffix: k|m
       
   105 ----
       
   106 
       
   107 ----
       
   108 check_spool_space = 10M
       
   109 ----
       
   110 
       
   111 .spec.txt
       
   112  +-----------------+---------+-------------+----------+
       
   113  |check_spool_space|Use: main|Type: integer|Default: 0|
       
   114  +-----------------+---------+-------------+----------+
       
   115 
       
   116 
       
   117 
       
   118 ### fixed-point
       
   119     Format: <i>[.d[d[d]]]     eg: 0.234
       
   120 
       
   121     +----------------------+---------+-----------------+--------------+
       
   122     |deliver_queue_load_max|Use: main|Type: fixed-point|Default: unset|
       
   123     +----------------------+---------+-----------------+--------------+
       
   124     > exim -C <(echo deliver_queue_load_max = 3.3) -bP deliver_queue_load_max
       
   125 
       
   126 ### time intervals
       
   127     Format: n<suffix>...      eg: 2w3d
       
   128             suffix: s|m|h|d|w
       
   129 
       
   130     +---------+---------+----------+-----------+
       
   131     |auto_thaw|Use: main|Type: time|Default: 0s|
       
   132     +---------+---------+----------+-----------+
       
   133     > exim -C <(echo auto_thaw = 1w7s) -bP auto_thaw
       
   134 
       
   135 ### strings
       
   136     Fromat: <string>           eg: localhost
       
   137             <"string">         eg: " A\x42C"
       
   138 
       
   139     Quoting für \\, \n, \r, \t, \ddd, \xdd und führende oder baumelnde Spaces
       
   140 
       
   141     - Vorsicht: Expansion
       
   142     - Vorsicht: User/Groups
       
   143 
       
   144     +----------------+---------+------------+------------------+
       
   145     |primary_hostname|Use: main|Type: string|Default: see below|
       
   146     +----------------+---------+------------+------------------+
       
   147     > exim -C <(echo 'primary_hostname = a\x41b')   -bP primary_hostname
       
   148     > exim -C <(echo 'primary_hostname = "a\x41b"') -bP primary_hostname
       
   149 
       
   150     Steuerzeichen werden für die Ausgabe escaped:
       
   151     > exim -C <(echo 'primary_hostname = "a\x091b"') -bP primary_hostname
       
   152 
       
   153 
       
   154 ### Lists
       
   155     Format: <item>:…            eg:   a:b:c:d vs. a:b::c:d
       
   156                                 eg:   :   -> ein leeres Element
       
   157         [<<sep> <item><sep>…]   eg:   <, a,b,c
       
   158 
       
   159       - leere Felder am Ende werden „gestrippt“
       
   160       - Whitespace der Felder wird gestrippt
       
   161       - leeres Feld in der Mitte: a: :b
       
   162       - leeres Felder am Anfang bleibt
       
   163       - "Escapen" des Listentrenners durch Verdoppeln
       
   164 
       
   165       a : b::c : d -> (a) (b:c) (d)
       
   166 
       
   167     > exim -be '${map{:a:b:c,}{<$item>}}'
       
   168     > exim -be '${map{<,,a,b,c,}{<$item>}}'
       
   169 
       
   170     > exim -C <(echo domainlist local_domains = 'a:b::c:d') -be '${listnamed:local_domains}'
       
   171 
       
   172 
       
   173 ### Regexp
       
   174     Format ^…
       
   175 
       
   176     Beginnt mit ^, damit es sich von einem normalen String unterscheidet!
       
   177     Achtung, Backslash ggf. vom String-Expander gefressen,
       
   178     hauptsächlich in Listen, die RE enthalten dürfen
       
   179 
       
   180     Ggf. mit \N..\N 
       
   181 
       
   182 ## Lookups
       
   183 
       
   184     - 2 Syntaxen
       
   185     - 2 Types
       
   186     => 4 Varianten
       
   187 
       
   188 ### Syntax 1: explizit - der Key oder die Frage wird ausdrücklich formuliert
       
   189               es ist ein String-Expansion. s.u.
       
   190 
       
   191     ${lookup{<key>}<type>{file}}    eg: ${lookup{$domain}dsearch{/etc/exim4/domains}}
       
   192     ${lookup <type> {<query>}}      eg: ${lookup ldap {ldap:///o=roka?mail?sub?uid=${quote_ldap:$local_part}}}
       
   193 
       
   194     Liefert eine Liste zurück, ggf. Listentrenner unorthodox und muss massiert werden
       
   195 
       
   196 ### Syntax 2: implizit - der Key ergibt sich aus dem Kontext
       
   197               keine Stringexpansion, sondern ein Element für sich
       
   198 
       
   199 
       
   200     <type>;<file>                   eg: domains = dsearch;/etc/exim4/domains
       
   201     <type>;<query>                  eg: domains = sqlite;/etc/db.sqlite SELECT … WHERE ${quote_sqlite:$local_part} …
       
   202                                         domains = ldap;ldap:///o=roka?mail?sub?…
       
   203 
       
   204     - Auffindes des "impliziten" Keys
       
   205     - Query: Success der Query ist entscheidend, nicht der Resultat-Wert
       
   206     - Achtung: In einer Liste ggf. an den Listentrenner denken!
       
   207                domains = ldap;ldap::///o=…
       
   208 
       
   209 ### Style 1: Single Key
       
   210 
       
   211     ${lookup{<key>}<type>{<file>}   eg: ${lookup{$sender_host_address}iplsearch{/etc/exim4/blacklist}}
       
   212     <type>;<file>                   eg: hosts = iplsearch;/etc/exim4/blacklist
       
   213 
       
   214     <type> ist dann lsearch, dsearch, iplsearch, …
       
   215     
       
   216 ### Style 2: Query Style
       
   217 
       
   218     ${lookup <type> {<query>}}      eg: ${lookup dnsdb{mxh=roka.net}}
       
   219     <type>;<query>                  eg: dnsdb;mxh=roka.net
       
   220 
       
   221 
       
   222     Matrix
       
   223 
       
   224         style|  single key                    | query style
       
   225     syntax  \|                                |
       
   226     ---------+--------------------------------+---------------------------
       
   227     explicit |  ${lookup{<key>}<type>{<file>} | ${lookup <type> {<query>}}
       
   228     implizit |  <type>;<file>                 | [ <type>;<query> ]
       
   229 
       
   230 
       
   231     eg. config:
       
   232 
       
   233     domains = ${lookup{$domain}lsearch{/etc/exim4/local_domains}}   # WRONG
       
   234             = <\n ${lookup mysql { SELECT domain FROM domains }}    # BETTER
       
   235             = ${lookup mysql { SELECT DISTINCT(domain) FROM domains WHERE domain = $domain}} # ggf BEST
       
   236     vs
       
   237     domains = lsearch;/etc/exim4/local_domains                      # OK
       
   238 
       
   239 
       
   240 ## Named Lists
       
   241    Format: <listtype> <name>
       
   242            <listtype>_cache <name>
       
   243            Bezug: +<name>
       
   244 
       
   245     Typen: domainlist, hostlist, addresslist, localpartlist
       
   246     Caching nur wenn die RHS keine '$' enthält, also konstante Ergebnisse zu erwarten sind.
       
   247 
       
   248     Jeder Listtyp hat seine Eigenarten.
       
   249 
       
   250     > exim -bP +<name>
       
   251 
       
   252 ### domainlist
       
   253 
       
   254     domainlist - @, @mx_primary, @mx_secondary, @mx_any, <pattern>, lookup, literal
       
   255     hostlist   - Namen, Adressen spec(10.11 ff)
       
   256 
       
   257 
       
   258 ## String-Expansion
       
   259 
       
   260     - von links nach rechts: $ und \ wirken als Trigger
       
   261 
       
   262     > exim -be [<string>]
       
   263     > exim -bem <message-file> [<string>]
       
   264     > exim -be -Mset <spool-id> [<string>]
       
   265 
       
   266     eg: exim -be '$primary_hostname'
       
   267         exim -be '$tod_full'
       
   268         exim -bem <(echo 'Subject: Hi') '$h_subject:'
       
   269 
       
   270     Expansionen liefern neuen Text zurück oder können „forced expansion failure“
       
   271     bewirken
       
   272 
       
   273 ## Expansions-Items
       
   274 
       
   275 ### Variablen
       
   276     Format: $<variable>           eg: $localhost_number
       
   277             ${<variable>}     
       
   278 
       
   279 ### Operatoren
       
   280     Format: ${<op>:<string>}
       
   281     Für einfache Expansionen, lc, uc, hash, …
       
   282 
       
   283 ### Funktionen
       
   284     Format ${<function>{string1}...}
       
   285 
       
   286 # Debugging
       
   287 
       
   288 ## Konfiguration
       
   289    
       
   290    - > exim -bV
       
   291 
       
   292 ## Routing / Transport
       
   293 
       
   294     > exim -bt  <address>
       
   295     > exim -bts <address>
       
   296 
       
   297     > exim -bv  <address>
       
   298     > exim -bvs <address>
       
   299 
       
   300     Routing, Fake-Delivery
       
   301     > exim -N < <message-file>
       
   302 
       
   303     Fake-SMTP-Session
       
   304     > exim -bh <sender-ip>
       
   305     > swaks --pipe 'exim -bh <sender-ip>' -f <sender> -t <rcpt>
       
   306     (note: --tls-cert, --tls-key Optionen sind für SWAKS vorhanden, um ein 
       
   307     Client-Zertifikat mitzuschicken, aber offenbar erst in neueren Versionen
       
   308     von swaks)
       
   309     
       
   310    - debug_print Option für Router und Transports
       
   311 
       
   312 
       
   313 ### Minimalkonfiguration
       
   314 
       
   315        .-[ m.conf ]-------- {{{
       
   316        |exim_user = exim
       
   317        |spool_directory = /tmp/exim-spool
       
   318        |log_file_path = 
       
   319        |
       
   320        |begin routers
       
   321        |
       
   322        |    default:
       
   323        |        driver = accept
       
   324        |        transport = null
       
   325        |        no_more
       
   326        |
       
   327        |begin transports
       
   328        |
       
   329        |    null:
       
   330        |        driver = appendfile
       
   331        |        file = /dev/null
       
   332        `-------------        }}}
       
   333 
       
   334 
       
   335 # Routing
       
   336 
       
   337   - Preconditions
       
   338   - Driver und Driver-Options
       
   339     Result: - accept  -> DONE (transport oder neue Adresse)
       
   340             - pass    -> pass_router (bzw. nächster Router)
       
   341             - decline -> nächster Router (or fail, wenn no_more)
       
   342             - fail    -> DONE (bounce)
       
   343             - defer   -> Semi-DONE (re-queue)
       
   344             - error   -> wie defer
       
   345 
       
   346 # Hint-Databases
       
   347   
       
   348   liegen in $spool_directory/db
       
   349   - retry
       
   350   - wait-<transport>
       
   351   - callout
       
   352   - ratelimit
       
   353   - misc
       
   354 
       
   355   Sind verzichtbar!
       
   356 
       
   357 ## Wartung
       
   358 
       
   359 ### Ansehen
       
   360 
       
   361   > exim_dumpdb <spool_dir> <db>
       
   362   eg: exim_dumpdb /var/spool/exim4 
       
   363 
       
   364   Je nach DB unterschiedliches Format
       
   365 
       
   366 ### Verändern
       
   367 
       
   368   Aufräumen
       
   369   > exim_tidyb <spool_dir> <db> (Cronjob)
       
   370 
       
   371   Reparieren
       
   372   > exim_fixdb <spool_dir> <db>
       
   373 
       
   374   … that's it …
       
   375 
       
   376 ### Retry
       
   377 
       
   378     exinext - Route:     Adressproblem
       
   379               Transport: Hostproblem
       
   380 
       
   381 # Acess Control Lists
       
   382 
       
   383     acl_not_smtp       ACL for non-SMTP messages
       
   384     acl_not_smtp_mime  ACL for non-SMTP MIME parts
       
   385     acl_not_smtp_start ACL at start of non-SMTP message
       
   386     acl_smtp_auth      ACL for AUTH
       
   387     acl_smtp_connect   ACL for start of SMTP connection
       
   388     acl_smtp_data      ACL after DATA is complete
       
   389     acl_smtp_data_prdr ACL for each recipient, after DATA is complete
       
   390     acl_smtp_etrn      ACL for ETRN
       
   391     acl_smtp_expn      ACL for EXPN
       
   392     acl_smtp_helo      ACL for HELO or EHLO
       
   393     acl_smtp_mail      ACL for MAIL
       
   394     acl_smtp_mailauth  ACL for the AUTH parameter of MAIL
       
   395     acl_smtp_mime      ACL for content-scanning MIME parts
       
   396     acl_smtp_notquit   ACL for non-QUIT terminations
       
   397     acl_smtp_predata   ACL at start of DATA command
       
   398     acl_smtp_quit      ACL for QUIT
       
   399     acl_smtp_rcpt      ACL for RCPT
       
   400     acl_smtp_starttls  ACL for STARTTLS
       
   401     acl_smtp_vrfy      ACL for VRFY
       
   402 
       
   403     acl_<hook> = <aclverb> | <filename> | <acl-name>
       
   404                  
       
   405     eg: acl_smtp_rcpt = acl_check_rcpt
       
   406         acl_smtp_rcpt = acl_check_rcpt_${primary_hostname}
       
   407 
       
   408 ## Policies
       
   409 
       
   410 ### acl_smtp_rcpt
       
   411  
       
   412     Abweisung einzelner Empfänger, noch kein Content!
       
   413 
       
   414 ### acl_smtp_data
       
   415 
       
   416     Content-Scan. Nicht mehr für einzelne Empfänger,
       
   417     $local_part, $domain steht nicht mehr zur Verfügung,
       
   418     aber $recpients, $rcpt_count, …
       
   419 
       
   420 ## Return-Values
       
   421 
       
   422     - accept
       
   423     - defer
       
   424     - deny
       
   425     - discard
       
   426 
       
   427     default: "accept", ausser bei acl_smtp_rcpt, dort ist es "deny"
       
   428     implizit "deny" am Ende jeder ACL!
       
   429 
       
   430 
       
   431 ## Test
       
   432 
       
   433    > exim -bh <ip>  # ohne callouts
       
   434    > exim -bhc <ip> # mit callouts
       
   435    > swaks --pipe 'exim -bh <ip> -C <config>' -f <sender> -t <rcpt>
       
   436 
       
   437    exim -N hilft nicht, ist nicht für die SMTP acl
       
   438    relevant!
       
   439 
       
   440 ## Format
       
   441 
       
   442    <aclverb>    [<condition>]
       
   443
       
   444                 [<modifier]
       
   445 
       
   446    Bedingungen müssen erfüllt sein, Order matters, Abbruch
       
   447    bei nicht erfüllter Bedingung! Modifier sind immer "true"
       
   448 
       
   449 ### Verb
       
   450 
       
   451    accept, defer, deny, discard, drop, require, warn
       
   452 
       
   453 ### Modifier
       
   454 
       
   455     message = [code] text
       
   456     log_message = text
       
   457 
       
   458     Immediate:
       
   459         logwrite      = …
       
   460         control       = …
       
   461         set           = …
       
   462         add_header    = …
       
   463         remove_header = …
       
   464         delay         = …
       
   465 
       
   466 ### Conditions
       
   467 
       
   468     <condition> = <value>
       
   469 
       
   470         eg: deny  hosts = !192.168.3.8  # neg. Liste
       
   471             deny !hosts = 192.168.3.8   # neg. Resultat
       
   472 
       
   473         vs: deny !verify = recipient    # works
       
   474             deny  verify = !recipient   # FALSCH
       
   475 
       
   476 
       
   477     Wert der Condition und von Modifiern wird expandiert.
       
   478     Force Failure bedeutet: Condition war nicht anwesend!
       
   479 
       
   480     Reihenfolge ist wichtig! Short Circuit.
       
   481     Position der Modifier ist wichtig!
       
   482 
       
   483 
       
   484 
       
   485 # DNS Lookups
       
   486 
       
   487 ## DNSSEC
       
   488   dns_dnssec_ok = 1
       
   489 
       
   490   dnslookup.dnssec_require_domains =        # leider noch falsche Syntax
       
   491        smtp.dnssec_require_domains =        # leider noch falsche Syntax
       
   492   dnslookup.dnssec_request_domains =        # leider noch falsche Syntax
       
   493        smtp.dnssec_request_domains =        # leider noch falsche Syntax
       
   494 
       
   495 # Anhang
       
   496 
       
   497 ## Misc
       
   498 
       
   499     Spec.txt durchsuchen (less):
       
   500     - Option         /^.<option>         eg: |exim_user|
       
   501     - Variable       /^\$<variable       eg: $localhost_number
       
   502     - Operators:     /^\$\{<operator>:   eg: ${hash:<string>} …
       
   503     - Condition:     /^<condition> \{    eg: eq {<string1>}{<string2>} …
       
   504     - Functions:     /^\$\{<function\{   eg: ${map{<string1>}{<string2>}} …
       
   505     - ACL conditions /^<condition> =     eg: malware = …
       
   506 
       
   507 // Die folgenden Listen sind durch einfaches Greppen im Spec-File bzw. 
       
   508 // im spec.xfpt enstanden, also weder vollständig noch zwingend korrekt!
       
   509 
       
   510 ## Liste globaler Optionen {{{
       
   511 
       
   512     accept_8bitmime
       
   513     acl_not_smtp
       
   514     acl_not_smtp_mime
       
   515     acl_not_smtp_start
       
   516     acl_smtp_auth
       
   517     acl_smtp_connect
       
   518     acl_smtp_data
       
   519     acl_smtp_data_prdr
       
   520     acl_smtp_etrn
       
   521     acl_smtp_expn
       
   522     acl_smtp_helo
       
   523     acl_smtp_mail
       
   524     acl_smtp_mailauth
       
   525     acl_smtp_mime
       
   526     acl_smtp_predata
       
   527     acl_smtp_quit
       
   528     acl_smtp_rcpt
       
   529     acl_smtp_starttls
       
   530     acl_smtp_vrfy
       
   531     admin_groups
       
   532     allow_domain_literals
       
   533     allow_mx_to_ip
       
   534     allow_utf8_domains
       
   535     auth_advertise_hosts
       
   536     auto_thaw
       
   537     av_scanner
       
   538     bi_command
       
   539     bounce_message_file
       
   540     bounce_message_text
       
   541     bounce_return_body
       
   542     bounce_return_message
       
   543     bounce_return_size_limit
       
   544     bounce_sender_authentication
       
   545     callout_domain_negative_expire
       
   546     callout_domain_positive_expire
       
   547     callout_negative_expire
       
   548     callout_positive_expire
       
   549     callout_random_local_part
       
   550     check_log_inodes
       
   551     check_log_space
       
   552     check_rfc2047_length
       
   553     check_spool_inodes
       
   554     check_spool_space
       
   555     daemon_smtp_ports
       
   556     daemon_startup_retries
       
   557     daemon_startup_sleep
       
   558     delay_warning
       
   559     delay_warning_condition
       
   560     deliver_drop_privilege
       
   561     deliver_queue_load_max
       
   562     delivery_date_remove
       
   563     disable_fsync
       
   564     disable_ipv6
       
   565     dns_again_means_nonexist
       
   566     dns_check_names_pattern
       
   567     dns_csa_search_limit
       
   568     dns_csa_use_reverse
       
   569     dns_dnssec_ok
       
   570     dns_ipv4_lookup
       
   571     dns_retrans
       
   572     dns_retry
       
   573     dns_use_edns0
       
   574     drop_cr
       
   575     dsn_from
       
   576     envelope_to_remove
       
   577     errors_copy
       
   578     errors_reply_to
       
   579     exim_group
       
   580     exim_path
       
   581     exim_user
       
   582     extra_local_interfaces
       
   583     finduser_retries
       
   584     freeze_tell
       
   585     gecos_name
       
   586     gecos_pattern
       
   587     gnutls_compat_mode
       
   588     header_line_maxsize
       
   589     header_maxsize
       
   590     headers_charset
       
   591     helo_accept_junk_hosts
       
   592     helo_allow_chars
       
   593     helo_lookup_domains
       
   594     helo_try_verify_hosts
       
   595     helo_verify_hosts
       
   596     hold_domains
       
   597     host_lookup
       
   598     host_lookup_order
       
   599     host_reject_connection
       
   600     hosts_connection_nolog
       
   601     hosts_treat_as_local
       
   602     ibase_servers
       
   603     ignore_bounce_errors_after
       
   604     ignore_fromline_hosts
       
   605     ignore_fromline_local
       
   606     keep_malformed
       
   607     ldap_ca_cert_dir
       
   608     ldap_ca_cert_file
       
   609     ldap_cert_file
       
   610     ldap_cert_key
       
   611     ldap_cipher_suite
       
   612     ldap_default_servers
       
   613     ldap_require_cert
       
   614     ldap_start_tls
       
   615     ldap_version
       
   616     local_from_check
       
   617     local_from_prefix
       
   618     local_from_suffix
       
   619     local_interfaces
       
   620     local_scan_timeout
       
   621     local_sender_retain
       
   622     localhost_number
       
   623     log_file_path
       
   624     log_selector
       
   625     log_timezone
       
   626     lookup_open_max
       
   627     max_username_length
       
   628     message_body_newlines
       
   629     message_body_visible
       
   630     message_id_header_domain
       
   631     message_id_header_text
       
   632     message_logs
       
   633     message_size_limit
       
   634     move_frozen_messages
       
   635     mua_wrapper
       
   636     mysql_servers
       
   637     never_users
       
   638     openssl_options
       
   639     oracle_servers
       
   640     percent_hack_domains
       
   641     perl_at_start
       
   642     perl_startup
       
   643     pgsql_servers
       
   644     pid_file_path
       
   645     pipelining_advertise_hosts
       
   646     prdr_enable
       
   647     preserve_message_logs
       
   648     primary_hostname
       
   649     print_topbitchars
       
   650     process_log_path
       
   651     prod_requires_admin
       
   652     qualify_domain
       
   653     qualify_recipient
       
   654     queue_domains
       
   655     queue_list_requires_admin
       
   656     queue_only
       
   657     queue_only_file
       
   658     queue_only_load
       
   659     queue_only_load_latch
       
   660     queue_only_override
       
   661     queue_run_in_order
       
   662     queue_run_max
       
   663     queue_smtp_domains
       
   664     receive_timeout
       
   665     received_header_text
       
   666     received_headers_max
       
   667     recipient_unqualified_hosts
       
   668     recipients_max
       
   669     recipients_max_reject
       
   670     remote_max_parallel
       
   671     remote_sort_domains
       
   672     retry_data_expire
       
   673     retry_interval_max
       
   674     return_path_remove
       
   675     return_size_limit
       
   676     rfc1413_hosts
       
   677     rfc1413_query_timeout
       
   678     sender_unqualified_hosts
       
   679     smtp_accept_keepalive
       
   680     smtp_accept_max
       
   681     smtp_accept_max_nonmail
       
   682     smtp_accept_max_nonmail_hosts
       
   683     smtp_accept_max_per_connection
       
   684     smtp_accept_max_per_host
       
   685     smtp_accept_queue
       
   686     smtp_accept_queue_per_connection
       
   687     smtp_accept_reserve
       
   688     smtp_active_hostname
       
   689     smtp_banner
       
   690     smtp_check_spool_space
       
   691     smtp_connect_backlog
       
   692     smtp_enforce_sync
       
   693     smtp_etrn_command
       
   694     smtp_etrn_serialize
       
   695     smtp_load_reserve
       
   696     smtp_max_synprot_errors
       
   697     smtp_max_unknown_commands
       
   698     smtp_ratelimit_hosts
       
   699     smtp_ratelimit_mail
       
   700     smtp_ratelimit_rcpt
       
   701     smtp_receive_timeout
       
   702     smtp_reserve_hosts
       
   703     smtp_return_error_details
       
   704     spamd_address
       
   705     split_spool_directory
       
   706     spool_directory
       
   707     sqlite_lock_timeout
       
   708     strict_acl_vars
       
   709     strip_excess_angle_brackets
       
   710     strip_trailing_dot
       
   711     syslog_duplication
       
   712     syslog_facility
       
   713     syslog_processname
       
   714     syslog_timestamp
       
   715     system_filter
       
   716     system_filter_directory_transport
       
   717     system_filter_file_transport
       
   718     system_filter_group
       
   719     system_filter_pipe_transport
       
   720     system_filter_reply_transport
       
   721     system_filter_user
       
   722     tcp_nodelay
       
   723     timeout_frozen_after
       
   724     timezone
       
   725     tls_advertise_hosts
       
   726     tls_certificate
       
   727     tls_crl
       
   728     tls_dh_max_bits
       
   729     tls_dhparam
       
   730     tls_ocsp_file
       
   731     tls_on_connect_ports
       
   732     tls_privatekey
       
   733     tls_remember_esmtp
       
   734     tls_require_ciphers
       
   735     tls_try_verify_hosts
       
   736     tls_verify_certificates
       
   737     tls_verify_hosts
       
   738     trusted_groups
       
   739     trusted_users
       
   740     unknown_login
       
   741     unknown_username
       
   742     untrusted_set_sender
       
   743     uucp_from_pattern
       
   744     uucp_from_sender
       
   745     warn_message_file
       
   746     write_rejectlog
       
   747 
       
   748 
       
   749     }}}
       
   750 
       
   751 ## Liste von Expansionsvariablen {{{
       
   752 
       
   753     $acl_narg
       
   754     $acl_verify_message
       
   755     $address_data
       
   756     $address_file
       
   757     $address_pipe
       
   758     $authenticated_fail_id
       
   759     $authenticated_id
       
   760     $authenticated_sender
       
   761     $authentication_failed
       
   762     $av_failed
       
   763     $body_linecount
       
   764     $body_zerocount
       
   765     $bounce_recipient
       
   766     $bounce_return_size_limit
       
   767     $caller_gid
       
   768     $caller_uid
       
   769     $compile_date
       
   770     $compile_number
       
   771     $demime_errorlevel
       
   772     $demime_errorlevel
       
   773     $demime_reason
       
   774     $demime_reason
       
   775     $dnslist_domain
       
   776     $domain
       
   777     $domain_data
       
   778     $exim_gid
       
   779     $exim_path
       
   780     $exim_uid
       
   781     $found_extension
       
   782     $found_extension
       
   783     $header_
       
   784     $headers_added
       
   785     $home
       
   786     $host
       
   787     $host_address
       
   788     $host_data
       
   789     $host_lookup_deferred
       
   790     $host_lookup_failed
       
   791     $host_port
       
   792     $inode
       
   793     $interface_address
       
   794     $interface_port
       
   795     $item
       
   796     $ldap_dn
       
   797     $load_average
       
   798     $local_part
       
   799     $local_part_data
       
   800     $local_part_prefix
       
   801     $local_part_suffix
       
   802     $local_scan_data
       
   803     $local_user_gid
       
   804     $local_user_uid
       
   805     $localhost_number
       
   806     $log_inodes
       
   807     $log_space
       
   808     $lookup_dnssec_authenticated
       
   809     $mailstore_basename
       
   810     $malware_name
       
   811     $max_received_linelength
       
   812     $message_age
       
   813     $message_body
       
   814     $message_body_end
       
   815     $message_body_size
       
   816     $message_exim_id
       
   817     $message_headers
       
   818     $message_headers_raw
       
   819     $message_id
       
   820     $message_linecount
       
   821     $message_size
       
   822     $mime_
       
   823     $mime_boundary
       
   824     $mime_charset
       
   825     $mime_content_description
       
   826     $mime_content_disposition
       
   827     $mime_content_id
       
   828     $mime_content_size
       
   829     $mime_content_transfer_encoding
       
   830     $mime_content_type
       
   831     $mime_decoded_filename
       
   832     $mime_filename
       
   833     $mime_is_coverletter
       
   834     $mime_is_multipart
       
   835     $mime_is_rfc822
       
   836     $mime_part_count
       
   837     $original_domain
       
   838     $original_local_part
       
   839     $originator_gid
       
   840     $originator_uid
       
   841     $parent_domain
       
   842     $parent_local_part
       
   843     $pid
       
   844     $pipe_addresses
       
   845     $primary_hostname
       
   846     $prvscheck_address
       
   847     $prvscheck_keynum
       
   848     $prvscheck_result
       
   849     $qualify_domain
       
   850     $qualify_recipient
       
   851     $rcpt_count
       
   852     $rcpt_defer_count
       
   853     $rcpt_fail_count
       
   854     $received_count
       
   855     $received_for
       
   856     $received_ip_address
       
   857     $received_port
       
   858     $received_protocol
       
   859     $received_time
       
   860     $recipient_data
       
   861     $recipient_verify_failure
       
   862     $recipients
       
   863     $recipients_count
       
   864     $regex_match_string
       
   865     $reply_address
       
   866     $return_path
       
   867     $return_size_limit
       
   868     $router_name
       
   869     $runrc
       
   870     $self_hostname
       
   871     $sender_address
       
   872     $sender_address_data
       
   873     $sender_address_domain
       
   874     $sender_address_local_part
       
   875     $sender_data
       
   876     $sender_fullhost
       
   877     $sender_helo_name
       
   878     $sender_host_address
       
   879     $sender_host_authenticated
       
   880     $sender_host_dnssec
       
   881     $sender_host_name
       
   882     $sender_host_port
       
   883     $sender_ident
       
   884     $sender_rate_
       
   885     $sender_rcvhost
       
   886     $sender_verify_failure
       
   887     $sending_ip_address
       
   888     $sending_port
       
   889     $smtp_active_hostname
       
   890     $smtp_command
       
   891     $smtp_command_argument
       
   892     $smtp_count_at_connection_start
       
   893     $spam_
       
   894     $spam_bar
       
   895     $spam_report
       
   896     $spam_score
       
   897     $spam_score_int
       
   898     $spool_directory
       
   899     $spool_inodes
       
   900     $spool_space
       
   901     $thisaddress
       
   902     $tls_in_bits
       
   903     $tls_in_certificate_verified
       
   904     $tls_in_cipher
       
   905     $tls_in_ocsp
       
   906     $tls_in_ourcert
       
   907     $tls_in_peercert
       
   908     $tls_in_peerdn
       
   909     $tls_in_sni
       
   910     $tls_out_bits
       
   911     $tls_out_certificate_verified
       
   912     $tls_out_cipher
       
   913     $tls_out_ocsp
       
   914     $tls_out_ourcert
       
   915     $tls_out_peercert
       
   916     $tls_out_peerdn
       
   917     $tls_out_sni
       
   918     $tod_bsdinbox
       
   919     $tod_epoch
       
   920     $tod_epoch_l
       
   921     $tod_full
       
   922     $tod_log
       
   923     $tod_logfile
       
   924     $tod_zone
       
   925     $tod_zulu
       
   926     $transport_name
       
   927     $value
       
   928     $verify_mode
       
   929     $version_number
       
   930     $warn_message_delay
       
   931     $warn_message_recipients
       
   932 
       
   933     }}}
       
   934 
       
   935 ## Liste von Operatoren {{{
       
   936 
       
   937     ${address:
       
   938     ${addresses:
       
   939     ${base62:
       
   940     ${base62d:
       
   941     ${domain:
       
   942     ${escape:
       
   943     ${eval:
       
   944     ${expand:
       
   945     ${from_utf8:
       
   946     ${hex2b64:
       
   947     ${hexquote:
       
   948     ${lc:
       
   949     ${listcount:
       
   950     ${listnamed:
       
   951     ${local_part:
       
   952     ${mask:
       
   953     ${md5:
       
   954     ${quote:
       
   955     ${quote_local_part:
       
   956     ${randint:
       
   957     ${reverse_ip:
       
   958     ${rfc2047:
       
   959     ${rfc2047d:
       
   960     ${rxquote:
       
   961     ${sha1:
       
   962     ${sha256:
       
   963     ${stat:
       
   964     ${str2b64:
       
   965     ${strlen:
       
   966     ${time_eval:
       
   967     ${time_interval:
       
   968     ${uc:
       
   969     ${utf8clean:
       
   970 
       
   971     }}}
       
   972 
       
   973 ## List of Conditions {{{
       
   974 
       
   975     acl
       
   976     and
       
   977     bool
       
   978     bool_lax
       
   979     crypteq
       
   980     eq
       
   981     exists
       
   982     ge
       
   983     gt
       
   984     inlist
       
   985     isip
       
   986     ldapauth
       
   987     le
       
   988     lt
       
   989     match
       
   990     match_address
       
   991     match_domain
       
   992     match_ip
       
   993     match_local_part
       
   994     or
       
   995     pam
       
   996     pwcheck
       
   997     radius
       
   998 
       
   999     }}}
       
  1000 
       
  1001 ## List of Functions {{{
       
  1002 
       
  1003     ${acl
       
  1004     ${certextract
       
  1005     ${dlfunc
       
  1006     ${extract
       
  1007     ${extract
       
  1008     ${filter
       
  1009     ${hash
       
  1010     ${hmac
       
  1011     ${length
       
  1012     ${listextract
       
  1013     ${lookup
       
  1014     ${map
       
  1015     ${nhash
       
  1016     ${perl
       
  1017     ${prvs
       
  1018     ${prvscheck
       
  1019     ${readfile
       
  1020     ${readsocket
       
  1021     ${reduce
       
  1022     ${run
       
  1023     ${sg
       
  1024     ${sort
       
  1025     ${substr
       
  1026     ${tr
       
  1027 
       
  1028         }}}
       
  1029 
       
  1030 ## Routing Pre-Conditions {{{
       
  1031 
       
  1032     address_test
       
  1033     check_local_user
       
  1034     condition
       
  1035     domains
       
  1036     expn
       
  1037     local_part_prefix
       
  1038     local_part_suffix
       
  1039     local_parts
       
  1040     require_files
       
  1041     senders
       
  1042     verify
       
  1043     verify_only
       
  1044     verify_recipient
       
  1045     verify_sender
       
  1046 
       
  1047     }}}
       
  1048 
       
  1049 
       
  1050 Cheat sheet: http://www.datadisk.co.uk/html_docs/exim/exim_cs.htm
       
  1051 
       
  1052 # vim:tw=0:et:ts=4:sw=4:fdm=marker:ft=asciidoc: