Virtualmin
Posts Tagged Postfix
Rechercher efficacement des e-mails dans Postfix
Lorsque l’on utilise Postfix, on est à la fois en présence d’un outil extrêmement puissant et d’une nasse insondable de possibles qui peuvent nous faciliter grandement la vie…pour peu qu’on soit initié. C’est pourquoi la vocation de cet article est de partir de quelques commandes intelligibles qui vous feront gagner un temps précieux et tirer immédiatement parti de votre serveur de messagerie.
Obtenir plus d’informations sur un e-mail identifié par son ID
Si vous désirez connaître la vie complète d’un e-mail qui transite via votre serveur de messagerie, utilisez la commande tail pour lire les dernières lignes du fichier courant mail.log et filtrer sur l’ID du mail. L’option -10000 indique que l’on désire remonter 10000 lignes avant la fin du fichier. Vous pouvez bien sûr ajuster cette commande comme bon vous semble.
root@srv-mail:/var/log# tail -10000 /var/log/mail.log | egrep ': 00CE025A260: ' Jan 6 10:23:05 srv-mail postfix/smtpd[28680]: 00CE025A260: client=srv-exchange.domaine.com[192.168.100.6] Jan 6 10:23:05 srv-mail postfix/cleanup[29953]: 00CE025A260: message-id=<AB74FB167D7D5E40BE45E3DA6CCEBBD01AF8B3@srv-exchange.domaine.com> Jan 6 10:23:06 srv-mail postfix/qmgr[25146]: 00CE025A260: from=<source@domaine.com>, size=3349, nrcpt=1 (queue active) Jan 6 10:23:07 srv-mail postfix/smtp[29697]: 00CE025A260: to=<destination@domaine.com>, relay=mta.domaine2.com[93.101.255.110]:25, delay=1.3, delays=0.01/0/0.67/0.62, dsn=2.0.0, status=sent (250 ok 1242116587 qp 21061 server-119.tomer-170.domaine2.com!12421165) Jan 6 10:23:07 srv-mail postfix/qmgr[25146]: 00CE025A260: removed
Pour faire un peu de littérature sur l’output de cette commande, on peut indiquer que le mail ainsi filtré arrive d’un serveur Exchange sur le serveur Postfix via le daemon smtpd puis reçoit immédiatement un message-id via le daemon cleanup. Le mail à présent déplacé vers le dossier incoming est pris en charge par le daemon queue manager (qmgr) qui organise la livraison du fichier grâce aux informations de routage renseignées dans le fichier /etc/postfix/main.cf.
Chercher les logs récents concernant un domaine ou une adresse e-mail
Il est souvent intéressant de chercher les logs récents concernant des messages appartenant à un domaine ou une adresse de messagerie donnée. Une utilisation possible consisterait à identifier un domaine de messagerie qui arrive en grand nombre sur le serveur et à lui appliquer une politique (de rétention, par exemple) via script.
Dans l’exemple suivant, on filtre tous les messages envoyés vers le domaine gmail.com (to). Notez l’argument -i qui permet d’ignorer la casse et le .* qui permet de ne pas spécifier de nom d’utilisateur sur le domaine, le tout redirigé dans un fichier navigable grâce à la commande less. Enfin, vous pouvez échapper votre commande avec un antislash avant l’extension du domaine recherché.
root@srv-mail:# tail -10000 /var/log/mail.log | egrep -i ': to=<.*@gmail.com>,' Jan 6 16:25:08 srv-mail postfix/qmgr[28907]: 302AC25A247: from=<john.doe@gmail.com>, size=2933, nrcpt=1 (queue active) Jan 6 16:27:03 srv-mail postfix/qmgr[28907]: D6AB425A247: from=<james.nugent@gmail.com>, size=64081, nrcpt=1 (queue active) Jan 6 16:29:22 srv-mail postfix/qmgr[28907]: EF4BC25A247: from=<bo897wyoming@gmail.com>, size=4975, nrcpt=1 (queue active) Jan 6 16:29:57 srv-mail postfix/qmgr[28907]: 7AA0125A247: from=<madakrf789@gmail.com>, size=6943, nrcpt=1 (queue active)
Même exemple avec une adresse de messagerie spécifique, cette-fois ci en réception (from). Ici, on n’est pas sûr de l’adresse de messagerie en question alors on utilise l’astérisque comme wildcard.
root@srv-mail:# tail -10000 /var/log/mail.log | egrep -i ': from=<john.*@gmail.com>,' Jan 6 16:25:08 srv-mail postfix/qmgr[28907]: 302AC25A247: from=<john.doe@gmail.com>, size=2933, nrcpt=1 (queue active)
Articles Récents