On 6/20/26 09:41, Andreas Metzler wrote:
Hello Terry,

using a literal filename and lsearch-ing it are not equivalent, see
https://www.exim.org/exim-html-current/doc/html/spec_html/ch-domain_host_address_and_local_part_lists.html
  2.2 and 2.3.

Trivial example:
ametzler@argenau:/tmp$ head /tmp/inputforlsearch /tmp/exim4.conf.test
==> /tmp/inputforlsearch <==
ubuntu.com:
debian.org:
==> /tmp/exim4.conf.test <==
domainlist works_b = lsearch;/tmp/inputforlsearch
domainlist fails_b = /tmp/inputforlsearch
ametzler@argenau:/tmp$ /usr/sbin/exim4 -C /tmp/exim4.conf.test -be '${if 
match_domain{debian.org}{+works_b}{yes}{no}}'
yes
ametzler@argenau:/tmp$ /usr/sbin/exim4 -C /tmp/exim4.conf.test -be '${if 
match_domain{debian.org}{+fails_b}{yes}{no}}'
no

A file used as literal filename would use a different format:
ametzler@argenau:/tmp$ head /tmp/inclusionasfilename /tmp/exim4.conf.test
==> /tmp/inclusionasfilename <==
ubuntu.com
debian.org
==> /tmp/exim4.conf.test <==
domainlist works_a = /tmp/inclusionasfilename
ametzler@argenau:/tmp$ /usr/sbin/exim4 -C /tmp/exim4.conf.test -be '${if 
match_domain{debian.org}{+works_a}{yes}{no}}'
yes

cu Andreas

Thank you for the clear explanation and the example. I understand now that the bare filename and lsearch; are not equivalent and never were — the previous behavior was apparently a tolerated misconfiguration rather than correct usage. The fix (adding explicit lsearch; prefix) is in place and working correctly.

Thanks again.

--
Terry

Reply via email to