View previous topic :: View next topic |
Author |
Message |
Dun Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/9117618404081c6c67dcc8.gif)
Joined: 17 Apr 2004 Posts: 172 Location: Amsterdam (NL) / Venice (IT)
|
Posted: Wed May 31, 2006 5:41 pm Post subject: [Risolto] Fetching e modifica degli header prima del deliver |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
Dun Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/9117618404081c6c67dcc8.gif)
Joined: 17 Apr 2004 Posts: 172 Location: Amsterdam (NL) / Venice (IT)
|
Posted: Mon Jun 12, 2006 12:45 am Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
|