[Server] Postfix body_checks replace

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns e altro.
edi2010
Prode Principiante
Messaggi: 2
Iscrizione: venerdì 10 dicembre 2010, 12:13

[Server] Postfix body_checks replace

Messaggio da edi2010 »

Ciao a tutti, spero che qualcuno sappia illuminarmi.
Devo effettuare la sostituzione di una determinata stringa per ogni email che passa per il ns sistema di posta (postfix).
Ho realizzato qualcosina attraverso la funzione body_checks, ovvero
in main.cf ho precisato il file di mapping con la stringa

Codice: Seleziona tutto

body_checks=regexp:/etc/postfix/body_checks
e nel body_checks ecco il mapping da matchare

Codice: Seleziona tutto

# aaa
/www.miodominio.it/	REPLACE www.tuodominio.it
il problema è che in questo modo mi viene sostituita tutta la linea nella quale si trova il il match. A me invece interessa sostituire solo il match e lasciare intatta il resto della linea.
Su http://www.postfix.org/header_checks.5.html ho trovato che il paragrafo

Codice: Seleziona tutto

TEXT SUBSTITUTION
       Substitution  of  substrings  from  the matched expression
       into the action string is possible using the  conventional
       Perl  syntax  ($1,  $2,  etc.).   The macros in the result
       string may need to be written as  ${n}  or  $(n)  if  they
       aren't followed by whitespace.

       Note:  since negated patterns (those preceded by !) return
       a result when the expression does not match, substitutions
       are not available for negated patterns.
ma, sarà che sono un pò a digiuno di regular e perl, non c'ho capito un acca..

Sia ringraziato chiunque riuscisse ad avere un lampo di genio ed aiutarmi.

Grazie infinite
Avatar utente
takeshi
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 789
Iscrizione: venerdì 24 novembre 2006, 18:33

Re: [Server] Postfix body_checks replace

Messaggio da takeshi »

Il problema è semmai che l'azione REPLACE rimpiazza l'intera riga con il testo che segue.

Non ho modo di verificare, ma se non ci sono più di una occorrenza di
www.miodominio.it per riga, potresti usare qualcosa del genere:

Codice: Seleziona tutto

/(.*)www.miodominio.it(.*)/	REPLACE ${1}www.tuodominio.it$2
Raising Elephants Is So Utterly Boring
edi2010
Prode Principiante
Messaggi: 2
Iscrizione: venerdì 10 dicembre 2010, 12:13

Re: [Server] Postfix body_checks replace

Messaggio da edi2010 »

Grazie dell'aiuto, in effetti già qualcuno mi aveva suggerito il tuo path,

però ho notato che quando una mail ha al suo interno più di un link da manipolare accade che solo un link viene rigenerato secondo i crtieri indicati.
takeshi ha scritto: Il problema è semmai che l'azione REPLACE rimpiazza l'intera riga con il testo che segue.

Non ho modo di verificare, ma se non ci sono più di una occorrenza di
www.miodominio.it per riga, potresti usare qualcosa del genere:

Codice: Seleziona tutto

/(.*)www.miodominio.it(.*)/	REPLACE ${1}www.tuodominio.it$2
Avatar utente
takeshi
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 789
Iscrizione: venerdì 24 novembre 2006, 18:33

Re: [Server] Postfix body_checks replace

Messaggio da takeshi »

Non saprei come risolverlo; sarebbe stato molto utile avere a
disposizione l'opzione g(lobal) ma nel documento che
hai postato tu di quel flag non ve ne è traccia.

Non sono un esperto di mail server (come di tante altre cose)
ma io proverei a dare uno sguardo a procmail.
Raising Elephants Is So Utterly Boring
Scrivi risposta

Ritorna a “Ubuntu su server”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 1 ospite