Ho ricevuto ultimamente delle mail con oggetto del messaggio errato per colpa del client utilizzato da chi ha inviato il messaggio.
In particolare le mail sono state inviate dalla webmail di libero credo.
Ad ogni modo ecco la situazione, il messaggio aveva un titolo del tipo:
Codice: Seleziona tutto
Subject: Re: Re: Re: Titolo del messaggio
Codice: Seleziona tutto
Subject: Re: Titolo del messaggio
Codice: Seleziona tutto
# corregge prefissi di risposta errati
#
:0 fhw
* ^Subject:.*R:
| sed -e 's/R:/Re:/g'
:0 fhw
* ^Subject: Re:
| sed -e 's/Re: .*Re: /Re: /'
La seconda regola invece l'ho introdotta a seguito delle recenti email mal titolate. E dovrebbe funzionare, anche se non ho testato la cosa per bene, solo con un banale:
Codice: Seleziona tutto
$ echo 'Subject: Re: Re: Re: oggetto'|sed 's/Re: .*Re: /Re: /'
Subject: Re: oggetto
Al di la di questo però, adesso nella mia mailbox mi ritrovo quei messaggi con quei brutti titoli che mandano la corretta visualizzazione del threading a donnine.
La mia configurazione email è la seguente:
- scarico la posta con fetchmail via server POP (principalmente da account Gmail).
- i messaggi vengono passati a procmail che appunto dopo un'eventuale rielaborazione sono smistati in differenti caselle in base al destinatario (ho diversi indirizzi email) e alcuni anche in base al mittente (mailing lists e roba del genere).
- le caselle di posta locali sono configurate in formato "mbox" quindi alla fine sono dei banali file di testo contenenti tutti i messaggi relativi alla particolare casella in un unico file.
- Infine leggo e scrivo le mail con Mutt
Cosa vorrei fare:
Inizialmente avevo pensato di applicare il nuovo filtro configurato in procmail per correggere le mail dal titolo diffettoso.
Però procmail si attiva di suo solo allo scaricamento della posta via fetchmail....
Prima domanda allora.
1) Come potrei applicare il filtro procmail alle mailboxes locali al volo in modo da modificare i messaggi già scaricati e correggerne l'oggetto?
Siccome non sapevo come rispondere alla domanda sopra ho tentato un "workaround".
Ho cancellato il messaggio incriminato così mi sono detto: dopo vado su gmail lo segno come da leggere e lo riscarico con fetchmail facendolo passare anche nel nuovo filtro di procmail.
Evidentemente non funziona così perchè fetchmail "si ricorda" di aver già scaricato quel messaggio e non lo riscarica.
Allora provo a chiedervi la seconda domanda:
2) Come forzare fetchmail a riscaricare un particolare messaggio già scaricato in precedenza?
In altre parole come fa fetchmail a ricordarsi delle vecchie mail già scaricate?
Mi pare si basi su un Message-ID dell'ultimo messaggio scaricato, ma non ricordo bene dove pescare questo message id, non ricordo ne su quale header del messaggio si basa nè in quale file locale di fetchmail venga salvato.
Il funzionamento, ma posso sbagliare (come dico non mi ricordo più bene) dovrebbe essere: fetchmail scarica le mail e salva il messageid dell'ultimo messaggio (quello più recente). Al successivo scaricamento delle mail controlla solo se vi sono nuovi messaggi più recenti di quello col message id che aveva salvato al precedente collegamento al server POP...
Quindi se io sapessi dove fetchmail salva il messageid dell'ultimo messaggio scaricato e se sapessi quale header dei messaggi viene considerato per estrarre quel message id potrei forzare fetchmail a riscaricare solo gli ultimi N mesaggi...
Se conoscete il funzionamento di fetchmail probabilmente mi saprete aiutare. Ho chiesto qui perchè in rete non trovo esattamente quello che sto cercando.
Grazie in anticipo a tutti!