Recherche


imprimer pdf
Serveurs d'email : Problèmes et Solutions

Sur les serveurs dédiés, nous avons preinstallé un serveur d'email qmail
http://www.qmail.org

Qmail est patché avec les patchs suivants :

  • patch tls qui permet d'envoyer les emails avec un cryptage ssl,
  • patch spamcontrol.


Avant de commencer

Le serveur d'email est un logiciel qui a pour but d'accepter les emails sur le port 587 via le protocole SMTP. Pour savoir comment fonctionne le protocole SMTP, voici l'url du RFC http://www.ietf.org/rfc/rfc0821.txt.

Voici un exemple de communication en SMTP sur le port 587 :

$ telnet mx3.ovh.net 587 Resolution du mx3.ovh.net
Trying 213.186.33.73...
Connected to mx3.ovh.net.
Escape character is '^]'.
220 Welcome ! You are on server 8 called mx3.ovh.net, spam protected: www.spam-rbl.com ESMTP
HELO ping.ovh.net On se presente
250 Welcome ! You are on server 8 called mx3.ovh.net, spam protected: www.spam-rbl.com
MAIL FROM: On dit qui envoit l'email
250 ok
RCPT TO: On dit vers qui on veut envoyer l'email
250 ok acceptation
DATA
354 go ahead
test le corps de l'email. habituellement il faut mettre les champs FROM, TO, SUBJECT
.
250 ok 1065864990 qp 27338
QUIT on quitte
221 Welcome ! You are on server 8 called mx3.ovh.net, spam protected: www.spam-rbl.com
Connection closed by foreign host.



2 remarques :

  • l'email a été accepté par le serveur mx3.ovh.net. pourquoi ? 2 solutions : soit parce que l'ip d'où on a fait la connexion à savoir ping.ovh.net 213.186.33.13 peut faire relay des emails via mx3.ovh.net soit parce que mx3.ovh.net est le serveur MX d'ovh.net,
  • les informations dans DATA doivent normalement être l'email en lui-même, c'est à dire avoir la forme d'un email :


From: oles@ovh.net
To: oles@ovh.net
Subject: test

test


Relay

La fonction la plus simple de serveur d'email est relay (renvoi) qui consiste :

  • à accepter l'email et donc envoyer 250 ok après RCPT TO,
  • à mettre l'email dans le spool ou la queue,
  • à renvoyer l'email vers le serveur MX du destinataire.

C'est un serveur SMTP qui va s'occuper de distribuer les emails vers Internet.

Les fournisseurs d'accès proposent ce genre des serveurs. N'importe quel serveur SMTP sait aussi distribuer les emails.

La premiere étape a été presentée dans la section "avant de commencer". Ceci consiste tout simple à accepter l'email. Le problème devient complexe avec la gestion du spam qui sera presenté par la suite.

C'est le process qmail-smtp qui s'occupe de cette fonction. Son rôle est de savoir communiquer en SMTP et savoir enregistrer l'email sous forme d'un fichier sur le disque dur.

La deuxième étape consiste à stocker l'email sur les disques en attendant la troisième étape. Pour voir l'état du spool :

# /var/qmail/bin/qmail-qstat
queue
messages in queue: 360
messages in queue but not yet preprocessed: 0


Ceci veut dire qu'il y a 360 emails que le serveur d'email a envoyé déjà 1 fois mais visiblement, soit le destinataire n'existe pas, soit le serveur MX du destinataire ne fonctionne pas correctement.

Il faut signaler qu'il existe souvent des problèmes de temps de réponse de serveur de relay lorsqu'il y a beaucoup d'emails dans le spool. Qmail devient vraiment très long avec plus de 25000 emails dans le spool. Dans ce cas-là, la préparation de l'email devient de plus en plus longue et "messages in queue but not yet preprocessed" augmente.

Pour voir les emails:

