View previous topic :: View next topic |
Author |
Message |
zantej n00b
Joined: 22 Aug 2007 Posts: 10
|
Posted: Sun Feb 17, 2008 7:51 pm Post subject: modifica subject mail kmail e imap |
|
|
Ciao a tutti, ho configurato KMail per un account di posta con la modalità "Cached IMAP".
Ho esigenza di modificare l'oggetto delle mail in arrivo per inserire annotazioni etc.
Per farlo ho creato un filtro in questo modo:
Code: | cat > /tmp/kmail_filter; konsole -e sh -c edit.sh; cat /tmp/kmail_filter; |
dove edit.sh contiene:
Code: |
#!/bin/sh
echo -n "Inserisci nuovo oggetto: "
read OGGETTO
sed -e "/^Subject/c\Subject: $OGGETTO" -i /tmp/kmail_filter |
questo metodo ha un problema poco importante, ossia il fatto che vorrei utilizzare un `mktemp` per creare il file temporaneo, ma non so come fare.
il consiglio che volevo chiedere riguarda il come fare per far capire al server che la mail è stata modificata, infatti ho bisogno che le modifiche arrivino anche su un altro computer.
Se mi limito a fare il procedimento che ho descritto poco fa, l'altro pc non riceve le modifiche.
Spostando il messaggio in un'altra cartella dovrei ottenere l'aggiornamento, c'è una soluzione migliore?
Grazie! |
|
Back to top |
|
|
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Sun Feb 17, 2008 8:23 pm Post subject: |
|
|
Per imap non so aiutarti ma per mktemp si
ti crea il file temporaneo e nella variabile tmp ti ci mette il nome _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
zantej n00b
Joined: 22 Aug 2007 Posts: 10
|
Posted: Sun Feb 17, 2008 8:27 pm Post subject: |
|
|
Kernel78 wrote: |
ti crea il file temporaneo e nella variabile tmp ti ci mette il nome |
il fatto è che viene mandato tramite pipe il contenuto del messaggio al primo comando che metti nel filtro.
se ci metto un mktemp, mi perdo per strada il contenuto della e-mail.
quello che devo fare credo si possa semplificare così:
a sinistra ho "cat email.dat | " e a destra ci va il mio filtro.
se metto "tmp=$(mktemp)" ottengo:
cat email.dat | tmp=$(mktemp) che mi perde il contenuto.
nel filtro attuale è stato messo:
cat email.dat | cat > temp_file
così da non perdere il messaggio e poterlo modificare, prima di restituirlo in output |
|
Back to top |
|
|
crisandbea Veteran
Joined: 03 Jul 2005 Posts: 1778 Location: BOSCO (SA) ... ma domiciliato a Bologna....
|
Posted: Sun Feb 17, 2008 8:34 pm Post subject: |
|
|
zantej wrote: | Kernel78 wrote: |
ti crea il file temporaneo e nella variabile tmp ti ci mette il nome |
il fatto è che viene mandato tramite pipe il contenuto del messaggio al primo comando che metti nel filtro.
se ci metto un mktemp, mi perdo per strada il contenuto della e-mail.
quello che devo fare credo si possa semplificare così:
a sinistra ho "cat email.dat | " e a destra ci va il mio filtro.
se metto "tmp=$(mktemp)" ottengo:
cat email.dat | tmp=$(mktemp) che mi perde il contenuto.
nel filtro attuale è stato messo:
cat email.dat | cat > temp_file
così da non perdere il messaggio e poterlo modificare, prima di restituirlo in output |
usare sed per fare le tue modifiche al file ci hai pensato ??
ciauz _________________ se fossi un disegnatore ti disegnerei, se fossi uno scrittore ti scriverei, se fossi un inventore ti inventerei...ma sono solo un trombettista!!! |
|
Back to top |
|
|
zantej n00b
Joined: 22 Aug 2007 Posts: 10
|
Posted: Sun Feb 17, 2008 8:43 pm Post subject: |
|
|
come si vede nel codice di "edit.sh", viene utilizzato sed per le modifiche al file. |
|
Back to top |
|
|
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Sun Feb 17, 2008 9:02 pm Post subject: |
|
|
zantej wrote: | come si vede nel codice di "edit.sh", viene utilizzato sed per le modifiche al file. |
scusa ma non puoi modificare lo script o passare la mail direttamente a sed senza scriverla in un file ? _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
zantej n00b
Joined: 22 Aug 2007 Posts: 10
|
Posted: Sun Feb 17, 2008 9:06 pm Post subject: |
|
|
non ne sono capace: per quanto ho capito, quando tu aggiungi un filtro a kmail per modificare il messaggio e scegli una e-mail a cui applicarlo, il programma fa qualcosa di pensabile come:
"cat EmailSelezionata | " e a destra di questo ci piazza il filtro che ho impostato.
non ho idea di come possa mandarlo in pipe a sed dopo che ho chiesto all'utente come vuole modificare l'oggetto della mail selezionata, invece se lo mando a cat posso salvarlo, "interrogare" l'utente e modificare la mail. |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Sun Feb 17, 2008 9:14 pm Post subject: |
|
|
Code: | sed -e "/^Subject/c\Subject: $OGGETTO" - |
nel caso specifico però tu chiedi prima un input quindi:
Code: | #!/bin/bash
TEMP=$$filetempotaneo
cat - > /tmp/$TEMP
read OGGETTO
sed -e "/^Subject/c\Subject: $OGGETTO" -i /tmp/$TEMP && rm /tmp/$TEMP | dovrebbe funzionare. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
zantej n00b
Joined: 22 Aug 2007 Posts: 10
|
Posted: Sun Feb 17, 2008 9:33 pm Post subject: |
|
|
così al volo non va, perché si apre la shell di konsole ma non stampa niente, ma mi riservo di fare altre prove.
Code: | #!/bin/bash
TEMP=$(mktemp)
cat - > $TEMP
echo -n "Inserisci nuovo oggetto: "
read OGGETTO
sed -e "/^Subject/c\Subject: $OGGETTO" -i $TEMP
|
|
|
Back to top |
|
|
|