Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Risolto] Fetching e modifica degli header prima del deliver
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
Dun
Apprentice
Apprentice


Joined: 17 Apr 2004
Posts: 172
Location: Amsterdam (NL) / Venice (IT)

PostPosted: Wed May 31, 2006 5:41 pm    Post subject: [Risolto] Fetching e modifica degli header prima del deliver Reply with quote

Salve a tutti,

ultimamente stavo cercando un sistema per far confluire la posta di molteplici account (3 circa) direttamente su Gmail.

Attraverso fetchmail sono quindi riuscito a farmi recapitare la posta correttamente:

Code:

poll pop.fastwebnet.it proto auto
user 'username@fastwebnet.it'
password 'password'
smtpname username@gmail.com
options keep


Con l'obiettivo di creare delle label e dei filtri sulla casella Gmail per poter organizzare la posta cosi' ricevuta mi son trovato nell'impossibilità di creare delle regole in base al destinatario dato che cmq molte email che mi arrivano hanno come destinatario l'indirizzo di una mailing-list.

L'unica idea che mi è venuta in mente è quella di istruire fetchmail o chi per lui di modificare il subject delle email in base all account.

Esempio:
Server polled: pop.fastwebnet.it
Subject: Ciao come Stai
Subject modificato: [FASTMAIL] Ciamo come Stai


Avete qualche idea da suggerirmi?

Avevo provato a dare un'occhiata ad applicazioni quali procmail ma a quanto ho capito quest'ultimo si occupa principalmente di local delivery :(

Ciao!


Last edited by Dun on Mon Jun 12, 2006 12:46 am; edited 1 time in total
Back to top
View user's profile Send private message
Dun
Apprentice
Apprentice


Joined: 17 Apr 2004
Posts: 172
Location: Amsterdam (NL) / Venice (IT)

PostPosted: Mon Jun 12, 2006 12:45 am    Post subject: Reply with quote

Ho risolto nel seguente modo agendo su postfix (l MTA che uso):

Riporto per completezza il contenuto di fetchmailrc
Code:

poll pop.fastwebnet.it proto auto
user 'username@fastwebnet.it'
password 'password'
smtpname username@gmail.com
options keep


master.cf
Code:

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
#smtp      inet  n       -       n       -       -       smtpd
#START ADDING
smtp      inet  n       -       n       -       -       smtpd
    -o content_filter=filter:dummy
filter    unix  -       n       n       -       10      pipe
    flags=Rq user=vmail argv=/etc/postfix/spool/rewrite_subj.sh -f ${sender} -- ${recipient}
#
#END ADDING


In questo modo Postfix utilizza un filtro esterno per decidere se inoltrare il messaggio. Ovviamente io lo inoltrero' comunque cambiandone il subject.

Questo è invece lo script bash per fare il filtering liberamente tratto da alcuni esempi della doc di postfix. L'unico appunto è che i pattern sono in qualche modo sperimentali :)

rewrite_subj.sh
Code:

#!/bin/sh

INSPECT_DIR=/etc/postfix/spool/
SENDMAIL="/usr/sbin/sendmail -G -i"

EX_TEMPFAIL=75
EX_UNAVAILABLE=69

declare -a PATTERN
declare -a PREFIX
PREFIX[0]="[FWmail]"
PATTERN[0]="Received: from pop.fastwebnet.it"
PREFIX[1]="[DSImail]"
PATTERN[1]="Received: from altro smtp"

trap "rm -f in.$$" 0 1 2 3 15

cd $INSPECT_DIR || {
        echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }

cat >in.$$ || {
        echo Cannot save mail to file; exit $EX_TEMPFAIL; }

if ((${#PREFIX[*]} == ${#PATTERN[*]})); then
        i=0
        while ((i < ${#PREFIX[*]})); do
                if grep "${PATTERN[$i]}" in.$$ >& /dev/null; then
                        sed "s/Subject: /Subject: ${PREFIX[$i]} /" in.$$ > in.$$_2
                        mv in.$$_2 in.$$
                        break
                fi
                let i=i+1
        done
fi

$SENDMAIL "$@" <in.$$

exit $?


N.B.: L'utilizzo del file temporaneo in.$$_2 l'ho trovato obbligatorio dato che se la redirezione dell'output viene effettuata su un file esistente ne cancella solamente il contenuto senza scriverci niente (al contrario di >> che pero' effettua l'appending).
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum