blueprint
changeset 0 79625f55bc22
equal deleted inserted replaced
-1:000000000000 0:79625f55bc22
       
     1 Konfig im Detail
       
     2 ----------------
       
     3 
       
     4 # Welche Konfiguration wird eingelesen?
       
     5 
       
     6     > exim -bV | tail -n 1
       
     7     TODO: exim -be '$config_file'
       
     8 
       
     9 # Wann wird die Konfiguration eingelesen?
       
    10 
       
    11     - Klar - beim Start
       
    12     - Aber - wann wird gestartet?
       
    13         - Start Daemon
       
    14         - Signal HUP
       
    15         - re-exec for verschiedene Zwecke
       
    16     - Achtung: 
       
    17         - exim4.conf + .include ist "statisch"
       
    18         - lists, lookups, … "dynamisch"
       
    19     - Config-Parser: nur simple Syntax-Checks
       
    20     - trim, "de-comment"
       
    21 
       
    22 # Syntax der Konfiguration
       
    23 
       
    24 ## Macros und …
       
    25     - Macros - Text-Ersatz während des Einlesens,
       
    26       ggf. bedingt über .ifdef
       
    27     - .include, .include_ifexists
       
    28 
       
    29     > exim -DFOO=bar -C <(echo primary_hostname = FOO) -bP primary_hostname
       
    30 
       
    31 ## Options
       
    32     - statische Namen
       
    33     - benamst Listen
       
    34     - Instanzen von Routern, Transports, ..
       
    35 
       
    36 ## Values
       
    37 
       
    38 ### bool
       
    39     Format: true|yes|false|no
       
    40         <option>          eg: split_spool_directory
       
    41         no_<option>       eg: no_split_spool_directory
       
    42         not_<option>      eg: not_split_spool_directory
       
    43 
       
    44 
       
    45     +---------------------+---------+-------------+--------------+
       
    46     |split_spool_directory|Use: main|Type: boolean|Default: false|
       
    47     +---------------------+---------+-------------+--------------+
       
    48     > exim -C <(echo split_spool_directory = no) -bP split_spool_directory
       
    49 
       
    50 
       
    51 ### integer:
       
    52     Format: <n>[<suffix>]     eg: 27M
       
    53            0<n>[<suffix>]     eg: 01000M
       
    54           0x<n>[<suffix>]     eg: 0xFFFFK
       
    55         suffix: k|m
       
    56 
       
    57     +-----------------+---------+-------------+----------+
       
    58     |check_spool_space|Use: main|Type: integer|Default: 0|
       
    59     +-----------------+---------+-------------+----------+
       
    60     > exim -C <(echo check_spool_space = 01000M) -bP check_spool_space
       
    61 
       
    62 ### fixed-point
       
    63     Format: <i>[.d[d[d]]]     eg: 0.234
       
    64 
       
    65     +----------------------+---------+-----------------+--------------+
       
    66     |deliver_queue_load_max|Use: main|Type: fixed-point|Default: unset|
       
    67     +----------------------+---------+-----------------+--------------+
       
    68     > exim -C <(echo deliver_queue_load_max = 3.3) -bP deliver_queue_load_max
       
    69 
       
    70 ### time intervals
       
    71     Format: n<suffix>...      eg: 2w3d
       
    72             suffix: s|m|h|d|w
       
    73 
       
    74     +---------+---------+----------+-----------+
       
    75     |auto_thaw|Use: main|Type: time|Default: 0s|
       
    76     +---------+---------+----------+-----------+
       
    77     > exim -C <(echo auto_thaw = 0s) -bP auto_thaw
       
    78 
       
    79 ### strings
       
    80     Fromat: <string>           eg: localhost
       
    81             <"string">         eg: " A\x42C"
       
    82 
       
    83     Quoting für \\, \n, \r, \t, \ddd, \xdd und führende oder baumelnde Spaces
       
    84 
       
    85     - Vorsicht: Expansion
       
    86     - Vorsicht: User/Groups
       
    87 
       
    88     +----------------+---------+------------+------------------+
       
    89     |primary_hostname|Use: main|Type: string|Default: see below|
       
    90     +----------------+---------+------------+------------------+
       
    91     > exim -C <(echo 'primary_hostname = a\x41b')   -bP primary_hostname
       
    92     > exim -C <(echo 'primary_hostname = "a\x41b"') -bP primary_hostname
       
    93 
       
    94     Steuerzeichen werden für die Ausgabe escaped:
       
    95     > exim -C <(echo 'primary_hostname = "a\x091b"') -bP primary_hostname
       
    96 
       
    97 
       
    98 ### Lists
       
    99     Format: <item>:…            eg:   a:b:c:d vs. a:b::c:d
       
   100                                 eg:   :   -> ein leeres Element
       
   101         [<<sep> <item><sep>…]   eg:   <, a,b,c
       
   102 
       
   103       - leere Felder am Ende werden „gestrippt“
       
   104       - Whitespace der Felder wird gestrippt
       
   105       - leeres Feld in der Mitte: a: :b
       
   106       - leeres Felder am Anfang bleibt
       
   107 
       
   108     > exim -be '-be '${map{<, ,a,b,,, ,c,}{<$item>}}'
       
   109 
       
   110 ### Regexp
       
   111     Format ^…
       
   112 
       
   113     Beginnt mit ^, damit es sich von einem normalen String unterscheidet!
       
   114     Achtung, Backslash ggf. vom String-Expander gefressen,
       
   115     hauptsächlich in Listen, die RE enthalten dürfen
       
   116 
       
   117     Ggf. mit \N..\N 
       
   118 
       
   119 ## Lookups
       
   120 
       
   121     - 2 Syntaxen
       
   122     - 2 Types
       
   123     => 4 Varianten
       
   124 
       
   125 ### Syntax 1: explizit - der Key oder die Frage wird ausdrücklich formuliert
       
   126               es ist ein String-Expansion. s.u.
       
   127 
       
   128     ${lookup{<key>}<type>{file}}    eg: ${lookup{$domain}dsearch{/etc/exim4/domains}}
       
   129     ${lookup <type> {<query>}}      eg: ${lookup ldap {ldap:///o=roka?mail?sub?uid=${quote_ldap:$local_part}}}
       
   130 
       
   131     Liefert eine Liste zurück, ggf. Listentrenner unorthodox und muss massiert werden
       
   132 
       
   133 ### Syntax 2: implizit - der Key ergibt sich aus dem Kontext
       
   134               keine Stringexpansion, sondern ein Element für sich
       
   135 
       
   136 
       
   137     <type>;<file>                   eg: domains = dsearch;/etc/exim4/domains
       
   138     <type>;<query>                  eg: sqlite;/etc/db.sqlite SELECT … WHERE ${quote_sqlite:$local_part} …
       
   139                                         ldap;ldap:///o=roka?mail?sub?…
       
   140 
       
   141     - Auffindes des "impliziten" Keys
       
   142     - Query: Success der Query ist entscheidend, nicht der Resultat-Wert
       
   143     - Achtung: In einer Liste ggf. an den Listentrenner denken!
       
   144                domains = ldap;ldap::///o=…
       
   145 
       
   146 ### Style 1: Single Key
       
   147 
       
   148     ${lookup{<key>}<type>{<file>}   eg: ${lookup{$sender_host_address}iplsearch{/etc/exim4/blacklist}}
       
   149     <type>;<file>                   eg: hosts = iplsearch;/etc/exim4/blacklist
       
   150 
       
   151     <type> ist dann lsearch, dsearch, iplsearch, …
       
   152     
       
   153 ### Style 2: Query Style
       
   154 
       
   155     ${lookup <type> {<query>}}      eg: ${lookup dnsdb{mxh=roka.net}}
       
   156     <type>;<query>                  eg: dnsdb;mxh=roka.net
       
   157 
       
   158 
       
   159     Matrix
       
   160 
       
   161         style|  single key                    | query style
       
   162     syntax  \|                                |
       
   163     ---------+--------------------------------+---------------------------
       
   164     explicit |  ${lookup{<key>}<type>{<file>} | ${lookup <type> {<query>}}
       
   165     implizit |  <type>;<file>                 | [ <type>;<query> ]
       
   166 
       
   167 
       
   168     eg. config:
       
   169 
       
   170     domains = ${lookup{$domain}lsearch{/etc/exim4/local_domains}}   # WRONG
       
   171             = <\n ${lookup mysql { SELECT domain FROM domains }}    # BETTER
       
   172             = ${lookup mysql { SELECT DISTINCT(domain) FROM domains WHERE domain = $domain}} # ggf BEST
       
   173     vs
       
   174     domains = lsearch;/etc/exim4/local_domains                      # OK
       
   175 
       
   176 
       
   177 ## Named Lists
       
   178    Format: <listtype> <name>
       
   179            <listtype>_cache <name>
       
   180            Bezug: +<name>
       
   181 
       
   182     Typen: domainlist, hostlist, addresslist, localpartlist
       
   183     Caching nur wenn die RHS keine '$' enthält, also konstante Ergebnisse zu erwarten sind.
       
   184 
       
   185     Jeder Listtyp hat seine Eigenarten.
       
   186 
       
   187 ### domainlist
       
   188 
       
   189     domainlist - @, @mx_primary, @mx_secondary, @mx_any, <pattern>, lookup, literal
       
   190     hostlist   - Namen, Adressen spec(10.11 ff)
       
   191 
       
   192 
       
   193 ## String-Expansion
       
   194 
       
   195     - von links nach rechts: $ und \ wirken als Trigger
       
   196 
       
   197     > exim -be <string>
       
   198     > exim -bem <message-file> <string>
       
   199     > exim -be -Mset <spool-id> <string>
       
   200 
       
   201     eg: exim -be '$primary_hostname'
       
   202         exim -be '$tod_full'
       
   203         exim -bem <(echo 'Subject: Hi') '$h_subject:'
       
   204 
       
   205     Expansionen liefern neuen Text zurück oder können „forced expansion failure“
       
   206     bewirken
       
   207 
       
   208 ## Expansions-Items
       
   209 
       
   210 ### Variablen
       
   211     Format: $<variable>           eg: $localhost_number
       
   212               ${<variable>}     
       
   213 ### Operatoren
       
   214     Format: ${<op>:<string>}
       
   215     Für einfache Expansionen, lc, uc, hash, …
       
   216 
       
   217 ### Funktionen
       
   218     Format ${<function>{string1}...}
       
   219 
       
   220 # Debugging
       
   221 
       
   222 ## Konfiguration
       
   223    
       
   224    - > exim -bV
       
   225 
       
   226 ## Routing / Transport
       
   227 
       
   228     > exim -bt  <address>
       
   229 
       
   230     > exim -bt  <address>
       
   231     > exim -bts <address>
       
   232 
       
   233     Routing, Fake-Delivery
       
   234     > exim -N < <message-file>
       
   235 
       
   236     Fake-SMTP-Session
       
   237     > exim -bh <sender-ip>
       
   238     
       
   239    - debug_print Option für Router und Transports
       
   240 
       
   241 
       
   242 ### Minimalkonfiguration
       
   243 
       
   244        .-[ m.conf ]-------- {{{
       
   245        |exim_user = exim
       
   246        |spool_directory = /tmp/exim-spool
       
   247        |log_file_path = 
       
   248        |
       
   249        |begin routers
       
   250        |
       
   251        |    default:
       
   252        |        driver = accept
       
   253        |        transport = null
       
   254        |        no_more
       
   255        |
       
   256        |begin transports
       
   257        |
       
   258        |    null:
       
   259        |        driver = appendfile
       
   260        |        file = /dev/null
       
   261        `-------------        }}}
       
   262 
       
   263 
       
   264 # Routing
       
   265 
       
   266   - Preconditions
       
   267   - Driver und Driver-Options
       
   268     Result: - accept  -> DONE (transport oder neue Adresse)
       
   269             - pass    -> pass_router (bzw. nächster Router)
       
   270             - decline -> nächster Router (or fail, wenn no_more)
       
   271             - fail    -> DONE (bounce)
       
   272             - defer   -> Semi-DONE (re-queue)
       
   273             - error   -> wie defer
       
   274 
       
   275 # DNS Lookups
       
   276 
       
   277 ## DNSSEC
       
   278   dns_dnssec_ok = 1
       
   279 
       
   280   dnslookup.dnssec_require_domains = 
       
   281        smtp.dnssec_require_domains = 
       
   282   dnslookup.dnssec_request_domains = 
       
   283        smtp.dnssec_request_domains = 
       
   284 
       
   285 # Anhang
       
   286 
       
   287 ## Misc
       
   288 
       
   289     Spec.txt durchsuchen (less):
       
   290     - Option        /^.<option>         eg: |exim_user|
       
   291     - Variable      /^\$[^{]            eg: $localhost_number
       
   292     - Operators:    /^\$\{<operator>    eg: ${hash:<string>} …
       
   293     - Condition:    /^<condition> \{    eg: eq {<string1>}{<string2>} …
       
   294     - Functions:    /^\$\{              eg: ${map{<string1>}{<string2>}} …
       
   295 
       
   296 ## List of Options {{{
       
   297 
       
   298     |accept_8bitmime|Use: main|Type: boolean|Default: true|
       
   299     |acl_not_smtp|Use: main|Type: string*|Default: unset|
       
   300     |acl_not_smtp_mime|Use: main|Type: string*|Default: unset|
       
   301     |acl_not_smtp_start|Use: main|Type: string*|Default: unset|
       
   302     |acl_smtp_auth|Use: main|Type: string*|Default: unset|
       
   303     |acl_smtp_connect|Use: main|Type: string*|Default: unset|
       
   304     |acl_smtp_data|Use: main|Type: string*|Default: unset|
       
   305     |acl_smtp_data_prdr|Use: main|Type: string*|Default: unset|
       
   306     |acl_smtp_etrn|Use: main|Type: string*|Default: unset|
       
   307     |acl_smtp_expn|Use: main|Type: string*|Default: unset|
       
   308     |acl_smtp_helo|Use: main|Type: string*|Default: unset|
       
   309     |acl_smtp_mail|Use: main|Type: string*|Default: unset|
       
   310     |acl_smtp_mailauth|Use: main|Type: string*|Default: unset|
       
   311     |acl_smtp_mime|Use: main|Type: string*|Default: unset|
       
   312     |acl_smtp_predata|Use: main|Type: string*|Default: unset|
       
   313     |acl_smtp_quit|Use: main|Type: string*|Default: unset|
       
   314     |acl_smtp_rcpt|Use: main|Type: string*|Default: unset|
       
   315     |acl_smtp_starttls|Use: main|Type: string*|Default: unset|
       
   316     |acl_smtp_vrfy|Use: main|Type: string*|Default: unset|
       
   317     |admin_groups|Use: main|Type: string list*|Default: unset|
       
   318     |allow_domain_literals|Use: main|Type: boolean|Default: false|
       
   319     |allow_mx_to_ip|Use: main|Type: boolean|Default: false|
       
   320     |allow_utf8_domains|Use: main|Type: boolean|Default: false|
       
   321     |auth_advertise_hosts|Use: main|Type: host list*|Default: *|
       
   322     |auto_thaw|Use: main|Type: time|Default: 0s|
       
   323     |av_scanner|Use: main|Type: string|Default: see below|
       
   324     |bi_command|Use: main|Type: string|Default: unset|
       
   325     |bounce_message_file|Use: main|Type: string|Default: unset|
       
   326     |bounce_message_text|Use: main|Type: string|Default: unset|
       
   327     |bounce_return_body|Use: main|Type: boolean|Default: true|
       
   328     |bounce_return_message|Use: main|Type: boolean|Default: true|
       
   329     |bounce_return_size_limit|Use: main|Type: integer|Default: 100K|
       
   330     |bounce_sender_authentication|Use: main|Type: string|Default: unset|
       
   331     |callout_domain_negative_expire|Use: main|Type: time|Default: 3h|
       
   332     |callout_domain_positive_expire|Use: main|Type: time|Default: 7d|
       
   333     |callout_negative_expire|Use: main|Type: time|Default: 2h|
       
   334     |callout_positive_expire|Use: main|Type: time|Default: 24h|
       
   335     |callout_random_local_part|Use: main|Type: string*|Default: see below|
       
   336     |check_log_inodes|Use: main|Type: integer|Default: 0|
       
   337     |check_log_space|Use: main|Type: integer|Default: 0|
       
   338     |check_rfc2047_length|Use: main|Type: boolean|Default: true|
       
   339     |check_spool_inodes|Use: main|Type: integer|Default: 0|
       
   340     |check_spool_space|Use: main|Type: integer|Default: 0|
       
   341     |daemon_smtp_ports|Use: main|Type: string|Default: "smtp"|
       
   342     |daemon_startup_retries|Use: main|Type: integer|Default: 9|
       
   343     |daemon_startup_sleep|Use: main|Type: time|Default: 30s|
       
   344     |delay_warning|Use: main|Type: time list|Default: 24h|
       
   345     |delay_warning_condition|Use: main|Type: string*|Default: see below|
       
   346     |deliver_drop_privilege|Use: main|Type: boolean|Default: false|
       
   347     |deliver_queue_load_max|Use: main|Type: fixed-point|Default: unset|
       
   348     |delivery_date_remove|Use: main|Type: boolean|Default: true|
       
   349     |disable_fsync|Use: main|Type: boolean|Default: false|
       
   350     |disable_ipv6|Use: main|Type: boolean|Default: false|
       
   351     |dns_again_means_nonexist|Use: main|Type: domain list*|Default: unset|
       
   352     |dns_check_names_pattern|Use: main|Type: string|Default: see below|
       
   353     |dns_csa_search_limit|Use: main|Type: integer|Default: 5|
       
   354     |dns_csa_use_reverse|Use: main|Type: boolean|Default: true|
       
   355     |dns_dnssec_ok|Use: main|Type: integer|Default: -1|
       
   356     |dns_ipv4_lookup|Use: main|Type: domain list*|Default: unset|
       
   357     |dns_retrans|Use: main|Type: time|Default: 0s|
       
   358     |dns_retry|Use: main|Type: integer|Default: 0|
       
   359     |dns_use_edns0|Use: main|Type: integer|Default: -1|
       
   360     |drop_cr|Use: main|Type: boolean|Default: false|
       
   361     |dsn_from|Use: main|Type: string*|Default: see below|
       
   362     |envelope_to_remove|Use: main|Type: boolean|Default: true|
       
   363     |errors_copy|Use: main|Type: string list*|Default: unset|
       
   364     |errors_reply_to|Use: main|Type: string|Default: unset|
       
   365     |exim_group|Use: main|Type: string|Default: compile-time configured|
       
   366     |exim_path|Use: main|Type: string|Default: see below|
       
   367     |exim_user|Use: main|Type: string|Default: compile-time configured|
       
   368     |extra_local_interfaces|Use: main|Type: string list|Default: unset|
       
   369     |extract_addresses_remove_   arguments|Use: main|Type: boolean|Default: true|
       
   370     |finduser_retries|Use: main|Type: integer|Default: 0|
       
   371     |freeze_tell|Use: main|Type: string list, comma separated|Default: unset|
       
   372     |gecos_name|Use: main|Type: string*|Default: unset|
       
   373     |gecos_pattern|Use: main|Type: string|Default: unset|
       
   374     |gnutls_compat_mode|Use: main|Type: boolean|Default: unset|
       
   375     |headers_charset|Use: main|Type: string|Default: see below|
       
   376     |header_maxsize|Use: main|Type: integer|Default: see below|
       
   377     |header_line_maxsize|Use: main|Type: integer|Default: 0|
       
   378     |helo_accept_junk_hosts|Use: main|Type: host list*|Default: unset|
       
   379     |helo_allow_chars|Use: main|Type: string|Default: unset|
       
   380     |helo_lookup_domains|Use: main|Type: domain list*|Default: "@:@[]"|
       
   381     |helo_try_verify_hosts|Use: main|Type: host list*|Default: unset|
       
   382     |helo_verify_hosts|Use: main|Type: host list*|Default: unset|
       
   383     |hold_domains|Use: main|Type: domain list*|Default: unset|
       
   384     |host_lookup|Use: main|Type: host list*|Default: unset|
       
   385     |host_lookup_order|Use: main|Type: string list|Default: "bydns:byaddr"|
       
   386     |host_reject_connection|Use: main|Type: host list*|Default: unset|
       
   387     |hosts_connection_nolog|Use: main|Type: host list*|Default: unset|
       
   388     |hosts_treat_as_local|Use: main|Type: domain list*|Default: unset|
       
   389     |ibase_servers|Use: main|Type: string list|Default: unset|
       
   390     |ignore_bounce_errors_after|Use: main|Type: time|Default: 10w|
       
   391     |ignore_fromline_hosts|Use: main|Type: host list*|Default: unset|
       
   392     |ignore_fromline_local|Use: main|Type: boolean|Default: false|
       
   393     |keep_malformed|Use: main|Type: time|Default: 4d|
       
   394     |ldap_ca_cert_dir|Use: main|Type: string|Default: unset|
       
   395     |ldap_ca_cert_file|Use: main|Type: string|Default: unset|
       
   396     |ldap_cert_file|Use: main|Type: string|Default: unset|
       
   397     |ldap_cert_key|Use: main|Type: string|Default: unset|
       
   398     |ldap_cipher_suite|Use: main|Type: string|Default: unset|
       
   399     |ldap_default_servers|Use: main|Type: string list|Default: unset|
       
   400     |ldap_require_cert|Use: main|Type: string|Default: unset.|
       
   401     |ldap_start_tls|Use: main|Type: boolean|Default: false|
       
   402     |ldap_version|Use: main|Type: integer|Default: unset|
       
   403     |local_from_check|Use: main|Type: boolean|Default: true|
       
   404     |local_from_prefix|Use: main|Type: string|Default: unset|
       
   405     |local_from_suffix|Use: main|Type: string|Default: unset|
       
   406     |local_interfaces|Use: main|Type: string list|Default: see below|
       
   407     |local_scan_timeout|Use: main|Type: time|Default: 5m|
       
   408     |local_sender_retain|Use: main|Type: boolean|Default: false|
       
   409     |localhost_number|Use: main|Type: string*|Default: unset|
       
   410     |log_file_path|Use: main|Type: string list*|Default: set at compile time|
       
   411     |log_selector|Use: main|Type: string|Default: unset|
       
   412     |log_timezone|Use: main|Type: boolean|Default: false|
       
   413     |lookup_open_max|Use: main|Type: integer|Default: 25|
       
   414     |max_username_length|Use: main|Type: integer|Default: 0|
       
   415     |message_body_newlines|Use: main|Type: bool|Default: false|
       
   416     |message_body_visible|Use: main|Type: integer|Default: 500|
       
   417     |message_id_header_domain|Use: main|Type: string*|Default: unset|
       
   418     |message_id_header_text|Use: main|Type: string*|Default: unset|
       
   419     |message_logs|Use: main|Type: boolean|Default: true|
       
   420     |message_size_limit|Use: main|Type: string*|Default: 50M|
       
   421     |move_frozen_messages|Use: main|Type: boolean|Default: false|
       
   422     |mua_wrapper|Use: main|Type: boolean|Default: false|
       
   423     |mysql_servers|Use: main|Type: string list|Default: unset|
       
   424     |never_users|Use: main|Type: string list*|Default: unset|
       
   425     |openssl_options|Use: main|Type: string list|Default: +no_sslv2|
       
   426     |oracle_servers|Use: main|Type: string list|Default: unset|
       
   427     |percent_hack_domains|Use: main|Type: domain list*|Default: unset|
       
   428     |perl_at_start|Use: main|Type: boolean|Default: false|
       
   429     |perl_startup|Use: main|Type: string|Default: unset|
       
   430     |pgsql_servers|Use: main|Type: string list|Default: unset|
       
   431     |pid_file_path|Use: main|Type: string*|Default: set at compile time|
       
   432     |pipelining_advertise_hosts|Use: main|Type: host list*|Default: *|
       
   433     |prdr_enable|Use: main|Type: boolean|Default: false|
       
   434     |preserve_message_logs|Use: main|Type: boolean|Default: false|
       
   435     |primary_hostname|Use: main|Type: string|Default: see below|
       
   436     |print_topbitchars|Use: main|Type: boolean|Default: false|
       
   437     |process_log_path|Use: main|Type: string|Default: unset|
       
   438     |prod_requires_admin|Use: main|Type: boolean|Default: true|
       
   439     |qualify_domain|Use: main|Type: string|Default: see below|
       
   440     |qualify_recipient|Use: main|Type: string|Default: see below|
       
   441     |queue_domains|Use: main|Type: domain list*|Default: unset|
       
   442     |queue_list_requires_admin|Use: main|Type: boolean|Default: true|
       
   443     |queue_only|Use: main|Type: boolean|Default: false|
       
   444     |queue_only_file|Use: main|Type: string|Default: unset|
       
   445     |queue_only_load|Use: main|Type: fixed-point|Default: unset|
       
   446     |queue_only_load_latch|Use: main|Type: boolean|Default: true|
       
   447     |queue_only_override|Use: main|Type: boolean|Default: true|
       
   448     |queue_run_in_order|Use: main|Type: boolean|Default: false|
       
   449     |queue_run_max|Use: main|Type: integer|Default: 5|
       
   450     |queue_smtp_domains|Use: main|Type: domain list*|Default: unset|
       
   451     |receive_timeout|Use: main|Type: time|Default: 0s|
       
   452     |received_header_text|Use: main|Type: string*|Default: see below|
       
   453     |received_headers_max|Use: main|Type: integer|Default: 30|
       
   454     |recipient_unqualified_hosts|Use: main|Type: host list*|Default: unset|
       
   455     |recipients_max|Use: main|Type: integer|Default: 0|
       
   456     |recipients_max_reject|Use: main|Type: boolean|Default: false|
       
   457     |remote_max_parallel|Use: main|Type: integer|Default: 2|
       
   458     |remote_sort_domains|Use: main|Type: domain list*|Default: unset|
       
   459     |retry_data_expire|Use: main|Type: time|Default: 7d|
       
   460     |retry_interval_max|Use: main|Type: time|Default: 24h|
       
   461     |return_path_remove|Use: main|Type: boolean|Default: true|
       
   462     |return_size_limit|Use: main|Type: integer|Default: 100K|
       
   463     |rfc1413_hosts|Use: main|Type: host list*|Default: *|
       
   464     |rfc1413_query_timeout|Use: main|Type: time|Default: 5s|
       
   465     |sender_unqualified_hosts|Use: main|Type: host list*|Default: unset|
       
   466     |smtp_accept_keepalive|Use: main|Type: boolean|Default: true|
       
   467     |smtp_accept_max|Use: main|Type: integer|Default: 20|
       
   468     |smtp_accept_max_nonmail|Use: main|Type: integer|Default: 10|
       
   469     |smtp_accept_max_nonmail_hosts|Use: main|Type: host list*|Default: *|
       
   470     |smtp_accept_max_per_connection|Use: main|Type: integer|Default: 1000|
       
   471     |smtp_accept_max_per_host|Use: main|Type: string*|Default: unset|
       
   472     |smtp_accept_queue|Use: main|Type: integer|Default: 0|
       
   473     |smtp_accept_queue_per_connection|Use: main|Type: integer|Default: 10|
       
   474     |smtp_accept_reserve|Use: main|Type: integer|Default: 0|
       
   475     |smtp_active_hostname|Use: main|Type: string*|Default: unset|
       
   476     |smtp_banner|Use: main|Type: string*|Default: see below|
       
   477     |smtp_check_spool_space|Use: main|Type: boolean|Default: true|
       
   478     |smtp_connect_backlog|Use: main|Type: integer|Default: 20|
       
   479     |smtp_enforce_sync|Use: main|Type: boolean|Default: true|
       
   480     |smtp_etrn_command|Use: main|Type: string*|Default: unset|
       
   481     |smtp_etrn_serialize|Use: main|Type: boolean|Default: true|
       
   482     |smtp_load_reserve|Use: main|Type: fixed-point|Default: unset|
       
   483     |smtp_max_synprot_errors|Use: main|Type: integer|Default: 3|
       
   484     |smtp_max_unknown_commands|Use: main|Type: integer|Default: 3|
       
   485     |smtp_ratelimit_hosts|Use: main|Type: host list*|Default: unset|
       
   486     |smtp_ratelimit_mail|Use: main|Type: string|Default: unset|
       
   487     |smtp_ratelimit_rcpt|Use: main|Type: string|Default: unset|
       
   488     |smtp_receive_timeout|Use: main|Type: time|Default: 5m|
       
   489     |smtp_reserve_hosts|Use: main|Type: host list*|Default: unset|
       
   490     |smtp_return_error_details|Use: main|Type: boolean|Default: false|
       
   491     |spamd_address|Use: main|Type: string|Default: see below|
       
   492     |split_spool_directory|Use: main|Type: boolean|Default: false|
       
   493     |spool_directory|Use: main|Type: string*|Default: set at compile time|
       
   494     |sqlite_lock_timeout|Use: main|Type: time|Default: 5s|
       
   495     |strict_acl_vars|Use: main|Type: boolean|Default: false|
       
   496     |strip_excess_angle_brackets|Use: main|Type: boolean|Default: false|
       
   497     |strip_trailing_dot|Use: main|Type: boolean|Default: false|
       
   498     |syslog_duplication|Use: main|Type: boolean|Default: true|
       
   499     |syslog_facility|Use: main|Type: string|Default: unset|
       
   500     |syslog_processname|Use: main|Type: string|Default: "exim"|
       
   501     |syslog_timestamp|Use: main|Type: boolean|Default: true|
       
   502     |system_filter|Use: main|Type: string*|Default: unset|
       
   503     |system_filter_directory_transport|Use: main|Type: string*|Default: unset|
       
   504     |system_filter_file_transport|Use: main|Type: string*|Default: unset|
       
   505     |system_filter_group|Use: main|Type: string|Default: unset|
       
   506     |system_filter_pipe_transport|Use: main|Type: string*|Default: unset|
       
   507     |system_filter_reply_transport|Use: main|Type: string*|Default: unset|
       
   508     |system_filter_user|Use: main|Type: string|Default: unset|
       
   509     |tcp_nodelay|Use: main|Type: boolean|Default: true|
       
   510     |timeout_frozen_after|Use: main|Type: time|Default: 0s|
       
   511     |timezone|Use: main|Type: string|Default: unset|
       
   512     |tls_advertise_hosts|Use: main|Type: host list*|Default: unset|
       
   513     |tls_certificate|Use: main|Type: string*|Default: unset|
       
   514     |tls_crl|Use: main|Type: string*|Default: unset|
       
   515     |tls_dh_max_bits|Use: main|Type: integer|Default: 2236|
       
   516     |tls_dhparam|Use: main|Type: string*|Default: unset|
       
   517     |tls_ocsp_file|Use: main|Type: string*|Default: unset|
       
   518     |tls_on_connect_ports|Use: main|Type: string list|Default: unset|
       
   519     |tls_privatekey|Use: main|Type: string*|Default: unset|
       
   520     |tls_remember_esmtp|Use: main|Type: boolean|Default: false|
       
   521     |tls_require_ciphers|Use: main|Type: string*|Default: unset|
       
   522     |tls_try_verify_hosts|Use: main|Type: host list*|Default: unset|
       
   523     |tls_verify_certificates|Use: main|Type: string*|Default: unset|
       
   524     |tls_verify_hosts|Use: main|Type: host list*|Default: unset|
       
   525     |trusted_groups|Use: main|Type: string list*|Default: unset|
       
   526     |trusted_users|Use: main|Type: string list*|Default: unset|
       
   527     |unknown_login|Use: main|Type: string*|Default: unset|
       
   528     |unknown_username|Use: main|Type: string|Default: unset|
       
   529     |untrusted_set_sender|Use: main|Type: address list*|Default: unset|
       
   530     |uucp_from_pattern|Use: main|Type: string|Default: see below|
       
   531     |uucp_from_sender|Use: main|Type: string*|Default: "$1"|
       
   532     |warn_message_file|Use: main|Type: string|Default: unset|
       
   533     |write_rejectlog|Use: main|Type: boolean|Default: true|
       
   534     |address_data|Use: routers|Type: string*|Default: unset|
       
   535     |address_test|Use: routers**|Type: boolean|Default: true|
       
   536     |cannot_route_message|Use: routers|Type: string*|Default: unset|
       
   537     |caseful_local_part|Use: routers|Type: boolean|Default: false|
       
   538     |check_local_user|Use: routers**|Type: boolean|Default: false|
       
   539     |condition|Use: routers**|Type: string*|Default: unset|
       
   540     |debug_print|Use: routers|Type: string*|Default: unset|
       
   541     |disable_logging|Use: routers|Type: boolean|Default: false|
       
   542     |domains|Use: routers**|Type: domain list*|Default: unset|
       
   543     |driver|Use: routers|Type: string|Default: unset|
       
   544     |errors_to|Use: routers|Type: string*|Default: unset|
       
   545     |expn|Use: routers**|Type: boolean|Default: true|
       
   546     |fail_verify|Use: routers|Type: boolean|Default: false|
       
   547     |fail_verify_recipient|Use: routers|Type: boolean|Default: false|
       
   548     |fail_verify_sender|Use: routers|Type: boolean|Default: false|
       
   549     |fallback_hosts|Use: routers|Type: string list|Default: unset|
       
   550     |group|Use: routers|Type: string*|Default: see below|
       
   551     |headers_add|Use: routers|Type: list*|Default: unset|
       
   552     |headers_remove|Use: routers|Type: list*|Default: unset|
       
   553     |ignore_target_hosts|Use: routers|Type: host list*|Default: unset|
       
   554     |initgroups|Use: routers|Type: boolean|Default: false|
       
   555     |local_part_prefix|Use: routers**|Type: string list|Default: unset|
       
   556     |local_part_prefix_optional|Use: routers|Type: boolean|Default: false|
       
   557     |local_part_suffix|Use: routers**|Type: string list|Default: unset|
       
   558     |local_part_suffix_optional|Use: routers|Type: boolean|Default: false|
       
   559     |local_parts|Use: routers**|Type: local part list*|Default: unset|
       
   560     |log_as_local|Use: routers|Type: boolean|Default: see below|
       
   561     |more|Use: routers|Type: boolean*|Default: true|
       
   562     |pass_on_timeout|Use: routers|Type: boolean|Default: false|
       
   563     |pass_router|Use: routers|Type: string|Default: unset|
       
   564     |redirect_router|Use: routers|Type: string|Default: unset|
       
   565     |require_files|Use: routers**|Type: string list*|Default: unset|
       
   566     |retry_use_local_part|Use: routers|Type: boolean|Default: see below|
       
   567     |router_home_directory|Use: routers|Type: string*|Default: unset|
       
   568     |self|Use: routers|Type: string|Default: freeze|
       
   569     |senders|Use: routers**|Type: address list*|Default: unset|
       
   570     |translate_ip_address|Use: routers|Type: string*|Default: unset|
       
   571     |transport|Use: routers|Type: string*|Default: unset|
       
   572     |transport_current_directory|Use: routers|Type: string*|Default: unset|
       
   573     |transport_home_directory|Use: routers|Type: string*|Default: see below|
       
   574     |unseen|Use: routers|Type: boolean*|Default: false|
       
   575     |user|Use: routers|Type: string*|Default: see below|
       
   576     |verify|Use: routers**|Type: boolean|Default: true|
       
   577     |verify_only|Use: routers**|Type: boolean|Default: false|
       
   578     |verify_recipient|Use: routers**|Type: boolean|Default: true|
       
   579     |verify_sender|Use: routers**|Type: boolean|Default: true|
       
   580     |check_secondary_mx|Use: dnslookup|Type: boolean|Default: false|
       
   581     |check_srv|Use: dnslookup|Type: string*|Default: unset|
       
   582     |dnssec_request_domains|Use: dnslookup|Type: domain list*|Default: unset|
       
   583     |dnssec_require_domains|Use: dnslookup|Type: domain list*|Default: unset|
       
   584     |mx_domains|Use: dnslookup|Type: domain list*|Default: unset|
       
   585     |mx_fail_domains|Use: dnslookup|Type: domain list*|Default: unset|
       
   586     |qualify_single|Use: dnslookup|Type: boolean|Default: true|
       
   587     |rewrite_headers|Use: dnslookup|Type: boolean|Default: true|
       
   588     |same_domain_copy_routing|Use: dnslookup|Type: boolean|Default: false|
       
   589     |search_parents|Use: dnslookup|Type: boolean|Default: false|
       
   590     |srv_fail_domains|Use: dnslookup|Type: domain list*|Default: unset|
       
   591     |widen_domains|Use: dnslookup|Type: string list|Default: unset|
       
   592     |hosts|Use: iplookup|Type: string|Default: unset|
       
   593     |optional|Use: iplookup|Type: boolean|Default: false|
       
   594     |port|Use: iplookup|Type: integer|Default: 0|
       
   595     |protocol|Use: iplookup|Type: string|Default: udp|
       
   596     |query|Use: iplookup|Type: string*|Default: see below|
       
   597     |reroute|Use: iplookup|Type: string*|Default: unset|
       
   598     |response_pattern|Use: iplookup|Type: string|Default: unset|
       
   599     |timeout|Use: iplookup|Type: time|Default: 5s|
       
   600     |host_all_ignored|Use: manualroute|Type: string|Default: defer|
       
   601     |host_find_failed|Use: manualroute|Type: string|Default: freeze|
       
   602     |hosts_randomize|Use: manualroute|Type: boolean|Default: false|
       
   603     |route_data|Use: manualroute|Type: string*|Default: unset|
       
   604     |route_list|Use: manualroute|Type: string list|Default: unset|
       
   605     |same_domain_copy_routing|Use: manualroute|Type: boolean|Default: false|
       
   606     |command|Use: queryprogram|Type: string*|Default: unset|
       
   607     |command_group|Use: queryprogram|Type: string|Default: unset|
       
   608     |command_user|Use: queryprogram|Type: string|Default: unset|
       
   609     |current_directory|Use: queryprogram|Type: string|Default: /|
       
   610     |timeout|Use: queryprogram|Type: time|Default: 1h|
       
   611     |allow_defer|Use: redirect|Type: boolean|Default: false|
       
   612     |allow_fail|Use: redirect|Type: boolean|Default: false|
       
   613     |allow_filter|Use: redirect|Type: boolean|Default: false|
       
   614     |allow_freeze|Use: redirect|Type: boolean|Default: false|
       
   615     |check_ancestor|Use: redirect|Type: boolean|Default: false|
       
   616     |check_group|Use: redirect|Type: boolean|Default: see below|
       
   617     |check_owner|Use: redirect|Type: boolean|Default: see below|
       
   618     |data|Use: redirect|Type: string*|Default: unset|
       
   619     |directory_transport|Use: redirect|Type: string*|Default: unset|
       
   620     |file|Use: redirect|Type: string*|Default: unset|
       
   621     |file_transport|Use: redirect|Type: string*|Default: unset|
       
   622     |filter_prepend_home|Use: redirect|Type: boolean|Default: true|
       
   623     |forbid_blackhole|Use: redirect|Type: boolean|Default: false|
       
   624     |forbid_exim_filter|Use: redirect|Type: boolean|Default: false|
       
   625     |forbid_file|Use: redirect|Type: boolean|Default: false|
       
   626     |forbid_filter_dlfunc|Use: redirect|Type: boolean|Default: false|
       
   627     |forbid_filter_existstest|Use: redirect|Type: boolean|Default: false|
       
   628     |forbid_filter_logwrite|Use: redirect|Type: boolean|Default: false|
       
   629     |forbid_filter_lookup|Use: redirect|Type: boolean|Default: false|
       
   630     |forbid_filter_perl|Use: redirect|Type: boolean|Default: false|
       
   631     |forbid_filter_readfile|Use: redirect|Type: boolean|Default: false|
       
   632     |forbid_filter_readsocket|Use: redirect|Type: boolean|Default: false|
       
   633     |forbid_filter_reply|Use: redirect|Type: boolean|Default: false|
       
   634     |forbid_filter_run|Use: redirect|Type: boolean|Default: false|
       
   635     |forbid_include|Use: redirect|Type: boolean|Default: false|
       
   636     |forbid_pipe|Use: redirect|Type: boolean|Default: false|
       
   637     |forbid_sieve_filter|Use: redirect|Type: boolean|Default: false|
       
   638     |forbid_smtp_code|Use: redirect|Type: boolean|Default: false|
       
   639     |hide_child_in_errmsg|Use: redirect|Type: boolean|Default: false|
       
   640     |ignore_eacces|Use: redirect|Type: boolean|Default: false|
       
   641     |ignore_enotdir|Use: redirect|Type: boolean|Default: false|
       
   642     |include_directory|Use: redirect|Type: string|Default: unset|
       
   643     |modemask|Use: redirect|Type: octal integer|Default: 022|
       
   644     |one_time|Use: redirect|Type: boolean|Default: false|
       
   645     |owners|Use: redirect|Type: string list|Default: unset|
       
   646     |owngroups|Use: redirect|Type: string list|Default: unset|
       
   647     |pipe_transport|Use: redirect|Type: string*|Default: unset|
       
   648     |qualify_domain|Use: redirect|Type: string*|Default: unset|
       
   649     |qualify_preserve_domain|Use: redirect|Type: boolean|Default: false|
       
   650     |repeat_use|Use: redirect|Type: boolean|Default: true|
       
   651     |reply_transport|Use: redirect|Type: string*|Default: unset|
       
   652     |rewrite|Use: redirect|Type: boolean|Default: true|
       
   653     |sieve_subaddress|Use: redirect|Type: string*|Default: unset|
       
   654     |sieve_useraddress|Use: redirect|Type: string*|Default: unset|
       
   655     |sieve_vacation_directory|Use: redirect|Type: string*|Default: unset|
       
   656     |skip_syntax_errors|Use: redirect|Type: boolean|Default: false|
       
   657     |syntax_errors_text|Use: redirect|Type: string*|Default: unset|
       
   658     |syntax_errors_to|Use: redirect|Type: string|Default: unset|
       
   659     |body_only|Use: transports|Type: boolean|Default: false|
       
   660     |current_directory|Use: transports|Type: string*|Default: unset|
       
   661     |disable_logging|Use: transports|Type: boolean|Default: false|
       
   662     |debug_print|Use: transports|Type: string*|Default: unset|
       
   663     |delivery_date_add|Use: transports|Type: boolean|Default: false|
       
   664     |driver|Use: transports|Type: string|Default: unset|
       
   665     |envelope_to_add|Use: transports|Type: boolean|Default: false|
       
   666     |group|Use: transports|Type: string*|Default: Exim group|
       
   667     |headers_add|Use: transports|Type: list*|Default: unset|
       
   668     |headers_only|Use: transports|Type: boolean|Default: false|
       
   669     |headers_remove|Use: transports|Type: list*|Default: unset|
       
   670     |headers_rewrite|Use: transports|Type: string|Default: unset|
       
   671     |home_directory|Use: transports|Type: string*|Default: unset|
       
   672     |initgroups|Use: transports|Type: boolean|Default: false|
       
   673     |message_size_limit|Use: transports|Type: string*|Default: 0|
       
   674     |rcpt_include_affixes|Use: transports|Type: boolean|Default: false|
       
   675     |retry_use_local_part|Use: transports|Type: boolean|Default: see below|
       
   676     |return_path|Use: transports|Type: string*|Default: unset|
       
   677     |return_path_add|Use: transports|Type: boolean|Default: false|
       
   678     |shadow_condition|Use: transports|Type: string*|Default: unset|
       
   679     |shadow_transport|Use: transports|Type: string|Default: unset|
       
   680     |transport_filter|Use: transports|Type: string*|Default: unset|
       
   681     |transport_filter_timeout|Use: transports|Type: time|Default: 5m|
       
   682     |user|Use: transports|Type: string*|Default: Exim user|
       
   683     |allow_fifo|Use: appendfile|Type: boolean|Default: false|
       
   684     |allow_symlink|Use: appendfile|Type: boolean|Default: false|
       
   685     |batch_id|Use: appendfile|Type: string*|Default: unset|
       
   686     |batch_max|Use: appendfile|Type: integer|Default: 1|
       
   687     |check_group|Use: appendfile|Type: boolean|Default: false|
       
   688     |check_owner|Use: appendfile|Type: boolean|Default: true|
       
   689     |check_string|Use: appendfile|Type: string|Default: see below|
       
   690     |create_directory|Use: appendfile|Type: boolean|Default: true|
       
   691     |create_file|Use: appendfile|Type: string|Default: anywhere|
       
   692     |directory|Use: appendfile|Type: string*|Default: unset|
       
   693     |directory_file|Use: appendfile|Type: string*|Default: see below|
       
   694     |directory_mode|Use: appendfile|Type: octal integer|Default: 0700|
       
   695     |escape_string|Use: appendfile|Type: string|Default: see description|
       
   696     |file|Use: appendfile|Type: string*|Default: unset|
       
   697     |file_format|Use: appendfile|Type: string|Default: unset|
       
   698     |file_must_exist|Use: appendfile|Type: boolean|Default: false|
       
   699     |lock_fcntl_timeout|Use: appendfile|Type: time|Default: 0s|
       
   700     |lock_flock_timeout|Use: appendfile|Type: time|Default: 0s|
       
   701     |lock_interval|Use: appendfile|Type: time|Default: 3s|
       
   702     |lock_retries|Use: appendfile|Type: integer|Default: 10|
       
   703     |lockfile_mode|Use: appendfile|Type: octal integer|Default: 0600|
       
   704     |lockfile_timeout|Use: appendfile|Type: time|Default: 30m|
       
   705     |mailbox_filecount|Use: appendfile|Type: string*|Default: unset|
       
   706     |mailbox_size|Use: appendfile|Type: string*|Default: unset|
       
   707     |maildir_format|Use: appendfile|Type: boolean|Default: false|
       
   708     |maildir_quota_directory_regex|Use: appendfile|Type: string|Default: See below|
       
   709     |maildir_retries|Use: appendfile|Type: integer|Default: 10|
       
   710     |maildir_tag|Use: appendfile|Type: string*|Default: unset|
       
   711     |maildir_use_size_file|Use: appendfile*|Type: boolean|Default: false|
       
   712     |maildirfolder_create_regex|Use: appendfile|Type: string|Default: unset|
       
   713     |mailstore_format|Use: appendfile|Type: boolean|Default: false|
       
   714     |mailstore_prefix|Use: appendfile|Type: string*|Default: unset|
       
   715     |mailstore_suffix|Use: appendfile|Type: string*|Default: unset|
       
   716     |mbx_format|Use: appendfile|Type: boolean|Default: false|
       
   717     |message_prefix|Use: appendfile|Type: string*|Default: see below|
       
   718     |message_suffix|Use: appendfile|Type: string*|Default: see below|
       
   719     |mode|Use: appendfile|Type: octal integer|Default: 0600|
       
   720     |mode_fail_narrower|Use: appendfile|Type: boolean|Default: true|
       
   721     |notify_comsat|Use: appendfile|Type: boolean|Default: false|
       
   722     |quota|Use: appendfile|Type: string*|Default: unset|
       
   723     |quota_directory|Use: appendfile|Type: string*|Default: unset|
       
   724     |quota_filecount|Use: appendfile|Type: string*|Default: 0|
       
   725     |quota_is_inclusive|Use: appendfile|Type: boolean|Default: true|
       
   726     |quota_size_regex|Use: appendfile|Type: string|Default: unset|
       
   727     |quota_warn_message|Use: appendfile|Type: string*|Default: see below|
       
   728     |quota_warn_threshold|Use: appendfile|Type: string*|Default: 0|
       
   729     |use_bsmtp|Use: appendfile|Type: boolean|Default: false|
       
   730     |use_crlf|Use: appendfile|Type: boolean|Default: false|
       
   731     |use_fcntl_lock|Use: appendfile|Type: boolean|Default: see below|
       
   732     |use_flock_lock|Use: appendfile|Type: boolean|Default: false|
       
   733     |use_lockfile|Use: appendfile|Type: boolean|Default: see below|
       
   734     |use_mbx_lock|Use: appendfile|Type: boolean|Default: see below|
       
   735     |bcc|Use: autoreply|Type: string*|Default: unset|
       
   736     |cc|Use: autoreply|Type: string*|Default: unset|
       
   737     |file|Use: autoreply|Type: string*|Default: unset|
       
   738     |file_expand|Use: autoreply|Type: boolean|Default: false|
       
   739     |file_optional|Use: autoreply|Type: boolean|Default: false|
       
   740     |from|Use: autoreply|Type: string*|Default: unset|
       
   741     |headers|Use: autoreply|Type: string*|Default: unset|
       
   742     |log|Use: autoreply|Type: string*|Default: unset|
       
   743     |mode|Use: autoreply|Type: octal integer|Default: 0600|
       
   744     |never_mail|Use: autoreply|Type: address list*|Default: unset|
       
   745     |once|Use: autoreply|Type: string*|Default: unset|
       
   746     |once_file_size|Use: autoreply|Type: integer|Default: 0|
       
   747     |once_repeat|Use: autoreply|Type: time*|Default: 0s|
       
   748     |reply_to|Use: autoreply|Type: string*|Default: unset|
       
   749     |return_message|Use: autoreply|Type: boolean|Default: false|
       
   750     |subject|Use: autoreply|Type: string*|Default: unset|
       
   751     |text|Use: autoreply|Type: string*|Default: unset|
       
   752     |to|Use: autoreply|Type: string*|Default: unset|
       
   753     |batch_id|Use: lmtp|Type: string*|Default: unset|
       
   754     |batch_max|Use: lmtp|Type: integer|Default: 1|
       
   755     |command|Use: lmtp|Type: string*|Default: unset|
       
   756     |ignore_quota|Use: lmtp|Type: boolean|Default: false|
       
   757     |socket|Use: lmtp|Type: string*|Default: unset|
       
   758     |timeout|Use: lmtp|Type: time|Default: 5m|
       
   759     |allow_commands|Use: pipe|Type: string list*|Default: unset|
       
   760     |batch_id|Use: pipe|Type: string*|Default: unset|
       
   761     |batch_max|Use: pipe|Type: integer|Default: 1|
       
   762     |check_string|Use: pipe|Type: string|Default: unset|
       
   763     |command|Use: pipe|Type: string*|Default: unset|
       
   764     |environment|Use: pipe|Type: string*|Default: unset|
       
   765     |escape_string|Use: pipe|Type: string|Default: unset|
       
   766     |freeze_exec_fail|Use: pipe|Type: boolean|Default: false|
       
   767     |freeze_signal|Use: pipe|Type: boolean|Default: false|
       
   768     |force_command|Use: pipe|Type: boolean|Default: false|
       
   769     |ignore_status|Use: pipe|Type: boolean|Default: false|
       
   770     |log_defer_output|Use: pipe|Type: boolean|Default: false|
       
   771     |log_fail_output|Use: pipe|Type: boolean|Default: false|
       
   772     |log_output|Use: pipe|Type: boolean|Default: false|
       
   773     |max_output|Use: pipe|Type: integer|Default: 20K|
       
   774     |message_prefix|Use: pipe|Type: string*|Default: see below|
       
   775     |message_suffix|Use: pipe|Type: string*|Default: see below|
       
   776     |path|Use: pipe|Type: string|Default: see below|
       
   777     |permit_coredump|Use: pipe|Type: boolean|Default: false|
       
   778     |pipe_as_creator|Use: pipe|Type: boolean|Default: false|
       
   779     |restrict_to_path|Use: pipe|Type: boolean|Default: false|
       
   780     |return_fail_output|Use: pipe|Type: boolean|Default: false|
       
   781     |return_output|Use: pipe|Type: boolean|Default: false|
       
   782     |temp_errors|Use: pipe|Type: string list|Default: see below|
       
   783     |timeout|Use: pipe|Type: time|Default: 1h|
       
   784     |timeout_defer|Use: pipe|Type: boolean|Default: false|
       
   785     |umask|Use: pipe|Type: octal integer|Default: 022|
       
   786     |use_bsmtp|Use: pipe|Type: boolean|Default: false|
       
   787     |use_classresources|Use: pipe|Type: boolean|Default: false|
       
   788     |use_crlf|Use: pipe|Type: boolean|Default: false|
       
   789     |use_shell|Use: pipe|Type: boolean|Default: false|
       
   790     |address_retry_include_sender|Use: smtp|Type: boolean|Default: true|
       
   791     |allow_localhost|Use: smtp|Type: boolean|Default: false|
       
   792     |authenticated_sender|Use: smtp|Type: string*|Default: unset|
       
   793     |authenticated_sender_force|Use: smtp|Type: boolean|Default: false|
       
   794     |command_timeout|Use: smtp|Type: time|Default: 5m|
       
   795     |connect_timeout|Use: smtp|Type: time|Default: 5m|
       
   796     |connection_max_messages|Use: smtp|Type: integer|Default: 500|
       
   797     |data_timeout|Use: smtp|Type: time|Default: 5m|
       
   798     |delay_after_cutoff|Use: smtp|Type: boolean|Default: true|
       
   799     |dns_qualify_single|Use: smtp|Type: boolean|Default: true|
       
   800     |dns_search_parents|Use: smtp|Type: boolean|Default: false|
       
   801     |dnssec_request_domains|Use: smtp|Type: domain list*|Default: unset|
       
   802     |dnssec_require_domains|Use: smtp|Type: domain list*|Default: unset|
       
   803     |dscp|Use: smtp|Type: string*|Default: unset|
       
   804     |fallback_hosts|Use: smtp|Type: string list|Default: unset|
       
   805     |final_timeout|Use: smtp|Type: time|Default: 10m|
       
   806     |gethostbyname|Use: smtp|Type: boolean|Default: false|
       
   807     |gnutls_compat_mode|Use: smtp|Type: boolean|Default: unset|
       
   808     |helo_data|Use: smtp|Type: string*|Default: see below|
       
   809     |hosts|Use: smtp|Type: string list*|Default: unset|
       
   810     |hosts_avoid_esmtp|Use: smtp|Type: host list*|Default: unset|
       
   811     |hosts_avoid_pipelining|Use: smtp|Type: host list*|Default: unset|
       
   812     |hosts_avoid_tls|Use: smtp|Type: host list*|Default: unset|
       
   813     |hosts_verify_avoid_tls|Use: smtp|Type: host list*|Default: *|
       
   814     |hosts_max_try|Use: smtp|Type: integer|Default: 5|
       
   815     |hosts_max_try_hardlimit|Use: smtp|Type: integer|Default: 50|
       
   816     |hosts_nopass_tls|Use: smtp|Type: host list*|Default: unset|
       
   817     |hosts_override|Use: smtp|Type: boolean|Default: false|
       
   818     |hosts_randomize|Use: smtp|Type: boolean|Default: false|
       
   819     |hosts_require_auth|Use: smtp|Type: host list*|Default: unset|
       
   820     |hosts_request_ocsp|Use: smtp|Type: host list*|Default: *|
       
   821     |hosts_require_ocsp|Use: smtp|Type: host list*|Default: unset|
       
   822     |hosts_require_tls|Use: smtp|Type: host list*|Default: unset|
       
   823     |hosts_try_auth|Use: smtp|Type: host list*|Default: unset|
       
   824     |hosts_try_prdr|Use: smtp|Type: host list*|Default: unset|
       
   825     |interface|Use: smtp|Type: string list*|Default: unset|
       
   826     |keepalive|Use: smtp|Type: boolean|Default: true|
       
   827     |lmtp_ignore_quota|Use: smtp|Type: boolean|Default: false|
       
   828     |max_rcpt|Use: smtp|Type: integer|Default: 100|
       
   829     |multi_domain|Use: smtp|Type: boolean|Default: true|
       
   830     |port|Use: smtp|Type: string*|Default: see below|
       
   831     |protocol|Use: smtp|Type: string|Default: smtp|
       
   832     |retry_include_ip_address|Use: smtp|Type: boolean|Default: true|
       
   833     |serialize_hosts|Use: smtp|Type: host list*|Default: unset|
       
   834     |size_addition|Use: smtp|Type: integer|Default: 1024|
       
   835     |tls_certificate|Use: smtp|Type: string*|Default: unset|
       
   836     |tls_crl|Use: smtp|Type: string*|Default: unset|
       
   837     |tls_dh_min_bits|Use: smtp|Type: integer|Default: 1024|
       
   838     |tls_privatekey|Use: smtp|Type: string*|Default: unset|
       
   839     |tls_require_ciphers|Use: smtp|Type: string*|Default: unset|
       
   840     |tls_sni|Use: smtp|Type: string*|Default: unset|
       
   841     |tls_tempfail_tryclear|Use: smtp|Type: boolean|Default: true|
       
   842     |tls_try_verify_hosts|Use: smtp|Type: host list* unset|Default:|
       
   843     |tls_verify_certificates|Use: smtp|Type: string*|Default: unset|
       
   844     |tls_verify_hosts|Use: smtp|Type: host list* unset|Default:|
       
   845     |client_condition|Use: authenticators|Type: string*|Default: unset|
       
   846     |client_set_id|Use: authenticators|Type: string*|Default: unset|
       
   847     |driver|Use: authenticators|Type: string|Default: unset|
       
   848     |public_name|Use: authenticators|Type: string|Default: unset|
       
   849     |server_advertise_condition|Use: authenticators|Type: string*|Default: unset|
       
   850     |server_condition|Use: authenticators|Type: string*|Default: unset|
       
   851     |server_debug_print|Use: authenticators|Type: string*|Default: unset|
       
   852     |server_set_id|Use: authenticators|Type: string*|Default: unset|
       
   853     |server_mail_auth_condition|Use: authenticators|Type: string*|Default: unset|
       
   854     |server_condition|Use: authenticators|Type: string*|Default: unset|
       
   855     |server_prompts|Use: plaintext|Type: string*|Default: unset|
       
   856     |client_ignore_invalid_base64|Use: plaintext|Type: boolean|Default: false|
       
   857     |client_send|Use: plaintext|Type: string*|Default: unset|
       
   858     |server_secret|Use: cram_md5|Type: string*|Default: unset|
       
   859     |client_name|Use: cram_md5|Type: string*|Default: the primary host name|
       
   860     |client_secret|Use: cram_md5|Type: string*|Default: unset|
       
   861     |server_hostname|Use: cyrus_sasl|Type: string*|Default: see below|
       
   862     |server_mech|Use: cyrus_sasl|Type: string|Default: see below|
       
   863     |server_realm|Use: cyrus_sasl|Type: string*|Default: unset|
       
   864     |server_service|Use: cyrus_sasl|Type: string|Default: "smtp"|
       
   865     |server_socket|Use: dovecot|Type: string|Default: unset|
       
   866     |server_channelbinding|Use: gsasl|Type: boolean|Default: false|
       
   867     |server_hostname|Use: gsasl|Type: string*|Default: see below|
       
   868     |server_mech|Use: gsasl|Type: string|Default: see below|
       
   869     |server_password|Use: gsasl|Type: string*|Default: unset|
       
   870     |server_realm|Use: gsasl|Type: string*|Default: unset|
       
   871     |server_scram_iter|Use: gsasl|Type: string*|Default: unset|
       
   872     |server_scram_salt|Use: gsasl|Type: string*|Default: unset|
       
   873     |server_service|Use: gsasl|Type: string|Default: "smtp"|
       
   874     |server_hostname|Use: heimdal_gssapi|Type: string*|Default: see below|
       
   875     |server_keytab|Use: heimdal_gssapi|Type: string*|Default: unset|
       
   876     |server_service|Use: heimdal_gssapi|Type: string*|Default: smtp|
       
   877     |server_password|Use: spa|Type: string*|Default: unset|
       
   878     |client_domain|Use: spa|Type: string*|Default: unset|
       
   879     |client_password|Use: spa|Type: string*|Default: unset|
       
   880     |client_username|Use: spa|Type: string*|Default: unset|
       
   881     |dkim_domain|Use: smtp|Type: string*|Default: unset|
       
   882     |dkim_selector|Use: smtp|Type: string*|Default: unset|
       
   883     |dkim_private_key|Use: smtp|Type: string*|Default: unset|
       
   884     |dkim_canon|Use: smtp|Type: string*|Default: unset|
       
   885     |dkim_strict|Use: smtp|Type: string*|Default: unset|
       
   886     |dkim_sign_headers|Use: smtp|Type: string*|Default: unset|
       
   887     }}}
       
   888 
       
   889 ## List of Variables {{{
       
   890 
       
   891     $0, $1, etc
       
   892     $acl_arg1, $acl_arg2, etc
       
   893     $acl_c...
       
   894     $acl_m...
       
   895     $acl_narg
       
   896     $acl_verify_message
       
   897     $address_data
       
   898     $address_file
       
   899     $address_pipe
       
   900     $auth1 - $auth3
       
   901     $authenticated_id
       
   902     $authenticated_fail_id
       
   903     $authenticated_sender
       
   904     $authentication_failed
       
   905     $av_failed
       
   906 
       
   907     $body_linecount
       
   908     $body_zerocount
       
   909     $bounce_recipient
       
   910     $bounce_return_size_limit
       
   911 
       
   912     $caller_gid
       
   913     $caller_uid
       
   914     $compile_date
       
   915     $compile_number
       
   916 
       
   917     $demime_errorlevel
       
   918     $demime_reason
       
   919     $dnslist_domain, $dnslist_matched, $dnslist_text, $dnslist_value
       
   920     $domain
       
   921     $domain_data
       
   922 
       
   923     $exim_gid
       
   924     $exim_path
       
   925     $exim_uid
       
   926 
       
   927     $found_extension
       
   928     $header_<name>
       
   929 
       
   930     $headers_added
       
   931     $home
       
   932     $host
       
   933     $host_address
       
   934     $host_data
       
   935     $host_lookup_deferred
       
   936     $host_lookup_failed
       
   937     $host_port
       
   938 
       
   939     $inode
       
   940     $interface_address
       
   941     $interface_port
       
   942     $item
       
   943 
       
   944     $ldap_dn
       
   945     $load_average
       
   946     $local_part
       
   947     $local_part_data
       
   948     $local_part_prefix
       
   949     $local_part_suffix
       
   950     $local_scan_data
       
   951     $local_user_gid
       
   952     $local_user_uid
       
   953     $localhost_number
       
   954     $log_inodes
       
   955     $log_space
       
   956     $lookup_dnssec_authenticated
       
   957 
       
   958     $mailstore_basename
       
   959     $malware_name
       
   960     $max_received_linelength
       
   961     $message_age
       
   962     $message_body
       
   963     $message_body_end
       
   964     $message_body_size
       
   965     $message_exim_id
       
   966     $message_headers
       
   967     $message_headers_raw
       
   968     $message_id
       
   969     $message_linecount
       
   970     $message_size
       
   971     $mime_xxx
       
   972 
       
   973     $n0 - $n9
       
   974 
       
   975     $original_domain
       
   976     $original_local_part
       
   977     $originator_gid
       
   978     $originator_uid
       
   979 
       
   980     $parent_domain
       
   981     $parent_local_part
       
   982     $pid
       
   983     $pipe_addresses
       
   984     $primary_hostname
       
   985     $prvscheck_address
       
   986     $prvscheck_keynum
       
   987     $prvscheck_result
       
   988     $qualify_domain
       
   989     $qualify_recipient
       
   990 
       
   991     $rcpt_count
       
   992     $rcpt_defer_count
       
   993     $rcpt_fail_count
       
   994     $received_count
       
   995     $received_for
       
   996     $received_ip_address
       
   997     $received_port
       
   998     $received_protocol
       
   999     $received_time
       
  1000     $recipient_data
       
  1001     $recipient_verify_failure
       
  1002     $recipients
       
  1003     $recipients_count
       
  1004     $regex_match_string
       
  1005     $reply_address
       
  1006     $return_path
       
  1007     $return_size_limit
       
  1008     $router_name
       
  1009     $runrc
       
  1010 
       
  1011     $self_hostname
       
  1012     $sender_address
       
  1013     $sender_address_data
       
  1014     $sender_address_domain
       
  1015     $sender_address_local_part
       
  1016     $sender_data
       
  1017     $sender_fullhost
       
  1018     $sender_helo_name
       
  1019     $sender_host_address
       
  1020     $sender_host_authenticated
       
  1021     $sender_host_dnssec
       
  1022     $sender_host_name
       
  1023     $sender_host_port
       
  1024     $sender_ident
       
  1025     $sender_rate_xxx
       
  1026     $sender_rcvhost
       
  1027     $sender_verify_failure
       
  1028     $sending_ip_address
       
  1029     $sending_port
       
  1030     $smtp_active_hostname
       
  1031     $smtp_command
       
  1032     $smtp_command_argument
       
  1033     $smtp_count_at_connection_start
       
  1034     $sn0 - $sn9
       
  1035     $spam_xxx
       
  1036     $spool_directory
       
  1037     $spool_inodes
       
  1038     $spool_space
       
  1039 
       
  1040     $thisaddress
       
  1041     $tls_in_bits
       
  1042     $tls_out_bits
       
  1043     $tls_in_ourcert
       
  1044     $tls_in_peercert
       
  1045     $tls_out_ourcert
       
  1046     $tls_out_peercert
       
  1047     $tls_in_certificate_verified
       
  1048     $tls_out_certificate_verified
       
  1049     $tls_in_cipher
       
  1050     $tls_out_cipher
       
  1051     $tls_in_ocsp
       
  1052     $tls_out_ocsp
       
  1053     $tls_in_peerdn
       
  1054     $tls_out_peerdn
       
  1055     $tls_in_sni
       
  1056     $tls_out_sni
       
  1057 
       
  1058     $tod_bsdinbox
       
  1059     $tod_epoch
       
  1060     $tod_epoch_l
       
  1061     $tod_full
       
  1062     $tod_log
       
  1063     $tod_logfile
       
  1064     $tod_zone
       
  1065     $tod_zulu
       
  1066     $transport_name
       
  1067 
       
  1068     $value
       
  1069     $verify_mode
       
  1070     $version_number
       
  1071 
       
  1072     $warn_message_delay
       
  1073     $warn_message_recipients
       
  1074     }}}
       
  1075 
       
  1076 ## List of Operators {{{
       
  1077 
       
  1078     ${quote_<lookup-type>:<string>}
       
  1079     ${quote_ldap: a(bc)*, a<yz>; }
       
  1080     ${quote_ldap_dn: a(bc)*, a<yz>; }
       
  1081     ${<op>:<string>}
       
  1082     ${address:<string>}
       
  1083     ${addresses:<string>}
       
  1084     ${base62:<digits>}
       
  1085     ${base62d:<base-62 digits>}
       
  1086     ${domain:<string>}
       
  1087     ${escape:<string>}
       
  1088     ${eval:<string>} and ${eval10:<string>}
       
  1089     ${expand:<string>}
       
  1090     ${from_utf8:<string>}
       
  1091     ${hash_<n>_<m>:<string>}
       
  1092     ${hex2b64:<hexstring>}
       
  1093     ${hexquote:<string>}
       
  1094     ${lc:<string>}
       
  1095     ${length_<number>:<string>}
       
  1096     ${listcount:<string>}
       
  1097     ${listnamed:<name>} and ${listnamed_<type>:<name>}
       
  1098     ${local_part:<string>}
       
  1099     ${mask:<IP address>/<bit count>}
       
  1100     ${md5:<string>}
       
  1101     ${nhash_<n>_<m>:<string>}
       
  1102     ${quote:<string>}
       
  1103     ${quote_local_part:<string>}
       
  1104     ${quote_<lookup-type>:<string>}
       
  1105     ${randint:<n>}
       
  1106     ${reverse_ip:<ipaddr>}
       
  1107     ${rfc2047:<string>}
       
  1108     ${rfc2047d:<string>}
       
  1109     ${rxquote:<string>}
       
  1110     ${sha1:<string>}
       
  1111     ${sha256:<certificate>}
       
  1112     ${stat:<string>}
       
  1113     ${str2b64:<string>}
       
  1114     ${strlen:<string>}
       
  1115     ${substr_<start>_<length>:<string>}
       
  1116     ${time_eval:<string>}
       
  1117     ${time_interval:<string>}
       
  1118     ${uc:<string>}
       
  1119     ${utf8clean:<string>}
       
  1120     }}}
       
  1121 
       
  1122 ## List of Conditions {{{
       
  1123 
       
  1124     acl {{<name>}{<arg1>}{<arg2>}...}
       
  1125     bool {<string>}
       
  1126     bool_lax {<string>}
       
  1127     crypteq {<string1>}{<string2>}
       
  1128     eq {<string1>}{<string2>}, eqi {<string1>}{<string2>}
       
  1129     exists {<file name>}
       
  1130     ge {<string1>}{<string2>}, gei {<string1>}{<string2>}
       
  1131     gt {<string1>}{<string2>}, gti {<string1>}{<string2>}
       
  1132     inlist {<string1>}{<string2>}, inlisti {<string1>}{<string2>}
       
  1133     isip {<string>}, isip4 {<string>}, isip6 {<string>}
       
  1134     ldapauth {<ldap query>}
       
  1135     le {<string1>}{<string2>}, lei {<string1>}{<string2>}
       
  1136     lt {<string1>}{<string2>}, lti {<string1>}{<string2>}
       
  1137     match {<string1>}{<string2>}
       
  1138     match_address {<string1>}{<string2>}
       
  1139     match_domain {<string1>}{<string2>}
       
  1140     match_ip {<string1>}{<string2>}
       
  1141     match_local_part {<string1>}{<string2>}
       
  1142     pam {<string1>:<string2>:...}
       
  1143     pwcheck {<string1>:<string2>}
       
  1144     radius {<authentication string>}
       
  1145     saslauthd {{<user>}{<password>}{<service>}{<realm>}}
       
  1146     or {{<cond1>}{<cond2>}...}
       
  1147     and {{<cond1>}{<cond2>}...}
       
  1148     }}}
       
  1149 
       
  1150 ## List of Functions {{{
       
  1151 
       
  1152     ${lookup dnsdb{mx=a.b.example}{$value}fail}
       
  1153     ${lookup dnsdb{ptr=192.168.4.5}{$value}fail}
       
  1154     ${lookup dnsdb{>: a=host1.example}}
       
  1155     ${lookup dnsdb{>\n,: txt=a.b.example}}
       
  1156     ${lookup dnsdb{>\n; txt=a.b.example}}
       
  1157     ${lookup dnsdb{spf=example.org}}
       
  1158     ${lookup dnsdb{mxh=a.b.example}}
       
  1159     ${lookup dnsdb{zns=xxx.quercite.com}}
       
  1160     ${lookup dnsdb{zns=xxx.edu}}
       
  1161     ${lookup dnsdb {csa=$sender_helo_name}}
       
  1162     ${lookup dnsdb {>; a+=$sender_helo_name}}
       
  1163     ${lookup dnsdb{one.domain.com:two.domain.com}}
       
  1164     ${lookup dnsdb{a=one.host.com:two.host.com}}
       
  1165     ${lookup dnsdb{ptr = <; 1.2.3.4 ; 4.5.6.8}}
       
  1166     ${lookup dnsdb{defer_lax,a=one.host.com:two.host.com}}
       
  1167     ${lookup dnsdb{a=one.host.com:two.host.com}}
       
  1168     ${quote_ldap: a(bc)*, a<yz>; }
       
  1169     ${quote_ldap_dn: a(bc)*, a<yz>; }
       
  1170     ${lookup ldap {ldapi://%2Ftmp%2Fldap.sock/o=...
       
  1171     ${lookup ldap
       
  1172     ${lookup mysql{select mailbox from users where id='userx'}\
       
  1173     ${lookup pgsql{select home,name from users where id='userx'}\
       
  1174     ${lookup mysql{servers=master; UPDATE ...} }
       
  1175     ${lookup pgsql{servers=master/db/name/pw; UPDATE ...} }
       
  1176     ${lookup sqlite {/some/thing/sqlitedb \
       
  1177     ${acl{<name>}{<arg>}...}
       
  1178     ${certextract{<field>}{<certificate>}{<string2>}{<string3>}}
       
  1179     ${dlfunc{<file>}{<function>}{<arg>}{<arg>}...}
       
  1180     ${extract{<key>}{<string1>}{<string2>}{<string3>}}
       
  1181     ${extract{<number>}{<separators>}{<string1>}{<string2>}{<string3>}}
       
  1182     ${filter{<string>}{<condition>}}
       
  1183     ${hash{<string1>}{<string2>}{<string3>}}
       
  1184     ${hmac{<hashname>}{<secret>}{<string>}}
       
  1185     ${if <condition> {<string1>}{<string2>}}
       
  1186     ${length{<string1>}{<string2>}}
       
  1187     ${listextract{<number>}{<string1>}{<string2>}{<string3>}}
       
  1188     ${lookup{<key>} <search type> {<file>} {<string1>} {<string2>}}
       
  1189     ${lookup <search type> {<query>} {<string1>} {<string2>}}
       
  1190     ${map{<string1>}{<string2>}}
       
  1191     ${nhash{<string1>}{<string2>}{<string3>}}
       
  1192     ${perl{<subroutine>}{<arg>}{<arg>}...}
       
  1193     ${prvs{<address>}{<secret>}{<keynumber>}}
       
  1194     ${prvscheck{<address>}{<secret>}{<string>}}
       
  1195     ${readfile{<file name>}{<eol string>}}
       
  1196     ${readsocket{<name>}{<request>}{<timeout>}{<eol string>}{<fail string>}}
       
  1197     ${reduce{<string1>}{<string2>}{<string3>}}
       
  1198     ${run{<command> <args>}{<string1>}{<string2>}}
       
  1199     ${sg{<subject>}{<regex>}{<replacement>}}
       
  1200     ${sort{<string>}{<comparator>}{<extractor>}}
       
  1201     ${substr{<string1>}{<string2>}{<string3>}}
       
  1202     ${tr{<subject>}{<characters>}{<replacements>}}
       
  1203     ${perl{foo}}
       
  1204     ${perl{foo}{argument}}
       
  1205     ${perl{foo}{argument1}{argument2} ... }
       
  1206     ${lookup dnsdb {csa=$sender_helo_name}}
       
  1207     }}}
       
  1208 
       
  1209 ## Routing Pre-Conditions {{{
       
  1210 
       
  1211     address_test
       
  1212     check_local_user
       
  1213     condition
       
  1214     domains
       
  1215     expn
       
  1216     local_part_prefix
       
  1217     local_part_suffix
       
  1218     local_parts
       
  1219     require_files
       
  1220     senders
       
  1221     verify
       
  1222     verify_only
       
  1223     verify_recipient
       
  1224     verify_sender
       
  1225     }}}
       
  1226 
       
  1227 
       
  1228 
       
  1229 Cheat sheet: http://www.datadisk.co.uk/html_docs/exim/exim_cs.htm
       
  1230 
       
  1231 # vim:tw=0:et:ts=4:sw=4:fdm=marker:
       
  1232