# /var/qmail/bin/qmail-qread | grep remote | grep -v done
remote dr_adams@sm66.com
remote 66-2434019-directway.com?amysummers@trailerr.trailblazernews.com
remote 2245031-5-reply@msgbnc.tgtrewards.net
remote response@sleekzine.com
remote larhondabeirne@hushmail.com
[...]


Pourquoi ces emails sont là ? Ces emails peuvent être parce que :

  • le serveur de relay a accepté de relayer (renvoyer), mais le destinataire n'existe pas RCPT TO,
  • le serveur de relay a accepté de relayer (renvoyer), mais le serveur MX du destinataire n'existe pas,
  • le serveur de relay a accepté de relayer (renvoyer), mais le serveur MX du destinataire ne fonctionne pas,
  • le serveur MX a accepté l'email mais le compte pop3 local n'existe pas et donc on essaie de renvoyer l'email vers l'expediteur avec l'erreur mais :
  • le destinataire n'existe pas (MAIL FROM de l'email initial),
  • le serveur MX du destinataire n'existe pas.


C'est qmail-send qui s'occupe de la gestion de la queue pour tout qmail. Son rôle est de regarder les fichiers que qmail-smtp a laissé et les distribuer. Il a le choix entre utiliser une distribution locale (dans le cas où le destinataire se trouve sur la machine elle-même, c'est à dire que le serveur est le serveur MX de l'email et il existe un compte pop3/imap par exemple sur la machine ou remote (distante : c'est à dire relayer l'email vers le destinataire de l'email).

La troisième étape consiste à envoyer l'email au destinataire. L'email est donc pris du spool pour savoir quel est le destinataire. Qmail recherche les serveurs MX du domaine puis se connecte sur le port 587 pour envoyer l'email. Cette opération est la même qu'au début.

On peut avoir plusieurs MX dans un domaine avec le même poids ou un poids different. Dans ce cas là, le serveur SMTP essaie d'abord se connecter sur le serveur MX avec un poids le plus faible. Si 2 MX ont le même poids alors c'est celui qui est est sorti en premier dans la requête DNS qui va être utilisé d'abord.

Au niveau des erreurs, regardez la section erreur.

Chaque opération de relay est enregistrée dans les entêtes de l'email (header). On peut voir qui, d'où et via quel serveur d'email a envoyé l'email :

Delivered-To: ovh.net-60gp@ovh.net
Received: (qmail 15496 invoked by uid 505); 11 Oct 2003 09:22:30 -0000
Received: from unknown (HELO 200-102-028-198.fnsce7005.dsl.brasiltelecom.net.br) (200.102.28.198)
by mx4.ovh.net with SMTP; 11 Oct 2003 09:22:28 -0000

La lecture se fait du bas vers le haut. On voit que l'email est parti de 200.102.28.198 qui s'est connecté sur mx4.ovh.net et que l'email est arrivé sur le compte 60gp@ovh.net.

Voir les entêtes forgées dans la section spam.

Pour voir le fonctionnement de votre serveur email vous pouvez regarder les logs. Par défaut vous avez les logs uniquement de la troisième étape :

# tail -f /var/log/qmail/current
@400000003f87e06f3172d234 end msg 195408
@400000003f87e07005d90c24 delivery 3534821: deferral: Sorry,4_I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/
@400000003f87e07005d91fac status: local 0/15 remote 1/120
@400000003f87e0740c22b274 new msg 195408
@400000003f87e0740c22be2c info msg 195408: bytes 1580 from qp 30987 uid 503
@400000003f87e0740c7fb6f4 starting delivery 3534823: msg 195408 to local hfifi-geefnie.com-studio@hiffi-gefenie.com
@400000003f87e0740c7fc694 status: local 1/15 remote 1/120
@400000003f87e0741c7b34d4 delivery 3534823: success: did_0+0+1/
@400000003f87e0741c7b4474 status: local 0/15 remote 1/120
@400000003f87e0741c7b485c end msg 195408


status: local 0/15 remote 1/120 veut que sur la distribution spool->local (les comptes pop3)
qmail utilise 0 connexion sur 15 et sur spool->remote (la troisieme etape) 1 sur 120

Attention : le fichier tourne c'est-à-dire que s'il atteint une certaine taille il faudra refaire tail pour avoir les logs.
"Vous pouvez aussi la commande tail -F qui réouvre le fichier quand il tourne"

Qui peut relayer ?

Pour gérer la fonction relay, il faut gérer les ip des utilisateurs qui peuvent utiliser cette fonction. Si vous permettez à toutes les ip de relayer, un moment votre machine sera utilisée comme un serveur de relay pour les spammeurs.

Pour gérer ceci vous avez un fichier qui s'appele /etc/tcp.smtp

# cat /etc/tcp.smtp
127.0.0.:allow,RELAYCLIENT=" "
:allow


Ceci veut dire que:
tous les emails qui viennent des IP 127.0.0.X sont relayés.
tous les emails venant d'autres ip sont acceptés uniquement si le destinataire est configuré sur la machine (voir le serveur MX).

Vous pouvez donc ajouter une IP de votre choix (par exemple si vous avez une ip fixe de votre entreprise ou IP fixe en adsl) et compiler tcp.smtp :

# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp


Les modifications faites sont ainsi mises en place dans le fichier /etc/tcp.smtp.cdb qui est utilisé par le serveur smtp. Vous n'avez pas besoin de redémarrer le serveur smtp. Le fichier est lu à chaque connexion smtp.

Dans le cas des fournisseurs d'accès les classes IP sont mises en dur sur les serveurs smtp ce qui permet aux clients du fournisseur d'accès d'utiliser automatiquement le serveur smtp de relay sans aucune autre configuration.

L'option open-smtp ou pop-smtp consiste à utiliser le serveur de pop3/imap pour l'identifier sur le serveur pop3. Le fait d'utiliser login et mot de passe permet d'être sûr qu'il s'agit bien d'une personne de confiance et donc lui permettre relay. Pendant l'opération de pop3/imap le serveur pop3 enregistre l'IP de connexion, le met à jour dans /etc/tcp.smtp et compile /etc/tcp.smtp.cdb.

# cd /etc/vpopmail/
# ls -l
total 696
-rw-r-r- 1 vpopmail vchkpw 587 fév 24 2003 inc_deps
-rw-r-r- 1 vpopmail vchkpw 32 fév 24 2003 lib_deps
-rw-r-r- 1 root root 700229 oct 11 13:22 open-smtp
-rw-r-r- 1 root root 0 oct 11 13:22 open-smtp.lock


Toutes les IP temporaires sont stockées dans open-smtp :

# head -n 5 open-smtp
213.41.188.249:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029581749
213.41.184.98:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029782162
213.41.184.135:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029880909
213.41.186.107:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029960881
213.41.186.122:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1030146813


Le dernier chiffre c'est l'heure en secondes depuis 1970 et permet de savoir quand l'IP a utilisé le pop3/imap pour la dernière fois. Et donc ceci permet à un autre script /home/vpopmail/bin/clearopensmtp de regarder toutes les IP plus anciennes que 3 heures et de les enlever du /etc/tcp.smtp.

# cat /etc/crontab
[...]
40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null


Attention : il faut bien indiquer l'utilisateur et donc mettre

40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null

et non pas

40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null

D'ailleurs, dans ce cas-là, on voit que sur cette machine le fichier open-smtp est particulièrement grand.

# wc -l open-smtp
11859 open-smtp


11859 IP c'est beaucoup. Et c'est du au fait qu'il n'y a pas d'utilisateur indiqué dans le crontab. On corrige l'erreur dans crontab et on exécute clearopensmtp.

# ls -l open-smtp
-rw-r--r-- 1 root root 700229 oct 11 13:29 open-smtp
# /home/vpopmail/bin/clearopensmtp
# ls -l open-smtp
-rw-r--r-- 1 vpopmail vchkpw 529 oct 11 13:29 open-smtp
# wc -l open-smtp
9 open-smtp
# cp /etc/crontab /etc/crontab.OLD
# pico /etc/crontab
# /etc/rc.d/init.d/crond restart
Arrêt de crond : [ OK ]
Démarrage de crond : [ OK ]
# diff -u /etc/crontab.OLD /etc/crontab
- /etc/crontab.OLD Sat Oct 11 13:31:15 2003
+ /etc/crontab Sat Oct 11 13:31:24 2003
42 4 1 * * root run-parts /etc/cron.monthly
# vpopmail
-40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null
+40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null


C'est mieux. Les permissions du open-smtp ont aussi changé. Ce n'est pas très grave.

Si vous avez le serveur pop3/imap très chargé avec plus de 3000-4000 connexions/heure, nous vous conseillons d'utiliser le patch osd (Open-Smtp-Dir) que vous pouvez trouver sur ftp://ftp.ovh.net/made-in-ovh/vpopmail. Ce patch a été réalisé par OVH et consiste à ne plus utiliser le fichier open-smtp avec le systeme de lock (blocage d'IP). Si beaucoup de personnes se connectent sur le serveur pop3/imap elles doivent attendre chacune leur tour pour avoir l'accès au fichier pour enregistrer l'IP, ce qui ralentit le serveur. À la place, nous avons eu l'idée d'utiliser un repertoire avec enregistrement des fichiers avec le nom de l'IP et une taille 0. À chaque nouvelle connexion, on met à jour la date du fichier et un tmpwatch efface les fichiers plus vieux que 3 heures. Un autre script met à jour /etc/tcp.smtp toutes secondes.

Pour éviter d'utiliser pop3 avant pouvoir envoyer les emails on peut patcher qmail avec le patch smtp-auth. Ce patch permet d'envoyer via une connexion smtp login et mot de passe d'un compte pop3 et donc permettre l'envoi des emails :

# telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 Welcome ! You are on server 1 called mx1.ovh.net, spam protected: www.spam-rbl.com ESMTP
EHLO ping.ovh.net
250-Welcome ! You are on server 1 called mx1.ovh.net, spam protected: www.spam-rbl.com
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250-STARTTLS
250-8BITMIME
250 SIZE 10000000
AUTH LOGIN
334 VXNlcm5hbWU6
cG9zdG1gregreRlciVtbC5vdmgubmV0
334 UGFzc3dvcmQ6
errrob3Zo
235 ok, go ahead (#2.0.0)
MAIL FROM:
250 ok
RCPT TO:
250 ok
DATA
354 go ahead
truc
.
250 ok 1065758232 qp 5296
QUIT
221 Welcome ! You are on server 1 called mx1.ovh.net, spam protected: www.spam-rbl.com
Connection closed by foreign host.


On voit qu'au lieu de HELO, on envoit EHLO ce qui permet d'utiliser les commandes evoluées de ESMTP décrites dans http://www.ietf.org/rfc/rfc2821.txt. Le serveur repond à EHLO avec toutes les options qu'il accepte c'est à dire:

250-AUTH LOGIN CRAM-MD5 PLAIN il s'agit de smtp-auth
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING définit le type de dialogue
250-STARTTLS ssl ou tls ou connexion cryptée
250-8BITMIME acception des email en 8bits et pas 7bit comme smtp
250 SIZE 10000000 la taille maximal de l'email est de 10Mo


Le login et mot de passe sont envoyés en base64. Pas la peine d'inverser des chaines envoyées pour connaître mes mots de passe, elles sont fausses.

L'installation de ce patch est complexe et nécessite quelques astuces qui sont hors-sujet ici. Merci de ne pas contacter le support pour les avoir, mais parlez-en plutôt sur la mailing-list.

Vous pouvez aussi mettre en place les IP des machines destinataires en dur dans la configuration de qmail. Ceci est très utile lorsque par exemple le serveur MX en face n'est pas très accessible (comme par exemple caramail.com). Dans ce cas-là, on peut dire au serveur d'utiliser un serveur smtp spécial dont le rôle est de relayer les emails pour caramail.com uniquement.

# cat /var/qmail/control/smtproutes
caramail.com:213.186.33.9


Ainsi, tous les emails vers caramail vont être redirigés vers 213.186.33.9 qui va s'occuper, lui, de la distribution des emails vers caramail.com. Ainsi on evite d'avoir un spool d'email trop important et on décharge les machines. Il faut bien sûr que 213.186.33.9 accepte les emails à partir de l'email d'où on relaye les emails mais on fait confiance à l'admin pour avoir bien configuré les serveurs. Pas besoin de redémarrer le serveur après une modification.

C'est le process qmail-remote qui s'occupe de connecter les serveurs sur le port 587 et renvoyer les emails.

Serveur MX

Les emails, un jour ou l'autre, doivent arriver sur le serveur MX de destination. C'est-à-dire celui qui va stocker l'email en attendant d'être consulté en serveur pop3 ou serveur imap. Dans ce cas-là, le serveur email accepte l'email et fait exactement la même chose que dans le cas de relay. C'est la troisième étape qui change.

Dans la troisième étape le process qmail-sent a detecté que le destinataire existe sur la machine. Souvenons-nous, c'est le process qmail-sent qui s'occupe dans la deuxième étape de gérer le spool. Il charge donc lors du demarrage les listes de tous les domaines qui se trouvent sur la machine. Ces listes sont dans :

# ls -l /var/qmail/users/assign
-rw-r--r-- 1 root root 24546 oct 9 10:32 /var/qmail/users/assign


NE modifiez surtout PAS ces fichiers à la main. Ils ont une forme spéciale et il y a toujours un fichier cdb qu'il faut compiler.

# head -n 4 /var/qmail/users/assign
+00-00l0-00l00l-0-0.com-:00-00l0-00l00l-0-0.com:508:503:/home/vpopmail/domains/00-00l0-00l00l-0-0.com:-:: +00h01.com-:00h01.com:508:503:/home/vpopmail/domains/00h01.com:-::
+01emarket.com-:01emarket.com:508:503:/home/vpopmail/domains/01emarket.com:-::

Et donc, si le destinataire se trouve sur la machine, qmail-sent utilise qmail-local pour distribuer l'email en local sur le bon répertoire. Dedans, il doit trouver un fichier .qmail-default où c'est vpopmail qui prend en charge la distribution de l'email avec tout le systeme de redirections, alias, mailing-lists, catch-all et les comptes pop3 avec une gestion de quota.

Configuration MX

Vous avez ces informations dans ce guide : VpopmailEtAdministration.

Parametrer Qmail

Taille de fichier maximale

# echo "10000000" > /var/qmail/control/databytes

Tous les emails qui ont une taille plus importante que 10Mo vont être rejetés.

Temps de la vie de l'email dans le spool :

# echo "846000" > /var/qmail/control/queuelifetime

Si l'email reste dans le spool pendant 10 jours et il n'est toujours pas renvoyé alors il retourné en double erreur vers le compte du postmaster de la machine. Si le fichier n'existe pas, l'email est retourné au bout de 5 jours.

Refuser les emails avec un certains MAIL FROM :

# echo "spammeur@spam" > /var/qmail/control/badmailfrom

Lors du dialogue SMTP, le serveur smtp en face communique MAIL FROM. On peut refuser certains MAIL FROM ce qui evite la reception de certains spam ou virus qui ont un expéditeur fixe.
Attention : ça n'a rien à avoir avec les champs From: To: Subject: de l'email.

Erreurs

Sorry,_I_wasn't_able_to_establish_an_SMTP_connection=

Un essai d'envoi vers dr_adams@sm66.com.
On interroge les serveurs dns pour savoir le MX:

# dig sm66.com mx

; <<>> DiG 9.2.1 <<>> sm66.com mx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32527
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;sm66.com. IN MX

;; ANSWER SECTION:
sm66.com. 86400 IN MX 10 mail.sm66.com.

;; Query time: 396 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 11 12:09:00 2003
;; MSG SIZE rcvd: 47



Si vous utilisez djbdns, on peut utiliser directement dnsmx.

# dnsmx sm66.com
10 mail.sm66.com


Le serveur d'email qui gere tous les emails @sm66.com est donc mail.sm66.com Nous allons donc essayer d'envoyer l'email:

# telnet mail.sm66.com 587
Trying 66.239.204.101...
Connected to mail.sm66.com.
Escape character is '^]'.
421 newd1.sm66.com out of connection slots
Connection closed by foreign host.


Aïe ! Visiblement le serveur ne fonctionne pas correctement. On peut voir le message d'erreur (c'est sympa de le donner) : out of connection slots, ce qui nous laisse penser qu'il y a trop de connexions sur ce serveur d'email en ce moment. Qmail va réessayer d'envoyer un email plus tard.

Un autre exemple : 66-2434019-directway.com?amysummers@trailerr.trailblazernews.com
Hmmm... ça ressemble à un email de spam.

# dnsmx trailerr.trailblazernews.com
10 stdin-mv-01.trailblazernews.com
# telnet stdin-mv-01.trailblazernews.com 587
Trying 206.131.244.8...
telnet: connect to address 206.131.244.8: Connexion refusée


Le serveur MX est present sur Internet mais il n'y a pas de serveur SMTP qui fonctionne et donc on ne peut pas se connecter sur le port 587.

# ping stdin-mv-01.trailblazernews.com
PING stdin-mv-01.trailblazernews.com (206.131.244.8) from xxxxxxx : 56(84) bytes of data.
64 bytes from news1mv.trailblazernews.com (206.131.244.8): icmp_seq=0 ttl=240 time=83.048 msec
64 bytes from news1mv.trailblazernews.com (206.131.244.8): icmp_seq=1 ttl=240 time=81.381 msec


stdin-mv-01.trailblazernews.com ping statistics

3 packets transmitted, 2 packets received, 33% packet loss
round-trip min/avg/max/mdev = 81.381/82.214/83.048/0.881 ms
# telnet stdin-mv-01.trailblazernews.com
Trying 206.131.244.8...
Connected to stdin-mv-01.trailblazernews.com.
Escape character is '^093~'.
Red Hat Linux release 7.2 (Enigma)
Kernel 2.4.7-10 on an i686
login:
Login incorrect

login:
Login incorrect

login:
Login incorrect

login:
Connection closed by foreign host.



Un autre exemple: response@sleekzine.com

# dnsmx sleekzine.com
20 mail2.sleekzine.com
30 mail3.sleekzine.com
10 mail1.sleekzine.com


Il y a 3 serveurs MX avec un poids different pour chaque serveur. Qmail va donc essayer mail1.sleekzine.com qui a le poids plus faible, puis mail2.sleekzine.com, puis mail3.sleekzine.com.

# telnet mail1.sleekzine.com 587
Trying 216.93.189.135...
telnet: connect to address 216.93.189.135: Connexion terminée par expiration du délai d'attente
# telnet mail1.sleekzine.com 587
Trying 216.93.189.135...
telnet: connect to address 216.93.189.135: Connexion terminée par expiration du délai d'attente
# telnet mail3.sleekzine.com 587
Trying 216.93.189.133...
telnet: connect to address 216.93.189.133: Connexion refusée



Si on regarde ce que va faire qmail avec un email comme ça :

# echo "test" | mail -s "test" response@sleekzine.com
# ps auxw
[...]
qmailr 7066 0.0 0.5 2568 736 ? S 15:04 0:00 qmail-remote sleekzine.com root@nsxxxx.ovh.net response@sleekzine.com
[...]
# tail -f /var/log/qmail/current
@400000003f880003024f7034 new msg 66208
@400000003f880003024fbe54 info msg 66208: bytes 229 from qp 7065 uid 0
@400000003f88000303f530f4 starting delivery 67496: msg 66208 to remote response@sleekzine.com
@400000003f88000303f5447c status: local 0/10 remote 1/20
@400000003f88003f221f1d74 delivery 67496: deferral: Sorry,[7]_I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/
@400000003f88003f221f30fc status: local 0/10 remote 0/20



553 sorry, that domain isn't allowed to be relayed thru this MTA

Si le serveur ne relaie pas l'email ceci veut dire que :
  • l'ip de connexion n'est pas dans /etc/tcp.smtp (voir section relay),
  • le destinataire n'a pas de compte sur la machine (voir section mx).

$ telnet mx1.ovh.net 587
Trying 213.186.33.29...
Connected to mx1.ovh.net.
Escape character is '^]'.
220 Welcome ! You are on server 2 called mx1.ovh.net, spam protected: www.spam-rbl.com ESMTP
HELO ping.ovh.net
250 Welcome ! You are on server 2 called mx1.ovh.net, spam protected: www.spam-rbl.com
MAIL FROM:
250 ok
RCPT TO:
553 sorry, that domain isn't allowed to be relayed thru this MTA (#5.7.1)
QUIT
221 Welcome ! You are on server 2 called mx1.ovh.net, spam protected: www.spam-rbl.com
Connection closed by foreign host.


Dans ce cas là on peut facilement deviner que le compte wanadoo.fr n'est pas géré sur mx1.ovh.net et il s'agit tout simplement d'un problème de relay : l'IP de connexion n'est pas déclarée dans /etc/tcp.smtp (voir section relay).

Si le compte doit être declaré sur le serveur d'email et vous avez cette erreur, vérifiez bien que le domaine est bien dans /var/qmail/bin/assign et si vous avez redemarré qmail-send avec

# killall -HUP qmail-send

Ceci peut être dû à une fausse declaration sur le serveur dns où vous avez indiqué un serveur d'email qui n'a rien à avoir avec votre domaine et donc qui ne le connait pas et donc qui n'a pas envie de relayer vos emails.

qmail_has_prog_delivery_but_has_x_bit_set._(#4.7.0)

Ceci veut dire que les permissions dans le répertoire /home/vpopmail ont des permissions d'exécution alors que ça ne devrait pas être le cas (chmod 700 au lieu de chmod 600 sur un .qmail-alias)

Voici un script pour corriger les permissions :

#!/bin/sh
cd /home/vpopmail/domains
chown -R vpopmail.vchkpw .
for file in `find . `
do
if [ -d $file ]
then
chmod 700 $file
else
chmod 600 $file
fi
done



553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

Cela veut tout simplement dire que votre domaine n'est pas configuré dans /var/qmail/control/rcpthosts

Exemple le domaine 'test.com' a été installé mais effacé accidentellement de /var/qmail/control/rcpthosts.
Voici ce que l'on obtient quand on essaie d'envoyer un mail sur postmaster@test.com :


$ telnet nsXXXX.ovh.net 587
Trying 213.186.XX.XX...
Connected to nsXXXX.ovh.net.
Escape character is '^]'.
220 nsXXXX.ovh.net ESMTP
HELO ping.ovh.net
250 nsXXXX.ovh.net
MAIL FROM:
250 ok
RCPT TO:
553 sorry, that domain isn't allowed to be relayed thru this MTA (#5.7.1)
QUIT
Connection closed by foreign host
$



warning: trouble injecting bounce message, will try later

Cela veut dire que la queue de qmail est corrompue. Pour fixer le problème une seule possibilité est, pour l'instant, connue, il faut recréer la queue de qmail Suivez pour cela le guide : QueueQmailFull.

Refaire le repertoire queue

Voir le guide : QueueQmailFull.

Spam

La section spam vient sous peu.