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
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.