je galère depuis un moment pour essayer de configurer exim4 pour pouvoir envoyer des mails. Ma distri est une Sarge mise à jour, mon accès internet est l'ADSL de Cegetel. Je n'ai jamais configuré exim4 (ou d'autre MTA) avant, j'ai peut-être raté un truc évident ou mal compris quelque chose.
Ma config d'exim4 (fichier /etc/exim4/update-exim4.conf.conf):
# /etc/exim4/update-exim4.conf.conf
#
# Edit this file and /etc/mailname by hand and execute update-exim4.conf
# yourself or use 'dpkg-reconfigure exim4-config'
dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost='lenomdemonlocalhost'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.cegetel.net'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
J'ai aussi modifié le fichier /etc/exim4/passwd.client:
### CONFDIR/passwd.client
#
# Format:
#targetmailserver.example:login:password
#
# default entry:
### *:bar:foo
smtp.cegetel.net:xxxxxxx@cegetel.net:yyyyyyy
avec xxxxxxx pour le nom d'utilisateur et yyyyyyy pour le mot de passe. L'adresse xxxxxxx@cegetel.net existe. J'ai aussi tenté xxxxxx\*cegetel.net et xxxxxxx*cegetel.net (qui est le nom d'utilisateur d'après le guide cegetel fourni avec le pack adsl), en faisant killall exim4 ; update-exim4.conf ; /usr/sbin/exim4 -bd -q30m avant chaque tentative.
J'ai rien changé d'autre à la config.
Aucun mail n'est arrivé à destination, aucun n'est revenu.
Des idées ?
# dpkg
Posté par M . Évalué à 2.
Tu devrais pouvoir tout configurer sans trop te prendre la tete...
[^] # Re: dpkg
Posté par remyremy . Évalué à 1.
# les logs
Posté par hommelix . Évalué à 2.
moi chez ovh, j'avais un pb de redirection de mon smarthost, en gros :
smtp.monfai.com --> mailserver.monfai.com, et donc l'auth devait se faire sur mailserver et pas sur smtp.
J'ai trouve ca grace au mode debug de sylpheed-claws
[^] # Re: les logs
Posté par remyremy . Évalué à 1.
quelquun@laposte.net R=smarthost T=remo
te_smtp_smarthost: SMTP error from remote mailer after RCPT TO:<quelquun@laposte.net>: host smtp.cegetel.net [212.94.174.24]: 554 <localhost.localdomain>: Helo
command rejected: Invalid name
[^] # Re: les logs
Posté par hommelix . Évalué à 2.
Essaye de faire un helo toi meme en telnet
Quel methode d'auth tu utilises ?
[^] # Re: les logs
Posté par remyremy . Évalué à 1.
$ telnet smtp.cegetel.net 25
Trying 212.94.174.24...
Connected to smtp.sitadelle.com.
Escape character is '^]'.
220 smtp.cegetel.net ESMTP Postfix (Debian/GNU)
ehlo mon.adr.esse.ip
250-smtp.cegetel.net
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250 8BITMIME
mail from:xxxxxxx@cegetel.net
250 Ok
rcpt to:xxxxxxxx@cegetel.net
554 <mon.adr.esse.ip>: Helo command rejected: Invalid name
J'ai été surpris de constater qu'il n'y avait pas de ligne 250-AUTH .
Mon nom de machine est arbitraire, je ne suis pas (encore) déclaré sur les serveurs DNS. Est-ce que ça peut jouer ?
Ca n'a probablement rien à voir, mais je ne comprends pas:
$ telnet mon.adr.esse.ip 25
Trying mon.adr.esse.ip...
telnet: Unable to connect to remote host: Connection refused
alors que mon firewall (guarddog) est configuré pour accepter le protocole smtp !?
[^] # Re: les logs
Posté par hommelix . Évalué à 2.
guarddog acepte dans quel sens le smtp, et toi tu testes depuis ou et vers ou?
exterieur-->passerelle-->server smtp?
[^] # Re: les logs
Posté par remyremy . Évalué à 1.
Le 1er grand pas a été de réussir à envoyer un message avec telnet.
J'ai pu ainsi m'apercevoir que je pouvais mettre à peu près n'importe quoi comme nom de site après le ehlo, mais que le domaine de l'adresse de l'expéditeur devait être un domaine existant.
Le plus important est que cela prouvait qu'il n'y avait pas d'authentification ! Et donc pas besoin de me prendre la tête avec TLS !
Par élimination, le problème venait probablement effectivement du fait que exim4 faisait un "ehlo localdomain.localhost" au lieu d'un "ehlo mamachine". J'ai trituré la config avec dpkg-reconfigure exim4-config, sans succès.
Alors je n'ai plus eu le choix. J'ai du faire ce que je redoutais depuis le début... me plonger dans la spécification Exim, un bien bel ouvrage de 50 chapitres.
Et j'ai trouvé !
Il suffit de rajouter la ligne en gras dans le fichier /etc/exim4/exim4.conf.template (à peu près à la ligne 1250 chez moi).
remote_smtp_smarthost:
debug_print = "T: remote_smtp_smarthost for $local_part@$domain"
driver = smtp
helo_data = "mamachine"
hosts_try_auth = ${if exists {CONFDIR/passwd.client}{DCsmarthost}{}}
tls_tempfail_tryclear = false
DEBCONFheaders_rewriteDEBCONF
DEBCONFreturn_pathDEBCONF
J'avoue, j'ai eu la flemme de chercher quelle variable contient le nom de ma machine.
Je sais pas si c'est la manière standard de gérer le problème (j'en doute), mais en tout cas ça marche.
Au bout du compte, j'aimerais quand même comprendre pourquoi ce ehlo est rejeté lors d'un connexion par exim4 alors qu'il est valide par telnet...
Merci hommelix pour ton aide !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.