X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/71da6ae46ebda11989094def47c4145e6286c67a..transp_logging_1031:/doc/doc-txt/experimental-spec.txt diff --git a/doc/doc-txt/experimental-spec.txt b/doc/doc-txt/experimental-spec.txt index a7651f6c0..04fd5d35c 100644 --- a/doc/doc-txt/experimental-spec.txt +++ b/doc/doc-txt/experimental-spec.txt @@ -844,56 +844,55 @@ b. Configure, somewhere before the DATA ACL, the control option to -DBL (Database Logging) +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 allows the writing of exim internal log information +This feature may be used, for example, to write exim internal log information (not available otherwise) into a database. -In order to use DBL, you must set +In order to use the feature, you must set -EXPERIMENTAL_DBL=yes +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 8 more variables, available at end of +Additionally, there are 6 more variables, available at end of delivery: -dbl_delivery_ip IP of host, which has accepted delivery -dbl_delivery_port Port of remote host which has accepted delivery -dbl_delivery_fqdn FQDN of host, which has accepted delivery -dbl_delivery_local_part local part of address being delivered -dbl_delivery_domain domain part of address being delivered -dbl_delivery_confirmation SMTP confirmation message -router_name name of router -transport_name name of transport +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: -dbl_defer_errno Error number -dbl_defer_errstr Error string possibly containing more details +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 log successful deliveries, set the following option +To take action after successful deliveries, set the following option on any transport of interest. -dbl_delivery_query +tpda_delivery_action An example might look like: -dbl_delivery_query = \ +tpda_delivery_action = \ ${lookup pgsql {SELECT * FROM record_Delivery( \ '${quote_pgsql:$sender_address_domain}',\ '${quote_pgsql:${lc:$sender_address_local_part}}', \ - '${quote_pgsql:$dbl_delivery_domain}', \ - '${quote_pgsql:${lc:$dbl_delivery_local_part}}', \ - '${quote_pgsql:$dbl_delivery_ip}', \ - '${quote_pgsql:${lc:$dbl_delivery_fqdn}}', \ + '${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 @@ -904,7 +903,7 @@ 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: -dbl_host_defer_query +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 @@ -916,18 +915,18 @@ this is determined. Example: -dbl_host_defer_query = \ +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:$dbl_delivery_local_part}}', \ - delivdom = '${quote_mysql:$dbl_delivery_domain}', \ - delivip = '${quote_mysql:$dbl_delivery_ip}', \ - delivport = '${quote_mysql:$dbl_delivery_port}', \ - delivfqdn = '${quote_mysql:$dbl_delivery_fqdn}', \ - deliverrno = '${quote_mysql:$dbl_defer_errno}', \ - deliverrstr = '${quote_mysql:$dbl_defer_errstr}' \ + 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}' \ }} --------------------------------------------------------------