[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Exim and outgoing AUTH, a report



Whoever might be interested (Maintainer from exim package,
the maintainer from exim, users how have to have a quick fix).

I do not know a better place to send this, since this is not
a bug report, more a feature request and experience report. 

My Internet provider switched to SMTP authentication. Here are
my experiences and suggestions. First a summary:

1) Include in exim.conf a sample Authentication section (section 7).
2) document how to figure the supported protocols from a server
3) Patch the exim SMTP agent to recognize more ESMTP servers.
4) A suggestion to improve the documentation.

I use exim , version 3.12 from the debian 2.2 distribution.  In order
to configure exim to use authentication, I had to close the open 6th
section of the configuration file exim.conf with "end". The
authentication is configured with (micky is my user name and 1234 the
password, aeh not really):

fixed_cram:
   driver = cram_md5
   public_name = CRAM-MD5
   client_name = micky
   client_secret = 1234

fixed_plain:
   driver = plaintext
   public_name = PLAIN
   client_send = "^micky^1234"

fixed_login:
   driver = plaintext
   public_name = LOGIN
   client_send =": micky : 1234"

You must add in the remote_smtp a line

authenticate_hosts = 64.89.101.40

(The ip address of your mail server)

The first entry matching a supported protocol will be used. In my
case cram_md5. exim assumes that if is not matching ESMPT
in the initial respond of the server that the server is not speaking
ESMTP. The server used by my Internet provider (mail.vei.net)
is not following that scheme as you can see from the following
telnet log:

$ telnet mail.vei.net smtp
Trying 64.89.101.40...
Connected to mail.vei.net.
Escape character is '^]'.
220 X1 SMTP Server mail.vei.net
ehlo
250-mail.vei.net says hello
250-SIZE 0
250-8BITMIME
250-DSN
250-ETRN
250-AUTH LOGIN CRAM-MD5
250-AUTH=LOGIN
250 EXPN
quit
221 Goodbye

 
I came around this by replacing  
  esmtp = strstr(buffer, "ESMTP") != NULL; 
with
  esmtp = strstr(buffer, "SMTP") != NULL;
(line 534 ) in  transports/smtp.c . This is by no means a suggested
patch and should only be used with great care since it is 
basically assuming that every SMTP agent speaks ESMTP.

Do not forget to enable 
AUTH_CRAM_MD5=yes
AUTH_PLAINTEXT=yes
in the Makefile for compiling.

I found the following section in the documentation, file 
doc/spec.txt ( sorry for the long lines) 

The authenticators are configured using the same syntax as other drivers (see  |
chapter 12). If none are required, the entire seventh section of the           |
configuration file may be omitted. If at least one authenticator is included   |
in the binary, the contents of the configuration can be obtained by running    |
one of                                                                         |
                                                                               |
  exim -bP authenticator_list                                                  |
  exim -bP authenticators                                                      |
  exim -bP authenticator <authenticator name>                                  |

could be improved by changing the last sentence of the paragraph to:

If at least one authenticator is included in the binary and configured, the
contents of the configuration can be obtained by running on of.

Btw, does exists a method to figure if and which authenticator is
included in the binary, without having then configured?


Regards,

Achim

PS Without the thread "Exim and *outgoing* AUTH" I wouldn't have been able to
make the mail working, Thanks.



Reply to: