I’ve compiled a vanilla 4.86 exim binary from standard EDITME setup
(with the exception of removing eximon).
I’ve tried to send an email requesting DSN to a Non DSN Aware mail
server and would therefore expect a DSN to be generated, but none was ?
Debug output :-
Exim version 4.86 uid=0 gid=0 pid=2822 D=fbb95dfd
Berkeley DB: Berkeley DB 4.7.25: (June 10, 2015)
Support for: iconv() DKIM DNSSEC PRDR OCSP
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch dbm dbmjz
dbmnz dnsdb
Authenticators:
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile autoreply pipe smtp
Fixed never_users: 0
Size of off_t: 8
Compiler: GCC [4.4.7 20120313 (Red Hat 4.4.7-16)]
Library version: PCRE: Compile: 7.8
Runtime: 7.8 2008-09-05
Total 8 lookups
WHITELIST_D_MACROS unset
TRUSTED_CONFIG_LIST unset
changed uid/gid: forcing real = effective
uid=0 gid=0 pid=2822
auxiliary group list: <none>
seeking password data for user "root": cache not available
getpwnam() succeeded uid=0 gid=0
configuration file is /usr/exim/configure
log selectors = 0000cffc 00332001
cwd=/root 5 args: /usr/exim/bin//exim -C /usr/exim/configure -bd
-d+expand
trusted user
admin user
DSN: dnslookupdsn propagating DSN
DSN: dnslookupnodsn propagating DSN
DSN: localusernodsn propagating DSN
DSN: localuserdsn propagating DSN
DSN: localuserfake propagating DSN
originator: uid=0 gid=0 login=root name=root
2822 listening on all interfaces (IPv4) port 25
2822 pid written to /var/spool/exim/exim-daemon.pid
2822 changed uid/gid: running as a daemon
2822 uid=93 gid=93 pid=2822
2822 auxiliary group list: 12 93
2822 LOG: MAIN
2822 exim 4.86 daemon started: pid=2822, no queue runs, listening for
SMTP on port 25 (IPv4)
2822 set_process_info: 2822 daemon: no queue runs, listening for SMTP
on port 25 (IPv4)
2822 daemon running with uid=93 gid=93 euid=93 egid=93
2822 Listening...
2822 Connection request from 127.0.0.1 port 45984
2822 search_tidyup called
2822 1 SMTP accept process running
2822 Listening...
2829 sender_fullhost = [127.0.0.1]
2829 sender_rcvhost = [127.0.0.1]
2829 Process 2829 is handling incoming connection from [127.0.0.1]
2829 checking for IP options
2829 no IP options found
2829 host in host_lookup? yes (matched "*")
2829 looking up host name for 127.0.0.1
2829 DNS lookup of 1.0.0.127.in-addr.arpa (PTR) succeeded
2829 Reverse DNS security status: unverified
2829 IP address lookup yielded "localhost"
2829 DNS lookup of localhost (A) gave HOST_NOT_FOUND
2829 returning DNS_NOMATCH
2829 no IP addresses found for localhost
2829 127.0.0.1 does not match any IP address for localhost
2829 sender_fullhost = [127.0.0.1]
2829 sender_rcvhost = [127.0.0.1]
2829 set_process_info: 2829 handling incoming connection from
[127.0.0.1]
2829 host in host_reject_connection? no (option unset)
2829 host in sender_unqualified_hosts? no (option unset)
2829 host in recipient_unqualified_hosts? no (option unset)
2829 host in helo_verify_hosts? no (option unset)
2829 host in helo_try_verify_hosts? no (option unset)
2829 host in helo_accept_junk_hosts? no (option unset)
2829 expanding: $smtp_active_hostname ESMTP Exim $version_number
$tod_full
2829 result: test.dsn.com ESMTP Exim 4.86 Fri, 30 Oct 2015 14:34:34
+0000
2829 SMTP>> 220 test.dsn.com ESMTP Exim 4.86 Fri, 30 Oct 2015 14:34:34
+0000
2829 Process 2829 is ready for new message
2829 smtp_setup_msg entered
2829 SMTP<< EHLO sendtest.com
2829 sendtest.com in helo_lookup_domains? no (end of list)
2829 sender_fullhost = (sendtest.com) [127.0.0.1]
2829 sender_rcvhost = [127.0.0.1] (helo=sendtest.com)
2829 set_process_info: 2829 handling incoming connection from
(sendtest.com) [127.0.0.1]
2829 host in dsn_advertise_hosts? yes (matched "*")
2829 host in pipelining_advertise_hosts? yes (matched "*")
2829 SMTP>> 250-test.dsn.com Hello sendtest.com [127.0.0.1]
2829 250-SIZE 52428800
2829 250-8BITMIME
2829 250-DSN
2829 250-PIPELINING
2829 250-PRDR
2829 250 HELP
2829 SMTP<< MAIL FROM: <fromuser5@???>
2829 SMTP>> 250 OK
2829 SMTP<< RCPT TO: <andrew.johnson@???>
NOTIFY=SUCCESS,FAILURE
2829 DSN: Setting notify success
2829 DSN: Setting notify failure
2829 DSN Flags: c
2829 using ACL "acl_check_rcpt"
2829 processing "accept"
2829 accept: condition test succeeded in ACL "acl_check_rcpt"
2829 end of ACL "acl_check_rcpt": ACCEPT
2829 SMTP>> 250 Accepted
2829 DSN: orcpt: NULL flags: 12
2829 SMTP<< DATA
2829 SMTP>> 354 Enter message, ending with "." on a line by itself
2829 search_tidyup called
2829 host in ignore_fromline_hosts? no (option unset)
2829 >>Headers received:
2829 From: fromuser5@???
2829 To: andrew.johnson@???
2829 Subject: test
2829
2829 rewrite_one_header: type=F:
2829 From: fromuser5@???
2829 rewrite_one_header: type=T:
2829 To: andrew.johnson@???
2829 search_tidyup called
2829 >>Headers after rewriting and local additions:
2829 F From: fromuser5@???
2829 T To: andrew.johnson@???
2829 Subject: test
2829
2829 Data file written for message 1ZsAlG-0000jd-2L
2829 expanding: ${tod_full}
2829 result: Fri, 30 Oct 2015 14:34:34 +0000
2829 condition: def:sender_rcvhost
2829 result: true
2829 expanding: from $sender_rcvhost
2829
2829 result: from [127.0.0.1] (helo=sendtest.com)
2829
2829 condition: def:sender_ident
2829 result: false
2829 expanding: $sender_ident
2829 result:
2829 skipping: result is not used
2829 expanding: from ${quote_local_part:$sender_ident}
2829 result: from
2829 skipping: result is not used
2829 condition: def:sender_helo_name
2829 result: false
2829 expanding: (helo=$sender_helo_name)
2829
2829 result: (helo=)
2829
2829 skipping: result is not used
2829 expanding: ${if def:sender_ident {from
${quote_local_part:$sender_ident} }}${if def:sender_helo_name
{(helo=$sender_helo_name)
2829 }}
2829 result:
2829 skipping: result is not used
2829 condition: def:received_protocol
2829 result: true
2829 expanding: with $received_protocol
2829 result: with esmtp
2829 condition: def:sender_address
2829 result: true
2829 expanding: (envelope-from <$sender_address>)
2829
2829 result: (envelope-from <fromuser5@???>)
2829
2829 condition: def:received_for
2829 result: true
2829 expanding:
2829 for $received_for
2829 result:
2829 for andrew.johnson@???
2829 expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
2829 }{${if def:sender_ident {from ${quote_local_part:$sender_ident}
}}${if def:sender_helo_name {(helo=$sender_helo_name)
2829 }}}}by $primary_hostname ${if def:received_protocol {with
$received_protocol}} (Exim $version_number)
2829 ${if def:sender_address {(envelope-from <$sender_address>)
2829 }}id $message_exim_id${if def:received_for {
2829 for $received_for}}
2829 result: Received: from [127.0.0.1] (helo=sendtest.com)
2829 by test.dsn.com with esmtp (Exim 4.86)
2829 (envelope-from <fromuser5@???>)
2829 id 1ZsAlG-0000jd-2L
2829 for andrew.johnson@???
2829 >>Generated Received: header line
2829 P Received: from [127.0.0.1] (helo=sendtest.com)
2829 by test.dsn.com with esmtp (Exim 4.86)
2829 (envelope-from <fromuser5@???>)
2829 id 1ZsAlG-0000jd-2L
2829 for andrew.johnson@???; Fri, 30 Oct 2015 14:34:34 +0000
2829 using ACL "acl_check_data"
2829 processing "accept"
2829 accept: condition test succeeded in ACL "acl_check_data"
2829 end of ACL "acl_check_data": ACCEPT
2829 calling local_scan(); timeout=300
2829 local_scan() returned 0 NULL
2829 expanding: ${tod_full}
2829 result: Fri, 30 Oct 2015 14:34:34 +0000
2829 Writing spool header file
2829 DSN: Write SPOOL :-dsn_envid NULL
2829 DSN: Write SPOOL :-dsn_ret 0
2829 DSN: Flags :12
2829 DSN: **** SPOOL_OUT - address: |andrew.johnson@???|
errorsto: |NULL| orcpt: |NULL| dsn_flags: 12
2829 Size of headers = 295
2829 LOG: MAIN
2829 <= fromuser5@??? H=(sendtest.com) [127.0.0.1] P=esmtp
S=319
2829 SMTP>> 250 OK id=1ZsAlG-0000jd-2L
2829 search_tidyup called
2829 Sender: fromuser5@???
2829 Recipients:
2829 andrew.johnson@???
2829 forked delivery process 2830
2829 Process 2829 is ready for new message
2829 smtp_setup_msg entered
2830 exec /usr/exim/bin/exim -d=0xfbbd5dfd -Mc 1ZsAlG-0000jd-2L
2830 Exim version 4.86 uid=93 gid=93 pid=2830 D=fbbd5dfd
Berkeley DB: Berkeley DB 4.7.25: (June 10, 2015)
Support for: iconv() DKIM DNSSEC PRDR OCSP
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch dbm dbmjz
dbmnz dnsdb
Authenticators:
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile autoreply pipe smtp
Fixed never_users: 0
Size of off_t: 8
Compiler: GCC [4.4.7 20120313 (Red Hat 4.4.7-16)]
Library version: PCRE: Compile: 7.8
Runtime: 7.8 2008-09-05
2830 Total 8 lookups
WHITELIST_D_MACROS unset
TRUSTED_CONFIG_LIST unset
2830 Exim has no root privilege: uid=93 gid=93 euid=93 egid=93
2830 changed uid/gid: forcing real = effective
2830 uid=93 gid=93 pid=2830
2830 auxiliary group list: 12 93
2830 seeking password data for user "root": cache not available
2830 getpwnam() succeeded uid=0 gid=0
2830 configuration file is /usr/exim/configure
2830 log selectors = 0000cffc 00332001
2830 cwd=/var/spool/exim 4 args: /usr/exim/bin/exim -d=0xfbbd5dfd -Mc
1ZsAlG-0000jd-2L
2830 trusted user
2830 admin user
2830 DSN: dnslookupdsn propagating DSN
2830 DSN: dnslookupnodsn propagating DSN
2830 DSN: localusernodsn propagating DSN
2830 DSN: localuserdsn propagating DSN
2830 DSN: localuserfake propagating DSN
2830 set_process_info: 2830 delivering specified messages
2830 set_process_info: 2830 delivering 1ZsAlG-0000jd-2L
2830 reading spool file 1ZsAlG-0000jd-2L-H
2830 user=exim uid=93 gid=93 sender=fromuser5@???
2830 sender_fullhost = (sendtest.com) [127.0.0.1]
2830 sender_rcvhost = [127.0.0.1] (helo=sendtest.com)
2830 sender_local=0 ident=unset
2830 Non-recipients:
2830 Empty Tree
2830 ---- End of tree ----
2830 recipients_count=1
2830 **** SPOOL_IN - Exim 4 standard format spoolfile
2830 **** SPOOL_IN - address: |andrew.johnson@???| orcpt:
|NULL| dsn_flags: 12
2830 body_linecount=1 message_linecount=8
2830 DSN: set orcpt: NULL flags: 12
2830 Delivery address list:
2830 andrew.johnson@???
2830 locking /var/spool/exim/db/retry.lockfile
2830 locked /var/spool/exim/db/retry.lockfile
2830 EXIM_DBOPEN(/var/spool/exim/db/retry)
2830 returned from EXIM_DBOPEN
2830 no retry data available
2830 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2830 Considering: andrew.johnson@???
2830 unique = andrew.johnson@???
2830 no domain retry record
2830 no address retry record
2830 andrew.johnson@???: queued for routing
2830 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2830 routing andrew.johnson@???
2830 --------> dnslookupdsn router <--------
2830 local_part=andrew.johnson domain=cwipapps.net
2830 checking domains
2830 cwipapps.net in "nhs.net"? no (end of list)
2830 dnslookupdsn router skipped: domains mismatch
2830 --------> dnslookupnodsn router <--------
2830 local_part=andrew.johnson domain=cwipapps.net
2830 checking domains
2830 cwipapps.net in "cwipapps.net"? yes (matched "cwipapps.net")
2830 calling dnslookupnodsn router
2830 dnslookupnodsn router called for andrew.johnson@???
2830 domain = cwipapps.net
2829 SMTP>> 421 test.dsn.com lost input connection
2829 LOG: smtp_connection MAIN
2829 SMTP connection from (sendtest.com) [127.0.0.1] lost
2829 search_tidyup called
2822 child 2829 ended: status=0x100
2822 normal exit, 1
2822 0 SMTP accept processes now running
2822 Listening...
2830 DNS lookup of cwipapps.net (MX) succeeded
2830 DNS lookup of mx1.cwipapps.net (A) succeeded
2830 194.6.10.110 in "0.0.0.0 : 127.0.0.0/8"? no (end of list)
2830 fully qualified name = cwipapps.net
2830 host_find_bydns yield = HOST_FOUND (2); returned hosts:
2830 mx1.cwipapps.net 194.6.10.110 MX=10
2830 set transport remote_smtp
2830 queued for remote_smtp transport: local_part = andrew.johnson
2830 domain = cwipapps.net
2830 errors_to=NULL
2830 domain_data=NULL localpart_data=NULL
2830 routed by dnslookupnodsn router
2830 envelope to: andrew.johnson@???
2830 transport: remote_smtp
2830 host mx1.cwipapps.net [194.6.10.110] MX=10
2830 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2830 After routing:
2830 Local deliveries:
2830 Remote deliveries:
2830 andrew.johnson@???
2830 Failed addresses:
2830 Deferred addresses:
2830 search_tidyup called
2830 >>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>>
2830 --------> andrew.johnson@??? <--------
2830 search_tidyup called
2830 set_process_info: 2830 delivering 1ZsAlG-0000jd-2L: waiting for a
remote delivery subprocess to finish
2830 selecting on subprocess pipes
2831 changed uid/gid: remote delivery to andrew.johnson@???
with transport=remote_smtp
2831 uid=93 gid=93 pid=2831
2831 auxiliary group list: 12 93
2831 set_process_info: 2831 delivering 1ZsAlG-0000jd-2L using
remote_smtp
2831 remote_smtp transport entered
2831 andrew.johnson@???
2831 cwipapps.net in queue_smtp_domains? no (option unset)
2831 checking status of mx1.cwipapps.net
2831 locking /var/spool/exim/db/retry.lockfile
2831 locked /var/spool/exim/db/retry.lockfile
2831 EXIM_DBOPEN(/var/spool/exim/db/retry)
2831 returned from EXIM_DBOPEN
2831 no retry data available
2831 mx1.cwipapps.net [194.6.10.110] status = usable
2831 194.6.10.110 in serialize_hosts? no (option unset)
2831 delivering 1ZsAlG-0000jd-2L to mx1.cwipapps.net [194.6.10.110]
(andrew.johnson@???)
2831 set_process_info: 2831 delivering 1ZsAlG-0000jd-2L to
mx1.cwipapps.net [194.6.10.110] (andrew.johnson@???)
2831 Connecting to mx1.cwipapps.net [194.6.10.110]:25 ... connected
2831 expanding: $primary_hostname
2831 result: test.dsn.com
2831 read response data: size=70
2831 SMTP<< 220 mx1.cwipapps.net ESMTP Exim 4.43 Fri, 30 Oct 2015
14:34:34 +0000
2831 194.6.10.110 in hosts_avoid_esmtp? no (option unset)
2831 SMTP>> EHLO test.dsn.com
2831 read response data: size=122
2831 SMTP<< 250-mx1.cwipapps.net Hello vps1.sappsys.co.uk
[185.35.77.202]
2831 250-SIZE 41943040
2831 250-PIPELINING
2831 250-STARTTLS
2831 250 HELP
2831 194.6.10.110 in hosts_avoid_pipelining? no (option unset)
2831 using PIPELINING
2831 use_dsn=0
2831 194.6.10.110 in hosts_require_auth? no (option unset)
2831 SMTP>> MAIL FROM:<fromuser5@???> SIZE=1352
2831 SMTP>> RCPT TO:<andrew.johnson@???>
2831 SMTP>> DATA
Config :-
primary_hostname = test.dsn.com
domainlist local_domains = local.dsn.com
domainlist fake_domains = fakedomain.com
hostlist relay_from_hosts = localhost
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
dsn_advertise_hosts = *
qualify_domain = sender.dsn.com
qualify_recipient = recipient.dsn.com
never_users = root
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 0s
# Enable an efficiency feature. We advertise the feature; clients
# may request to use it. For multi-recipient mails we then can
# reject or accept per-user after the message is received.
#
prdr_enable = true
log_selector = +smtp_protocol_error +smtp_syntax_error \
+tls_certificate_verified
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d
begin acl
acl_check_rcpt:
accept
acl_check_data:
accept
begin routers
dnslookupdsn:
driver = dnslookup
domains = dummydomain.net
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
# if ipv6-enabled then instead use:
# ignore_target_hosts = <; 0.0.0.0 ; 127.0.0.0/8 ; ::1
# dsn_lasthop
dnslookupnodsn:
driver = dnslookup
domains = cwipapps.net
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
# if ipv6-enabled then instead use:
# ignore_target_hosts = <; 0.0.0.0 ; 127.0.0.0/8 ; ::1
# dsn_lasthop
localusernodsn:
driver = accept
domains = +local_domains
condition = ${if eq{${lc:$local_part}}{nodsn}}
transport = local_deliverynodsn
cannot_route_message = Unknown user
localuserdsn:
driver = accept
domains = +local_domains
transport = local_deliverydsn
cannot_route_message = Unknown user
localuserfake:
driver = accept
domains = +fake_domains
transport = local_deliveryfake
cannot_route_message = Unknown user
begin transports
remote_smtp:
driver = smtp
local_deliverynodsn:
driver = appendfile
file = /var/mail/nodsn
delivery_date_add
envelope_to_add
return_path_add
group = mail
# mode = 0660
local_deliverydsn:
driver = appendfile
file = /var/mail/dsn
delivery_date_add
envelope_to_add
return_path_add
group = mail
# mode = 0660
local_deliveryfake:
driver = appendfile
file = /var/mail/fake
delivery_date_add
envelope_to_add
return_path_add
group = mail
# mode = 0660
begin retry
# Address or Domain Error Retries
# ----------------- ----- -------
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
begin rewrite
begin authenticators