-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
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
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}' \
}}
--------------------------------------------------------------