Regex+postfix+header_checks
Résolu/Fermé
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
-
Modifié par jonigood le 20/03/2011 à 03:51
jonigood Messages postés 476 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 6 juillet 2011 - 21 mars 2011 à 12:04
jonigood Messages postés 476 Date d'inscription samedi 5 juin 2004 Statut Membre Dernière intervention 6 juillet 2011 - 21 mars 2011 à 12:04
A voir également:
- Postfix header_checks regexp examples
- Mac automator examples - Guide
- [Postfix] Impossible à lancer ! - Forum Linux / Unix
- Postfix dovecot postfixadmin - Forum Debian
- Php mail postfix - Forum PHP
- Problme smtp avec postfix ✓ - Forum Autres distributions Linux
14 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
20 mars 2011 à 09:30
20 mars 2011 à 09:30
Salut,
Une piste...
;-))
Une piste...
$ cat plop from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT) $ sed 's/^from 192\.168\.1\.2.*sender:[^)]*)/from mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1])/;s/ESMTPA/SMPT/' plop from mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) by mail.MON-SERVEUR-SMTP.com (Postfix) with SMPT id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT) $
;-))
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 11:58
20 mars 2011 à 11:58
salut zipe31 et merci de ton intervention,
je ne pense pas que c'est écrit sous la bonne forme, pour exemple voici comment j'arrive a remplacer TOUTE LA LIGNE sans exception (ce n'est donc pas le résultat souhaité) :
ceci remplace toute la ligne par Received from mail.MON-SERVEUR-SMTP.com
de mon coté voila ou j'en suis :
et ca ne fonctionne pas, il doit y avoir une erreur dans ma ligne.
une idée ?
je ne pense pas que c'est écrit sous la bonne forme, pour exemple voici comment j'arrive a remplacer TOUTE LA LIGNE sans exception (ce n'est donc pas le résultat souhaité) :
/^Received:.*\[192\.168\.0\.[0-9]/ REPLACE Received from mail.MON-SERVEUR-SMTP.com
ceci remplace toute la ligne par Received from mail.MON-SERVEUR-SMTP.com
de mon coté voila ou j'en suis :
/^Received:.*\[192\.168\.0\.[0-9]\(Authenticated sender:.*\)\s+(.*by mail\.MON\-SERVEUR\-SMTP\.com[^\n]+ESMTPSA .*)$/im REPLACE from mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) by mail.MON-SERVEUR-SMTP.com (Postfix) with SMPT
et ca ne fonctionne pas, il doit y avoir une erreur dans ma ligne.
une idée ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
20 mars 2011 à 12:06
20 mars 2011 à 12:06
Perso j'ai utilisé "sed", mais toi tu utilises (ou comptes utiliser) quel langage ?
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 12:33
20 mars 2011 à 12:33
langage pcre
merci de ton aide
merci de ton aide
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
20 mars 2011 à 13:14
20 mars 2011 à 13:14
Euh... là je vais céder ma place à "lami20j" qui s'y connait bien plus que moi dans ce genre de regex ;-)
Par contre dans ta regex il y a un truc qui me chagrine, c'est le "[^\n]+" ???
Qu'as-tu voulu exprimer avec ça ?
Par contre dans ta regex il y a un truc qui me chagrine, c'est le "[^\n]+" ???
Qu'as-tu voulu exprimer avec ça ?
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 13:57
20 mars 2011 à 13:57
oups
effectivement "[^\n]+" pas bon, désolé les regex c'est pas mon fort je suis perdu ...
l'amie20J plese help !!!!!
effectivement "[^\n]+" pas bon, désolé les regex c'est pas mon fort je suis perdu ...
l'amie20J plese help !!!!!
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 mars 2011 à 15:47
20 mars 2011 à 15:47
Salut à vous deux,
langage pcre
Tu ne fais pas ça en php, par hasard?
langage pcre
Tu ne fais pas ça en php, par hasard?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
20 mars 2011 à 15:48
20 mars 2011 à 15:48
Salut à toi,
Merchi ;-))
Merchi ;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 mars 2011 à 15:51
20 mars 2011 à 15:51
Re,
De rien.
Pour joniperdu, je vais regarder ce soir ;-))).
Ca ne t'empêchera pas de répondre à ma question ;-)
De rien.
Pour joniperdu, je vais regarder ce soir ;-))).
Ca ne t'empêchera pas de répondre à ma question ;-)
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 16:18
20 mars 2011 à 16:18
salut l'amie20j !! ;-)
en php ? comment ca ?
je met sa dans mon fichier /etc/postfix/header_checks que j'ai préalablement créer suite a la lecture de plusieurs poste
JONIPERDU lol
en php ? comment ca ?
je met sa dans mon fichier /etc/postfix/header_checks que j'ai préalablement créer suite a la lecture de plusieurs poste
JONIPERDU lol
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 20/03/2011 à 16:31
Modifié par lami20j le 20/03/2011 à 16:31
je met sa dans mon fichier /etc/postfix/header_checks
Ok, mais tu mets avec quoi?
Script shell, script perl, script php?
Il faut savoir quelle application utilise les regex.
pcre ne désigne qu'un type des regex compatible avec perl, mais si tu ne fais pas en perl alors tu fais avec quoi?
Montre tes tests?
Ok, mais tu mets avec quoi?
Script shell, script perl, script php?
Il faut savoir quelle application utilise les regex.
pcre ne désigne qu'un type des regex compatible avec perl, mais si tu ne fais pas en perl alors tu fais avec quoi?
Montre tes tests?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
20 mars 2011 à 16:34
20 mars 2011 à 16:34
Re-
Jette un oeil à http://www.postfix.org/header_checks.5.html
Apparemment il suffit de construire une règle dans le fichier de conf avec les bonnes regex et la bonne syntaxe (REPLACE dans son cas)..
Jette un oeil à http://www.postfix.org/header_checks.5.html
Apparemment il suffit de construire une règle dans le fichier de conf avec les bonnes regex et la bonne syntaxe (REPLACE dans son cas)..
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 16:58
20 mars 2011 à 16:58
l'ami20j
désolé l'ami je suis pas encore calé en la matière pour te répondre correctement.
ce que je sais c'est que postfix doit utiliser cette regex pour filtré les mails sortants et donc REPLACE les mots définits.
sous putty j'ai créer ce fichier "/etc/postfix/header_checks" et j'écris la regex dedans...
zipe31
merci pour ce lien c'est exactement ça.
mon souci est pour construire cette règle, je n'y arrive pas, j'arrive a replacer la ligne entière avec :
qui détecte toutes lignes contenant 192.168.1.2 et la remplace par Received from mail.MON-SERVEUR-SMTP.com
je doit donc construire cette règle avec les bonnes regex pour ne pas remplacer toute la ligne....
Ok, mais tu mets avec quoi? Script shell, script perl, script php? Il faut savoir quelle application utilise les regex.
désolé l'ami je suis pas encore calé en la matière pour te répondre correctement.
ce que je sais c'est que postfix doit utiliser cette regex pour filtré les mails sortants et donc REPLACE les mots définits.
sous putty j'ai créer ce fichier "/etc/postfix/header_checks" et j'écris la regex dedans...
zipe31
merci pour ce lien c'est exactement ça.
mon souci est pour construire cette règle, je n'y arrive pas, j'arrive a replacer la ligne entière avec :
/^Received:.*\[192\.168\.0\.[0-9]/ REPLACE Received from mail.MON-SERVEUR-SMTP.com
qui détecte toutes lignes contenant 192.168.1.2 et la remplace par Received from mail.MON-SERVEUR-SMTP.com
je doit donc construire cette règle avec les bonnes regex pour ne pas remplacer toute la ligne....
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 mars 2011 à 17:24
20 mars 2011 à 17:24
Ok.
Mais tu ne donnes pas la ligne complète alors.
Dans ton premier message tu dis
from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT)
et puis tu cherche une ligne qui commence avec Received
Bref, ta regex ne va jamais fonctionner.
Il faudra que tu donnes le contenus correct des données en entrée.
Mais tu ne donnes pas la ligne complète alors.
Dans ton premier message tu dis
from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT)
et puis tu cherche une ligne qui commence avec Received
Bref, ta regex ne va jamais fonctionner.
Il faudra que tu donnes le contenus correct des données en entrée.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 mars 2011 à 17:26
20 mars 2011 à 17:26
En plus entre IP et Authenticated sender il y a des choses qu'on ne voit pas dans ta regex
\[192\.168\.0\.[0-9]\(Authenticated sender
\[192\.168\.0\.[0-9]\(Authenticated sender
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 20/03/2011 à 18:15
Modifié par lami20j le 20/03/2011 à 18:15
mon souci est pour construire cette règle, je n'y arrive pas, j'arrive a replacer la ligne entière avec :
/^Received:.*\[192\.168\.0\.[0-9]/ REPLACE Received from mail.MON-SERVEUR-SMTP.com
qui détecte toutes lignes contenant 192.168.1.2 et la remplace par Received from mail.MON-SERVEUR-SMTP.com
Je ne crois pas.
Dans ta regex tu cherches et les lignes contient 1 (voir en gras
de mon coté voila ou j'en suis :
/^Received:.*\[192\.168\.0\.[0-9]\(Authenticated sender:.*\)\s+(.*by mail\.MON\-SERVEUR\-SMTP\.com[^\n]+ESMTPSA .*)$/im REPLACE from mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) by mail.MON-SERVEUR-SMTP.com (Postfix) with SMPT
et ca ne fonctionne pas, il doit y avoir une erreur dans ma ligne.
une idée ?
Oui, t'arrêtes de boire quand tu fais des regex ;-DDD
- tu cherches ESMTPA mais dans regex tu mets ESMTPSA
- pour ip dans 192.168 je te conseille d'utiliser 192\.168\.\d{1,3}\.\d{1,3}
- pourquoi tu mets de backslash avant les tiret?
- dans ton message initial tu dis que tu veuilles obtenir ceci mais tu changes id et aussi l'heure. C'est normal?
- c'est quoi le crochet avant 192?
Quelque chose comme ça, mais je ne suis pas convaincu, il faudrait que tu dises exactement ce que tu veux remplacer exactement et avec quoi.
A vrai dire ce que tu demande c'est relativement simple.
Ce n'est pas la construction de la regex qui me pose de problèmes mais la façon dont elle est utilisé. Je ne connais pas headers_check
/^Received:.*192\.168\.\d{1,3}\.\d{1,3}.*\(Authenticated sender:.*\)\s+by mail\.MON-SERVEUR-SMTP\.com.*ESMTPA.*$/ REPLACE from mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) by mail.MON-SERVEUR-SMTP.com (Postfix) with SMPT
GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
106485010510997108
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 19:04
20 mars 2011 à 19:04
déjà , merci de prendre de ton temps pour mon problème.
Dans ton premier message tu dis
et puis tu cherche une ligne qui commence avec Received
en faite "Received " est forcément avant le "from" c'est un des header des mails envoyés.
donc quand je fait /^Received:.*\[192\.168\.0\.[0-9]/ REPLACE Received from mail.MON-SERVEUR-SMTP.com sa prend tout ce qui est après "Received: 192.168.1.2" , pour plus de clarté voici la ligne complète :
donc /^Received:.*\[192\.168\.0\.[0-9]/ REPLACE Received from mail.MON-SERVEUR-SMTP.com fonctionne correctement. et transforme toute la ligne en Received: from mail.MON-SERVEUR-SMTP.com qui est après REPLACE de ma regex
- tu cherches ESMTPA mais dans regex tu mets ESMTPSA
effectivement une erreur de frape
- pourquoi tu mets de backslash avant les tiret?
car c'est plus jolie (lol)
- dans ton message initial tu dis que tu veuilles obtenir ceci mais tu changes id et aussi l'heure. C'est normal?
encore une erreur de ma part
- c'est quoi le crochet avant 192?
ça aussi c'est jolis :-)
blague à part , voici exactement ce que je veux obtenir, tout ce qui est en gras doit être changer par la regex :
ce qui donne :
j'espère que c'est déjà plus compréhensible comme ça
Dans ton premier message tu dis
from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT)
et puis tu cherche une ligne qui commence avec Received
en faite "Received " est forcément avant le "from" c'est un des header des mails envoyés.
donc quand je fait /^Received:.*\[192\.168\.0\.[0-9]/ REPLACE Received from mail.MON-SERVEUR-SMTP.com sa prend tout ce qui est après "Received: 192.168.1.2" , pour plus de clarté voici la ligne complète :
Received: from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT)
donc /^Received:.*\[192\.168\.0\.[0-9]/ REPLACE Received from mail.MON-SERVEUR-SMTP.com fonctionne correctement. et transforme toute la ligne en Received: from mail.MON-SERVEUR-SMTP.com qui est après REPLACE de ma regex
- tu cherches ESMTPA mais dans regex tu mets ESMTPSA
effectivement une erreur de frape
- pourquoi tu mets de backslash avant les tiret?
car c'est plus jolie (lol)
- dans ton message initial tu dis que tu veuilles obtenir ceci mais tu changes id et aussi l'heure. C'est normal?
encore une erreur de ma part
- c'est quoi le crochet avant 192?
ça aussi c'est jolis :-)
blague à part , voici exactement ce que je veux obtenir, tout ce qui est en gras doit être changer par la regex :
Received: from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT)
ce qui donne :
Received: from mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) by mail.MON-SERVEUR-SMTP.com (Postfix) with SMTP id E67A58929974 for <xxx@xxx.com>; Sun, 20 Mar 2011 00:18:41 +0000 (GMT)
j'espère que c'est déjà plus compréhensible comme ça
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 mars 2011 à 19:40
20 mars 2011 à 19:40
j'espère que c'est déjà plus compréhensible comme ça
Pas toute à fait ;-)
Regarde ce que j'ai souligné.
Ce ne sont pas les mêmes en-têtes (id et heure ont changé)
C'est normal?
Il faut que je regarde comment fonctionnent, si jamais c'est possible, les captures des motifs avec headers_check
Pas toute à fait ;-)
Regarde ce que j'ai souligné.
Received: from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT)
Ce ne sont pas les mêmes en-têtes (id et heure ont changé)
C'est normal?
Received: from mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) by mail.MON-SERVEUR-SMTP.com (Postfix) with SMTP id E67A58929974 for <xxx@xxx.com>; Sun, 20 Mar 2011 00:18:41 +0000 (GMT)
Il faut que je regarde comment fonctionnent, si jamais c'est possible, les captures des motifs avec headers_check
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 19:51
20 mars 2011 à 19:51
oui c'est tout a fait normale
chaque mail a forcément un ID différent
chaque mail a forcément une heure d'envoi différente
donc c'est deux information ne doive pas être changer par la regex et c'est la que ça coince pour moi ....
chaque mail a forcément un ID différent
chaque mail a forcément une heure d'envoi différente
donc c'est deux information ne doive pas être changer par la regex et c'est la que ça coince pour moi ....
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
Modifié par jonigood le 20/03/2011 à 19:55
Modifié par jonigood le 20/03/2011 à 19:55
je précise qu'il est possible de mètre plusieurs regex dans ce fichier, peut être que la solution la plus simple serait de faire deux regex différentes ?
une première regex pour la première partie a changer 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx)
et une deuxièmes regex pour la deuxièmes parties a changer ESMTPA
....
une première regex pour la première partie a changer 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx)
et une deuxièmes regex pour la deuxièmes parties a changer ESMTPA
....
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 20/03/2011 à 20:07
Modifié par lami20j le 20/03/2011 à 20:07
/^(Received:\s*from\s*)192\.168\.\d{1,3}\.\d{1,3}.*unknown.*\(Authenticated sender:.*\)(\s+by mail\.MON-SERVEUR-SMTP\.com.*)ESMTPA(.*)$/ REPLACE $1 mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1])${2}SMTP$3
GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
106485010510997108
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 20:23
20 mars 2011 à 20:23
fonctionne pas :-(
je précise que le [xx.xxx.xx.xx] dans le header original est une adresse ip....
je précise que le [xx.xxx.xx.xx] dans le header original est une adresse ip....
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 mars 2011 à 20:28
20 mars 2011 à 20:28
peu importe xx.xxx.xxx.xx puisque .* reconnaît tout
Regarde mon test, on voit que tout est modifié correctement
Bref, il faudrait que tu montres ce que tu obtiens pour voir ce qui ne va pas sinon on ne peux pas avancer.
Regarde mon test, on voit que tout est modifié correctement
lami20j@debian-acer:~$ cat joniperdu.pl #!/usr/bin/perl while(<DATA>){ s/^(Received:\s*from\s*)192\.168\.\d{1,3}\.\d{1,3}.*unknown.*\(Authenticated sender:.*\)(\s+by mail\.MON-SERVEUR-SMTP\.com.*)ESMTPA(.*)$/$1 mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1])$2SMTP$3/; print; } __DATA__ Received: from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT) lami20j@debian-acer:~$ lami20j@debian-acer:~$ perl joniperdu.pl Received: from mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) by mail.MON-SERVEUR-SMTP.com (Postfix) with SMTP id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT)
Bref, il faudrait que tu montres ce que tu obtiens pour voir ce qui ne va pas sinon on ne peux pas avancer.
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 20:43
20 mars 2011 à 20:43
pour vérifier je test directement en m'envoyant un mail sur ma boite ymail ou il est possible d'analyser les header, avec ta regex il n'y a aucun changement, le header reste exactement le même
quand je teste avec un truc simple comme :
me header change correctement en :
comment tester la regex sans avoir a m'envoyer un mail a chaque fois ?
j'ai vue que tu fait sa dans un .pl, tu peut m'expliquer ?
quand je teste avec un truc simple comme :
/^Received:.*\[192\.168\.0\.[0-9]/ REPLACE Received from mail.MON-SERVEUR-SMTP.com
me header change correctement en :
Received from mail.MON-SERVEUR-SMTP.com
comment tester la regex sans avoir a m'envoyer un mail a chaque fois ?
j'ai vue que tu fait sa dans un .pl, tu peut m'expliquer ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 20/03/2011 à 20:47
Modifié par lami20j le 20/03/2011 à 20:47
j'ai vue que tu fait sa dans un .pl, tu peut m'expliquer ?
Ben, justement, dans le .pl ça marche puisque c'est directement du Perl
Essaie comme ça
Ben, justement, dans le .pl ça marche puisque c'est directement du Perl
Essaie comme ça
/^(Received:\s*from\s*)192\.168\.\d{1,3}\.\d{1,3}.*unknown.*\(Authenticated sender:.*\)(\s+by mail\.MON-SERVEUR-SMTP\.com.*)ESMTPA(.*)$/ REPLACE "$1" mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) "$2" SMTP "$3"
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 mars 2011 à 20:52
20 mars 2011 à 20:52
Si ça ne marchera pas alors on va faire petit à petit pour voir ce qui ne passe pas.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
20 mars 2011 à 20:55
20 mars 2011 à 20:55
Et encore une chose, enlève le crochet, il n'a rien à faire là.
Il n'y a pas de crochet avec 192
quand je teste avec un truc simple comme :
/^Received:.*\[192\.168\.0\.[0-9]/
Justement je suis vraiment étonné que ça marche
Si c'est le cas alors il faudrait que tu m'envoie par mail l'entête puisque je dois comprendre que lorsque tu colles sur ccm ça ne passe pas le crochet
Il n'y a pas de crochet avec 192
quand je teste avec un truc simple comme :
/^Received:.*\[192\.168\.0\.[0-9]/
Justement je suis vraiment étonné que ça marche
Si c'est le cas alors il faudrait que tu m'envoie par mail l'entête puisque je dois comprendre que lorsque tu colles sur ccm ça ne passe pas le crochet
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 21:06
20 mars 2011 à 21:06
sa fonctionne toujours pas , en mp tu a le header original
voici la source de : /^Received:.*\[192\.168\.0\.[0-9]/
https://www.cyberciti.biz/faq/postfix-remove-hide-hostnames-ip-addresses/
ça marche pourtant !
voici la source de : /^Received:.*\[192\.168\.0\.[0-9]/
https://www.cyberciti.biz/faq/postfix-remove-hide-hostnames-ip-addresses/
ça marche pourtant !
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
20 mars 2011 à 21:12
20 mars 2011 à 21:12
je m'inspire de :
http://www.starbridge.org/support/viewtopic.php?f=2&t=772 (bas de page)
et
http://tech.groups.yahoo.com/group/postfix-users/message/274241 (bas de page)
ça a l'air de fonctionner pour eux ....
http://www.starbridge.org/support/viewtopic.php?f=2&t=772 (bas de page)
et
http://tech.groups.yahoo.com/group/postfix-users/message/274241 (bas de page)
ça a l'air de fonctionner pour eux ....
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
Modifié par lami20j le 20/03/2011 à 22:52
Modifié par lami20j le 20/03/2011 à 22:52
RÉSOLU
my name is jonigood
winer is l'ami20jgood verry goooooood !
merci a toi tu a trouver la bonne regex (pas facile tout de même)
le mot de la fin est :
a bientôt et merci a tous
petite précision , il fallait mètre Received: après le REPLACE et "\d" n'est pas pris en compte, il fallait donc "[0-9]" a la place
my name is jonigood
winer is l'ami20jgood verry goooooood !
merci a toi tu a trouver la bonne regex (pas facile tout de même)
le mot de la fin est :
/^Received:\s*(from\s*)192\.168\.1\.[0-9].*\(Authenticated sender:.*\)(\s+by mail\.MON-SERVEUR-SMTP\.com.*)ESMTPA(.*)$/ REPLACE Received: $1 mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) $2 SMTP $3
a bientôt et merci a tous
petite précision , il fallait mètre Received: après le REPLACE et "\d" n'est pas pris en compte, il fallait donc "[0-9]" a la place
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
21 mars 2011 à 00:14
21 mars 2011 à 00:14
Re,
De rien.
Pour la fin de l'histoire ;-)
comment tester la regex sans avoir a m'envoyer un mail a chaque fois ?
Effectivement s'envoyer à chaque fois un mail ce n'est pas le top.
Voici une manière de tester la regex sans avoir besoin de s'envoyer à chaque fois un mail.
La commande est (à faire en root)
On constate effectivement que la classe de caractères \d n'est pas reconnue, la commande ne retourne rien
Si on mets [0-9] ça fonctionne.
Cette fois en revanche la commande retourne le contenu de fichier et la chaîne de remplacement obtenu grâce à la regex
De rien.
Pour la fin de l'histoire ;-)
comment tester la regex sans avoir a m'envoyer un mail a chaque fois ?
Effectivement s'envoyer à chaque fois un mail ce n'est pas le top.
Voici une manière de tester la regex sans avoir besoin de s'envoyer à chaque fois un mail.
La commande est (à faire en root)
postmap -q - regexp:/etc/postfix/header_checks < fichier_qui_contient_l'en_tête
On constate effectivement que la classe de caractères \d n'est pas reconnue, la commande ne retourne rien
:~$ cat /etc/postfix/header_checks /^Received:\s*(from\s*)192\.168\.1\.\d.*\(Authenticated sender:.*\)(\s+by mail\.MON-SERVEUR-SMTP\.com.*)ESMTPA(.*)$/ REPLACE Received: $1 mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) $2 SMTP $3 ~$ cat test_head Received: from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT) ~$ sudo postmap -q - regexp:/etc/postfix/header_checks < test_head ~$
Si on mets [0-9] ça fonctionne.
Cette fois en revanche la commande retourne le contenu de fichier et la chaîne de remplacement obtenu grâce à la regex
~$ cat /etc/postfix/header_checks /^Received:\s*(from\s*)192\.168\.1\.[0-9].*\(Authenticated sender:.*\)(\s+by mail\.MON-SERVEUR-SMTP\.com.*)ESMTPA(.*)$/ REPLACE Received: $1 mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) $2 SMTP $3 ~$ cat test_head Received: from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT) ~$ sudo postmap -q - regexp:/etc/postfix/header_checks < test_head Received: from 192.168.1.2 (unknown [xx.xxx.xx.xx]) (Authenticated sender: xxxxxx) by mail.MON-SERVEUR-SMTP.com (Postfix) with ESMTPA id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT) REPLACE Received: from mail.MON-SERVEUR-SMTP.com (localhost.localdomain [127.0.0.1]) by mail.MON-SERVEUR-SMTP.com (Postfix) with SMTP id 1E-65424927097 for <xxx@xxx.com>; Sun, 20 Mar 2011 02:18:43 +0000 (GMT)
jonigood
Messages postés
476
Date d'inscription
samedi 5 juin 2004
Statut
Membre
Dernière intervention
6 juillet 2011
28
21 mars 2011 à 12:04
21 mars 2011 à 12:04
bon a savoir
Merci pour ce mini tuto
Merci pour ce mini tuto