Retour : Page Principale > sommaire aide > sommaire aide logiciels
C'est simple en théorie mais compliqué en pratique et la documentation ci-dessous décrit un cheminement qui a permis de faire fonctionner le relais d'Aphyllanthe (exim4) vers Sequoia (Qmail) :
Reconfigurer exim4 comme suit :
Répondre successivement :
Donc ajoutez les FQDN des adresses destinataires, un par ligne.
Le fichier /etc/tcp.smtp sert à autoriser le serveur mail à relayer un mail provenant des IP listées.
Ajouter une ligne avec l'IP du serveur expéditeur dans /etc/tcp.smtp de la forme :
L'IP peut ĂȘtre partielle et s'arrĂȘter Ă un point ("."), pour dĂ©signer un rang d'IPs.
Appliquer les changements avec :
Source : https://qmail.jms1.net/relay.shtml
Note: est peut-ĂȘtre liĂ© au CRON qui met Ă jour les destinataires valides et d'autres trucs de Qmail (voir la crontab de Sequoia si < 2017/04, de Cuscuta ensuite).
Si ça s'ouvre, on est bon. Si ça refuse ou timeoute, on a un problÚme de ports.
Essai d'envoi de mail avec sendmail, depuis l'expéditeur :
Se rendre dans la boite mail de l'utilisateur : cd /home/vpopmail/domains/tela-botanica.org/utilisateur
Vérifier qu'il n'existe pas un fichier .qmail restant dans ce dossier : ls -al
Le renommer en .qmail.sauv : mv .qmail .qmail.sauv
Vérifier que la boite mail a retrouvé son bon fonctionnement.
Sur le serveur faut chercher dans /etc/qmail (ou /var/qmail/control)
Suite à une avalanche de refus de mails de la part de Orange et Wanadoo, réduction (de 12 à 3) du nombre d'opérations simultanées :
Source : https://www.zapoyok.info/2011/01/01/orangewanadoo-et-%C2%AB-too-many-connections-slow-down-ofr004_104-104-%C2%BB/
(Notez bien le F majuscule, qui fait un suivi par nom de fichier et permet de continuer de lire mĂȘme en cas de rotation du fichier)
Cela signifie que le liens en questions (ici .qmail-bota-languedoc-discard-default, .qmail-cst-donnees-reject-default, ...) pointe surement vers fichiers qui n'existe plus.
Il suffit de supprimer ces liens pour résoudre le problÚme : rm .qmail-bota-languedoc-discard-default
553 sorry, this recipient is not in my validrcptto list (#5.7.1)
Il faut aller voir vérifier sur le serveur mail quelles erreurs sont données par la commande
Moi j'avais genre des ERROR: aphyllanthe.tela-botanica.net is listed in rcpthosts/morercpthosts.cdb but is not handled by the server.
Il a ensuite fallu ajouter chaque domaine en erreur au fichier /var/qmail/control/virtualdomains en respectant la forme domaine:domaine .
Ensuite Internet m'a dit d'envoyer un SIGHUP au process qmail-send (ça permet de rafraichir virtualdomain) : kill -1 PID aprÚs un ps aux | grep qmail-send
Pour conclure relancer validrcptto a fonctionné sans erreur et la redirection aussi.
Source : https://cr.yp.to/qmail/faq/admin.html#newdomains
Qmailadmin, Qmail, Vpopmail
Utiliser Qmail comme relais pour un autre MTA
Pour toutes les machines envoyant du courrier à des destinataires autres que @tela-botanica.org, il est avantageux d'utiliser Qmail (plus exactement : d'utiliser le serveur de courrier déjà configuré pour envoyer à l'extérieur) comme relais : le MTA du serveur (par exemple exim4) n'envoie alors pas directement les courriers mais les transmets à Qmail.C'est simple en théorie mais compliqué en pratique et la documentation ci-dessous décrit un cheminement qui a permis de faire fonctionner le relais d'Aphyllanthe (exim4) vers Sequoia (Qmail) :
0. configurer l'envoyeur pour utiliser un relais
On admet dans cet exemple que l'expéditeur utilise exim4 et que le relais est Sequoia.Reconfigurer exim4 comme suit :
dpkg-reconfigure exim4-config
Répondre successivement :
- Envoi par relais "smarthost" - réception SMTP ou fetchmail
- le fqdn de la machine (important pour la suite), généralement nomdemachine.tela-botanica.net
- 127.0.0.1 ; ::1_ (valeur par défaut)
- rien (laisser vide)
- rien (laisser vide)
- l'IP du relais, dans cet exemple 10.99.34.3 (IP de Sequoia sur le sous-réseau SupAgro)
- non
- non
- Format "Maildir"
- non
1. vérifier que Qmail est accessible sur le port 25
Dans le sous-réseau des machines virtuelles notamment, vérifier que le port 25 est ouvert sur la bonne interface; pour avoir une idée de la configuration de Shorewall, voir ici.2. config de rcpthosts et tcp.smtp
Le fichier /etc/qmail/rcpthosts sert à autoriser le serveur mail à relayer un mail ayant pour destinataire les FQDN listés.Donc ajoutez les FQDN des adresses destinataires, un par ligne.
Le fichier /etc/tcp.smtp sert à autoriser le serveur mail à relayer un mail provenant des IP listées.
Ajouter une ligne avec l'IP du serveur expéditeur dans /etc/tcp.smtp de la forme :
147.99.34.:allow,RELAYCLIENT=""
Appliquer les changements avec :
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp qmailctl cdb
Source : https://qmail.jms1.net/relay.shtml
3. attendre
Curieusement, il semble que Qmail mette du temps Ă accepter les changements. Il n'est pas nĂ©cessaire de le redĂ©marrer (ce qui est pĂ©nible et risquĂ©) mais il se peut que le relais ne marche pas durant plusieurs heures, et se mette Ă marcher le lendemain. Mystayrrrre.Note: est peut-ĂȘtre liĂ© au CRON qui met Ă jour les destinataires valides et d'autres trucs de Qmail (voir la crontab de Sequoia si < 2017/04, de Cuscuta ensuite).
4. tester
Depuis l'expéditeur :telnet IP.DU.RELAIS.QMAIL 25
Essai d'envoi de mail avec sendmail, depuis l'expéditeur :
echo "Subject: test relais Qmail" | sendmail -v adresse@du-destinataire.fr
5. débugger
- vérifier la file d'attente de l'expéditeur : en général avec la commande mailq; si la sortie est non-vide, c'est que des emails sont coincés
- vérifier le log de l'expéditeur : avec exim, lire /var/log/exim4/mainlog ; on peut voir comment la machine s'est identifiée auprÚs du relais (l'adresse d'expédition, incluantle fqdn utilisé), et le code reçu lors de la transmission au relais
- si on écrit à une liste (ex: dev-log@), vérifier que l'expéditeur du message (généralement root@fqdn) est autorisé à poster dans la liste
ProblĂšme: pas de reception de mail aprĂšs suppression d'une notification d'abscence
Se connecter en ssh sur le serveur.Se rendre dans la boite mail de l'utilisateur : cd /home/vpopmail/domains/tela-botanica.org/utilisateur
Vérifier qu'il n'existe pas un fichier .qmail restant dans ce dossier : ls -al
Le renommer en .qmail.sauv : mv .qmail .qmail.sauv
Vérifier que la boite mail a retrouvé son bon fonctionnement.
Les trucs chelous Ă savoir sur Qmail
DĂ©marrage et arrĂȘt du service
- il ne faut JAMAIS toucher aux fichiers des messages (/home/vpopmail/domains/* ), que ce soit Ă la main ou avec un utilitaire comme qMailHandle, avant d'avoir arrĂȘtĂ© le service et tous les processus qmail
- il ne faut JAMAIS tuer le processus qmail, au risque de perdre des messages et tout dĂ©zinguer. Il faut l'arrĂȘter avec /etc/init.d/qmail stop. La derniĂšre fois, il a fallu effacer tous les emails et tout rĂ©importer depuis la derniĂšre sauvegarde !
- quand on arrĂȘte qmail, il est bon de faire un ps aux | grep mail pour contrĂŽler que tout soit bien arrĂȘtĂ©; si un message est en cours de traitement, les processus ne s'arrĂȘteront qu'une fois le traitement terminĂ© - ne pas essayer de travailler avant que tout soit arrĂȘtĂ©
- quand on arrĂȘte qmail, il vaut mieux arrĂȘter courier-imap avant, et le relancer aprĂšs avoir relancĂ© qmail
- quand on relance qmail, il est censĂ© dĂ©marrer deux processus /usr/bin/tcpserver : un "smtp" et un "pop"; environ une fois sur deux, le "pop" ne dĂ©marre pas. Il faut donc vĂ©rifier avec ps qu'il a bien dĂ©marrĂ©, sans quoi il faut arrĂȘter qmail tout de suite (avant qu'il se remette Ă traiter des messages) et relancer qmail jusqu'Ă ce que le serveur pop tourne
- normalement il n'y a pas besoin d'arrĂȘter courier-imap pour toucher Ă qmail, mais on ne sait jamais : on peut le stopper en mĂȘme temps que qmail : /etc/init.d/courier-imap stop et le redĂ©marrer en dernier : /etc/init.d/courier-imap start
- par contre, recharger la config avec qmailctl reload ça ne semble pas poser de soucis
Modifier la config de qmail
Voir le détails des fichiers de config : http://www.lifewithqmail.org/lwq.html#config-filesSur le serveur faut chercher dans /etc/qmail (ou /var/qmail/control)
Suite à une avalanche de refus de mails de la part de Orange et Wanadoo, réduction (de 12 à 3) du nombre d'opérations simultanées :
echo 3 > /var/qmail/control/concurrencyremote
Source : https://www.zapoyok.info/2011/01/01/orangewanadoo-et-%C2%AB-too-many-connections-slow-down-ofr004_104-104-%C2%BB/
Rechercher et lire des messages
Rechercher des messages dans la file d'attente
qmail-qread | grep -B1 adresse-ou-domaine-a-rechercher
Lire le contenu d'un message de la file
Utiliser qmlHandle en lui passant le numéro de l'email, qui se situe à la suite du # dans les résultats de qmail-qread.cd /root/qmhandle-1.3.2 ./qmHandle -m586800
Lire les logs
Pour lire les logs :(Notez bien le F majuscule, qui fait un suivi par nom de fichier et permet de continuer de lire mĂȘme en cas de rotation du fichier)
tail -F /var/log/qmail/smtpd/current | tai64nlocal tail -F /var/log/qmail/current | tai64nlocal
"Rajeunir" un message qui traĂźne dans la file d'attente
Cela permet de redemander Ă QMail de le traiter assez rapidement.- trouver l'identifiant du message (avec qmail-qread par exemple), mettons qu'on obtienne #119123
- trouver le fichier info dans les dossiers QMail :
$ find /var/qmail/queue/info -name 1191123
- faire un touch sur le fichier info associé :
$ touch /var/qmail/queue/info/22/1191123
Erreur : file permission error dans Qmailadmin
Si Qmailadmin affiche sur l'interface des messages du style :file permission error .qmail-bota-languedoc-discard-default file permission error .qmail-cst-donnees-reject-default file permission error .qmail-cst-donnees-confirm-default
Cela signifie que le liens en questions (ici .qmail-bota-languedoc-discard-default, .qmail-cst-donnees-reject-default, ...) pointe surement vers fichiers qui n'existe plus.
Il suffit de supprimer ces liens pour résoudre le problÚme : rm .qmail-bota-languedoc-discard-default
Ajouter un favicon Ă QmailAdmin
(voilĂ un truc dont on n'a vraiment rien Ă foutre)- Ăditer le fichier suivant : vi /usr/local/share/qmailadmin/html/header.html
- Ajouter une ligne : <link rel="shortcut icon" href="/images/qmailadmin/favicon.ico" />
- Ajouter un fichier image "favicon.ico" dans le dossier : /home/admin/images/qmailadmin/
- Recharger la page et c'est bon...
Erreur : 553 sorry, this recipient is not in my validrcptto list (#5.7.1)
Lors d'un envoi Ă une redirection il peut subvenir ce message de bounce :553 sorry, this recipient is not in my validrcptto list (#5.7.1)
Il faut aller voir vérifier sur le serveur mail quelles erreurs sont données par la commande
/usr/local/bin/update.validrcptto
Moi j'avais genre des ERROR: aphyllanthe.tela-botanica.net is listed in rcpthosts/morercpthosts.cdb but is not handled by the server.
Il a ensuite fallu ajouter chaque domaine en erreur au fichier /var/qmail/control/virtualdomains en respectant la forme domaine:domaine .
Ensuite Internet m'a dit d'envoyer un SIGHUP au process qmail-send (ça permet de rafraichir virtualdomain) : kill -1 PID aprÚs un ps aux | grep qmail-send
Pour conclure relancer validrcptto a fonctionné sans erreur et la redirection aussi.
Source : https://cr.yp.to/qmail/faq/admin.html#newdomains