Merge branch 'patch-3' of https://github.com/bes-internal/exim into master_dmarc_doc
authorTodd Lyons <tlyons@exim.org>
Mon, 30 Sep 2013 19:55:44 +0000 (12:55 -0700)
committerTodd Lyons <tlyons@exim.org>
Mon, 30 Sep 2013 19:56:57 +0000 (12:56 -0700)
1  2 
doc/doc-txt/experimental-spec.txt

index 3e8f5c549fcdc6a167af37833f2242d8353b68da,f9be19cf701841d6434fe84c6337ea3384b1c188..271ab0ba042cc5f0b4899f1a7a60e824863712ad
@@@ -755,11 -755,13 +755,13 @@@ mean, refer to the DMARC website above
                  rejecting the email.
    o quarantine  The DMARC check failed and the library recommends
                  keeping it for further inspection.
+   o none        The DMARC check passed and the library recommends
+                 no specific action, neutral.
    o norecord    No policy section in the DMARC record for this
                  sender domain.
    o nofrom      Unable to determine the domain of the sender.
-   o none        There is no DMARC record for this sender domain.
-   o error       Library error or dns error.
+   o temperror   Library error or dns error.
 -  o off         The DMARC check was disable for this email.
++  o off         The DMARC check was disabled for this email.
  
  You can prefix each string with an exclamation mark to invert its
  meaning, for example "!accept" will match all results but
@@@ -844,90 -846,6 +846,90 @@@ b. Configure, somewhere before the DAT
  
  
  
 +Transport post-delivery actions
 +--------------------------------------------------------------
 +
 +An arbitrary per-transport string can be expanded on successful delivery,
 +and (for SMTP transports) a second string on deferrals caused by a host error.
 +This feature may be used, for example, to write exim internal log information
 +(not available otherwise) into a database.
 +
 +In order to use the feature, you must set
 +
 +EXPERIMENTAL_TPDA=yes
 +
 +in your Local/Makefile
 +
 +and define the expandable strings in the runtime config file, to
 +be executed at end of delivery.
 +
 +Additionally, there are 6 more variables, available at end of
 +delivery:
 +
 +tpda_delivery_ip             IP of host, which has accepted delivery
 +tpda_delivery_port           Port of remote host which has accepted delivery
 +tpda_delivery_fqdn           FQDN of host, which has accepted delivery
 +tpda_delivery_local_part     local part of address being delivered
 +tpda_delivery_domain         domain part of address being delivered
 +tpda_delivery_confirmation   SMTP confirmation message
 +
 +In case of a deferral caused by a host-error:
 +tpda_defer_errno             Error number
 +tpda_defer_errstr            Error string possibly containing more details
 +
 +The $router_name and $transport_name variables are also usable.
 +
 +
 +To take action after successful deliveries, set the following option
 +on any transport of interest.
 +
 +tpda_delivery_action
 +
 +An example might look like:
 +
 +tpda_delivery_action = \
 +${lookup pgsql {SELECT * FROM record_Delivery( \
 +    '${quote_pgsql:$sender_address_domain}',\
 +    '${quote_pgsql:${lc:$sender_address_local_part}}', \
 +    '${quote_pgsql:$tpda_delivery_domain}', \
 +    '${quote_pgsql:${lc:$tpda_delivery_local_part}}', \
 +    '${quote_pgsql:$tpda_delivery_ip}', \
 +    '${quote_pgsql:${lc:$tpda_delivery_fqdn}}', \
 +    '${quote_pgsql:$message_exim_id}')}}
 +
 +The string is expanded after the delivery completes and any
 +side-effects will happen.  The result is then discarded.
 +Note that for complex operations an ACL expansion can be used.
 +
 +
 +In order to log host deferrals, add the following option to an SMTP
 +transport:
 +
 +tpda_host_defer_action
 +
 +This is a private option of the SMTP transport. It is intended to
 +log failures of remote hosts. It is executed only when exim has
 +attempted to deliver a message to a remote host and failed due to
 +an error which doesn't seem to be related to the individual
 +message, sender, or recipient address.
 +See section 45.2 of the exim documentation for more details on how
 +this is determined.
 +
 +Example:
 +
 +tpda_host_defer_action = \
 +${lookup mysql {insert into delivlog set \
 +    msgid = '${quote_mysql:$message_exim_id}', \
 +    senderlp = '${quote_mysql:${lc:$sender_address_local_part}}', \
 +    senderdom = '${quote_mysql:$sender_address_domain}', \
 +    delivlp = '${quote_mysql:${lc:$tpda_delivery_local_part}}', \
 +    delivdom = '${quote_mysql:$tpda_delivery_domain}', \
 +    delivip = '${quote_mysql:$tpda_delivery_ip}', \
 +    delivport = '${quote_mysql:$tpda_delivery_port}', \
 +    delivfqdn = '${quote_mysql:$tpda_delivery_fqdn}', \
 +    deliverrno = '${quote_mysql:$tpda_defer_errno}', \
 +    deliverrstr = '${quote_mysql:$tpda_defer_errstr}' \
 +    }}
  
  --------------------------------------------------------------
  End of file