Skip to content
Nigel Metheringham edited this page Nov 29, 2012 · 2 revisions

Q5003

Question

How can I persuade Exim to accept ETRN commands without the leading # character?

Answer

Set the option

smtp_etrn_command = /usr/lib/sendmail -R $domain

This causes Exim to run that command, with $domain replaced by the argument of ETRN. The default action of Exim is to require the # sign in order to be RFC-compliant, and to run the equivalent of

smtp_etrn_command = /usr/lib/sendmail -R ${substr_1:$domain}

which uses the argument without the leading # as the value for the -R option. You aren't restricted to running Exim with the -R option, of course. You can specify any command you like, with any number of arguments. In particular, you can pass over the IP address of the caller via $sender_host_address. However, if you make use of expansion strings in the arguments, each one must be entirely contained in a single argument. For example, if you want to remove the first character of the ETRN argument when it is @ or #, you could use

smtp_etrn_command = "/usr/lib/sendmail -R \
  \"${if match {$domain}{^[@#]}{${substr_1:$domain}}{$domain}}\""

The internal quotes are necessary because of the white space inside the expansion string.


Clone this wiki locally