Exim SRS rejecting srs-modified recipient addresses

JulesFM

New member
Joined
Mar 21, 2017
Messages
1
I'm pretty sure I've got SRS set up correctly. Here are the relevant bits of my "./build options" output:
Exim: 4.88
exim.conf update: yes, release 4.5
BlockCracking: no
Easy Spam Fighter: no
SpamAssassin: no
I don't want Exim to be doing any spam checking itself, just doing the SRS rewriting and checking. My incoming mail server (MX) does all of that, and then tries to deliver it to Exim but Exim rejects it if it's got a SRS-style recipient address like this:
[email protected]
(XXXX.fm = a domain I forward mail for)

To test it, I tried this as root:
exim -d -f '[email protected]' -bt '[email protected]'

The output of that (included at the bottom) shows that the last router it tries is "virtual_aliases", the output of which mentions SRS explicitly, so all the support is there. At the end of that router is gives up and says it's undeliverable.
The "srs_router" never even gets tried.

Any ideas what might be wrong?


Exim version 4.88 uid=0 gid=0 pid=31285 D=fbb95cfd
Berkeley DB: Berkeley DB 5.3.21: (May 11, 2012)
Support for: crypteq IPv6 Perl OpenSSL move_frozen_messages Content_Scanning DKIM DNSSEC Event OCSP PRDR TCP_Fast_Open Experimental_SRS
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
Compiler: GCC [4.8.5 20150623 (Red Hat 4.8.5-11)]
Library version: Glibc: Compile: 2.17
Runtime: 2.17
Library version: OpenSSL: Compile: OpenSSL 1.0.1e-fips 11 Feb 2013
Runtime: OpenSSL 1.0.1e-fips 11 Feb 2013
: built on: Mon Feb 20 14:38:48 UTC 2017
Library version: PCRE: Compile: 8.20
Runtime: 8.32 2012-11-30
Total 9 lookups
WHITELIST_D_MACROS unset
TRUSTED_CONFIG_LIST unset
changed uid/gid: forcing real = effective
uid=0 gid=0 pid=31285
auxiliary group list: <none>
seeking password data for user "mail": cache not available
getpwnam() succeeded uid=8 gid=12
seeking password data for user "majordomo": cache not available
getpwnam() succeeded uid=993 gid=2
seeking password data for user "apache": cache not available
getpwnam() succeeded uid=996 gid=1000
seeking password data for user "diradmin": cache not available
getpwnam() succeeded uid=995 gid=995
seeking password data for user "root": cache not available
getpwnam() succeeded uid=0 gid=0
changed uid/gid: calling tls_validate_require_cipher
uid=8 gid=12 pid=31286
auxiliary group list: <none>
tls_require_ciphers expands to "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP"
tls_validate_require_cipher child 31286 ended: status=0x0
openssl option, adding from 1100000: 1000000 (no_sslv2 +no_sslv3)
openssl option, adding from 1100000: 2000000 (no_sslv3)
XDG_SESSION_ID in keep_environment? no (end of list)
HOSTNAME in keep_environment? no (end of list)
TERM in keep_environment? no (end of list)
SHELL in keep_environment? no (end of list)
HISTSIZE in keep_environment? no (end of list)
SSH_CLIENT in keep_environment? no (end of list)
OLDPWD in keep_environment? no (end of list)
SSH_TTY in keep_environment? no (end of list)
USER in keep_environment? no (end of list)
LS_COLORS in keep_environment? no (end of list)
MAIL in keep_environment? no (end of list)
PATH in keep_environment? no (end of list)
PWD in keep_environment? yes (matched "PWD")
LANG in keep_environment? no (end of list)
PWD in keep_environment? yes (matched "PWD")
HISTCONTROL in keep_environment? no (end of list)
PWD in keep_environment? yes (matched "PWD")
SHLVL in keep_environment? no (end of list)
PWD in keep_environment? yes (matched "PWD")
HOME in keep_environment? no (end of list)
PWD in keep_environment? yes (matched "PWD")
LOGNAME in keep_environment? no (end of list)
PWD in keep_environment? yes (matched "PWD")
SSH_CONNECTION in keep_environment? no (end of list)
PWD in keep_environment? yes (matched "PWD")
LESSOPEN in keep_environment? no (end of list)
PWD in keep_environment? yes (matched "PWD")
XDG_RUNTIME_DIR in keep_environment? no (end of list)
PWD in keep_environment? yes (matched "PWD")
_ in keep_environment? no (end of list)
PWD in keep_environment? yes (matched "PWD")
configuration file is /etc/exim.conf
log selectors = 000024ac 07398216
trusted user
admin user
seeking password data for user "majordomo": cache not available
getpwnam() succeeded uid=993 gid=2
seeking password data for user "majordomo": using cached result
getpwnam() succeeded uid=993 gid=2
DSN: smart_route propagating DSN
DSN: majordomo_aliases propagating DSN
DSN: majordomo_private propagating DSN
DSN: domain_filter propagating DSN
DSN: uservacation propagating DSN
DSN: userautoreply propagating DSN
DSN: virtual_user_unseen propagating DSN
DSN: virtual_aliases_nouser_nostar propagating DSN
DSN: virtual_user propagating DSN
DSN: virtual_aliases propagating DSN
DSN: drop_solo_alias propagating DSN
DSN: srs_router propagating DSN
DSN: userforward propagating DSN
DSN: system_aliases propagating DSN
DSN: localuser propagating DSN
seeking password data for user "mail": cache not available
getpwnam() succeeded uid=8 gid=12
seeking password data for user "majordomo": cache not available
getpwnam() succeeded uid=993 gid=2
seeking password data for user "mail": cache not available
getpwnam() succeeded uid=8 gid=12
seeking password data for user "mail": using cached result
getpwnam() succeeded uid=8 gid=12
seeking password data for user "mail": using cached result
getpwnam() succeeded uid=8 gid=12
originator: uid=0 gid=0 login=root name=
sender address = [email protected]
Address testing: uid=0 gid=12 euid=0 egid=12
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Testing [email protected]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering [email protected]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing [email protected]
--------> smart_route router <--------
local_part=srs0=6mdtwp=25=xpressus.emsmtp.us=suite11 domain=XXXX.fm
checking domains
search_open: lsearch "/etc/virtual/domains"
search_find: file="/etc/virtual/domains"
key="XXXX.fm" partial=-1 affix=NULL starflags=0
LRU list:
6/etc/virtual/domains
End
internal_search_find: file="/etc/virtual/domains"
type=lsearch key="XXXX.fm"
file lookup required for XXXX.fm
in /etc/virtual/domains
lookup yielded:
XXXX.fm in "lsearch;/etc/virtual/domains"? yes (matched "lsearch;/etc/virtual/domains")
data from lookup saved for cache for +local_domains:
XXXX.fm in "! +local_domains"? no (matched "! +local_domains")
smart_route router skipped: domains mismatch
--------> majordomo_aliases router <--------
local_part=srs0=6mdtwp=25=xpressus.emsmtp.us=suite11 domain=XXXX.fm
checking domains
search_open: lsearch "/etc/virtual/domainowners"
search_find: file="/etc/virtual/domainowners"
key="XXXX.fm" partial=-1 affix=NULL starflags=0
LRU list:
6/etc/virtual/domainowners
6/etc/virtual/domains
End
internal_search_find: file="/etc/virtual/domainowners"
type=lsearch key="XXXX.fm"
file lookup required for XXXX.fm
in /etc/virtual/domainowners
lookup yielded: julianf0
XXXX.fm in "lsearch;/etc/virtual/domainowners"? yes (matched "lsearch;/etc/virtual/domainowners")
calling majordomo_aliases router
rda_interpret (string): ${if exists{/etc/virtual/${domain}/majordomo/list.aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/majordomo/list.aliases}}}}
expanded:
file is not a filter file
parse_forward_list:
majordomo_aliases router declined for [email protected]
--------> majordomo_private router <--------
local_part=srs0=6mdtwp=25=xpressus.emsmtp.us=suite11 domain=XXXX.fm
checking domains
search_open: lsearch "/etc/virtual/domainowners"
cached open
search_find: file="/etc/virtual/domainowners"
key="XXXX.fm" partial=-1 affix=NULL starflags=0
LRU list:
6/etc/virtual/domainowners
6/etc/virtual/domains
End
internal_search_find: file="/etc/virtual/domainowners"
type=lsearch key="XXXX.fm"
cached data used for lookup of XXXX.fm
in /etc/virtual/domainowners
lookup yielded: julianf0
XXXX.fm in "lsearch;/etc/virtual/domainowners"? yes (matched "lsearch;/etc/virtual/domainowners")
checking "condition" "${if or { {eq {$received_protocol} {local}} {eq {$received_protocol} {spam-scann"...
majordomo_private router skipped: condition failure
--------> domain_filter router <--------
local_part=srs0=6mdtwp=25=xpressus.emsmtp.us=suite11 domain=XXXX.fm
checking "condition" "${if exists{/etc/virtual/${domain}/filter}{yes}{no}}"...
calling domain_filter router
search_open: lsearch "/etc/virtual/domainowners"
cached open
search_find: file="/etc/virtual/domainowners"
key="XXXX.fm" partial=-1 affix=NULL starflags=0
LRU list:
6/etc/virtual/domainowners
6/etc/virtual/domains
End
internal_search_find: file="/etc/virtual/domainowners"
type=lsearch key="XXXX.fm"
cached data used for lookup of XXXX.fm
in /etc/virtual/domainowners
lookup yielded: julianf0
seeking password data for user "julianf0": cache not available
getpwnam() succeeded uid=1006 gid=1008
rda_interpret (file): /etc/virtual/${domain}/filter
expanded: /etc/virtual/XXXX.fm/filter
search_tidyup called
changed uid/gid: domain_filter router (recipient is [email protected])
uid=1006 gid=12 pid=31287
auxiliary group list: <none>
turned off address rewrite logging (not root or exim in this process)
256 bytes read from /etc/virtual/XXXX.fm/filter
data is an Exim filter program
Filter: start of processing
Filter: end of processing
search_tidyup called
rda_interpret: subprocess yield=1 error=NULL
domain_filter router declined for [email protected]
--------> uservacation router <--------
local_part=srs0=6mdtwp=25=xpressus.emsmtp.us=suite11 domain=XXXX.fm
checking senders
address match test: [email protected] pattern=^.*-request@.*
address match test: [email protected] pattern=^owner-.*@.*
address match test: [email protected] pattern=^postmaster@.*
address match test: [email protected] pattern=^listmaster@.*
address match test: [email protected] pattern=^mailer-daemon@.*! ^root@.*
[email protected] in " ! ^.*-request@.*:! ^owner-.*@.*:! ^postmaster@.*:! ^listmaster@.*:! ^mailer-daemon@.*! ^root@.*"? yes (end of list)
checking require_files
file check: /etc/virtual/${domain}/reply/${local_part}.msg
expanded file: /etc/virtual/XXXX.fm/reply/srs0=6mdtwp=25=xpressus.emsmtp.us=suite11.msg
stat() yielded -1
errno = 2
uservacation router skipped: file check
--------> userautoreply router <--------
local_part=srs0=6mdtwp=25=xpressus.emsmtp.us=suite11 domain=XXXX.fm
checking senders
address match test: [email protected] pattern=^.*-request@.*
address match test: [email protected] pattern=^owner-.*@.*
address match test: [email protected] pattern=^postmaster@.*
address match test: [email protected] pattern=^listmaster@.*
address match test: [email protected] pattern=^mailer-daemon@.*! ^root@.*
[email protected] in " ! ^.*-request@.*:! ^owner-.*@.*:! ^postmaster@.*:! ^listmaster@.*:! ^mailer-daemon@.*! ^root@.*"? yes (end of list)
checking require_files
file check: /etc/virtual/${domain}/reply/${local_part}.msg
expanded file: /etc/virtual/XXXX.fm/reply/srs0=6mdtwp=25=xpressus.emsmtp.us=suite11.msg
stat() yielded -1
errno = 2
userautoreply router skipped: file check
--------> virtual_user_unseen router <--------
local_part=srs0=6mdtwp=25=xpressus.emsmtp.us=suite11 domain=XXXX.fm
checking domains
search_open: lsearch "/etc/virtual/domainowners"
search_find: file="/etc/virtual/domainowners"
key="XXXX.fm" partial=-1 affix=NULL starflags=0
LRU list:
6/etc/virtual/domainowners
End
internal_search_find: file="/etc/virtual/domainowners"
type=lsearch key="XXXX.fm"
file lookup required for XXXX.fm
in /etc/virtual/domainowners
lookup yielded: julianf0
XXXX.fm in "lsearch;/etc/virtual/domainowners"? yes (matched "lsearch;/etc/virtual/domainowners")
checking "condition" "${if and{{bool_lax{${if and{{bool_lax{${if exists{/etc/virtual/${domain}/passwd}"...
search_open: lsearch "/etc/virtual/XXXX.fm/aliases"
search_find: file="/etc/virtual/XXXX.fm/aliases"
key="srs0=6mdtwp=25=xpressus.emsmtp.us=suite11" partial=-1 affix=NULL starflags=0
LRU list:
6/etc/virtual/XXXX.fm/aliases
6/etc/virtual/domainowners
End
internal_search_find: file="/etc/virtual/XXXX.fm/aliases"
type=lsearch key="srs0=6mdtwp=25=xpressus.emsmtp.us=suite11"
file lookup required for srs0=6mdtwp=25=xpressus.emsmtp.us=suite11
in /etc/virtual/XXXX.fm/aliases
lookup failed
virtual_user_unseen router skipped: condition failure
--------> virtual_aliases_nouser_nostar router <--------
local_part=srs0=6mdtwp=25=xpressus.emsmtp.us=suite11 domain=XXXX.fm
checking "condition" "${if and{{bool_lax{${if and{{bool_lax{${if exists{/etc/virtual/${domain}/passwd}"...
search_open: lsearch "/etc/virtual/XXXX.fm/aliases"
cached open
search_find: file="/etc/virtual/XXXX.fm/aliases"
key="srs0=6mdtwp=25=xpressus.emsmtp.us=suite11" partial=-1 affix=NULL starflags=0
LRU list:
6/etc/virtual/XXXX.fm/aliases
6/etc/virtual/domainowners
End
internal_search_find: file="/etc/virtual/XXXX.fm/aliases"
type=lsearch key="srs0=6mdtwp=25=xpressus.emsmtp.us=suite11"
cached data used for lookup of srs0=6mdtwp=25=xpressus.emsmtp.us=suite11
in /etc/virtual/XXXX.fm/aliases
lookup failed
virtual_aliases_nouser_nostar router skipped: condition failure
--------> virtual_user router <--------
local_part=srs0=6mdtwp=25=xpressus.emsmtp.us=suite11 domain=XXXX.fm
checking domains
search_open: lsearch "/etc/virtual/domainowners"
cached open
search_find: file="/etc/virtual/domainowners"
key="XXXX.fm" partial=-1 affix=NULL starflags=0
LRU list:
6/etc/virtual/domainowners
6/etc/virtual/XXXX.fm/aliases
End
internal_search_find: file="/etc/virtual/domainowners"
type=lsearch key="XXXX.fm"
cached data used for lookup of XXXX.fm
in /etc/virtual/domainowners
lookup yielded: julianf0
XXXX.fm in "lsearch;/etc/virtual/domainowners"? yes (matched "lsearch;/etc/virtual/domainowners")
checking "condition" "${if and{{bool_lax{${if and{{bool_lax{${if exists{/etc/virtual/${domain}/passwd}"...
search_open: lsearch "/etc/virtual/XXXX.fm/aliases"
cached open
search_find: file="/etc/virtual/XXXX.fm/aliases"
key="srs0=6mdtwp=25=xpressus.emsmtp.us=suite11" partial=-1 affix=NULL starflags=0
LRU list:
6/etc/virtual/XXXX.fm/aliases
6/etc/virtual/domainowners
End
internal_search_find: file="/etc/virtual/XXXX.fm/aliases"
type=lsearch key="srs0=6mdtwp=25=xpressus.emsmtp.us=suite11"
cached data used for lookup of srs0=6mdtwp=25=xpressus.emsmtp.us=suite11
in /etc/virtual/XXXX.fm/aliases
lookup failed
Starting Perl interpreter
virtual_user router skipped: condition failure
--------> virtual_aliases router <--------
local_part=srs0=6mdtwp=25=xpressus.emsmtp.us=suite11 domain=XXXX.fm
calling virtual_aliases router
SRS initialized
SRS (forward): Sender '[email protected]' rewritten to '[email protected]'
rda_interpret (string): ${if exists{/etc/virtual/$domain/aliases}{${lookup{$local_part}lsearch*{/etc/virtual/$domain/aliases}}}}
search_open: lsearch "/etc/virtual/XXXX.fm/aliases"
cached open
search_find: file="/etc/virtual/XXXX.fm/aliases"
key="srs0=6mdtwp=25=xpressus.emsmtp.us=suite11" partial=-1 affix=NULL starflags=1
LRU list:
6/etc/virtual/XXXX.fm/aliases
6/etc/virtual/domainowners
End
internal_search_find: file="/etc/virtual/XXXX.fm/aliases"
type=lsearch key="srs0=6mdtwp=25=xpressus.emsmtp.us=suite11"
cached data used for lookup of srs0=6mdtwp=25=xpressus.emsmtp.us=suite11
in /etc/virtual/XXXX.fm/aliases
lookup failed
trying to match *
internal_search_find: file="/etc/virtual/XXXX.fm/aliases"
type=lsearch key="*"
file lookup required for *
in /etc/virtual/XXXX.fm/aliases
lookup yielded: :fail:
expanded: :fail:
file is not a filter file
parse_forward_list: :fail:
extract item: :fail:
virtual_aliases router forced address failure
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=31285 terminating with rc=2 >>>>>>>>>>>>>>>>
[email protected] is undeliverable:
 
Back
Top