Domanda

Cercando di capire come avere una regola .procmailrc che lancia tutta la posta che è in risposta alla posta precedente. Usando MailDir e vorrebbe che la regola copra i messaggi in Cur/ o Nuovo/ ...

Dovrei avere il procmailrc analizzare tutti i file? O dovrei avere una regola che estrae le intestazioni ID del messaggio, scaricano quelle in un file e analizzalo?

Non posso semplicemente verificare e lanciare nulla con l'intestazione in-replica, come se fosse una risposta a qualcosa che questo indirizzo non ha ancora visto, deve essere accettato.

È stato utile?

Soluzione

È necessario raccogliere una cache di ID messaggi: s dai messaggi in arrivo:

:0c:
| formail -zxMessage-Id: >>msgid.txt

Quindi controlla il reply-to: contro questa cache (probabilmente prima nel tuo .procmailrc Quindi puoi filtrare lo spam prima di aggiungere un ID messaggio alla cache);

:0
* ? formail -zxIn-Reply-To: | fgrep -f msgid.txt -
./whitelisted

Vedi anche gli esempi di formail -D per confronto. Forse potresti massaggiare le cose in una forma in cui potresti effettivamente usare formail -D come back-end (Sostituisci il messaggio ID: con da: prima di aggiungere alla cache; dividere in-Refly-to: ed eseguire una sostituzione simile su ciascun ID messaggio). formail può mantenere una cache LRU di dimensioni costanti, mentre il fgrep Il file continuerà a crescere indefinitamente (anche se in questo caso, forse è esattamente quello che vuoi).

Quando inizialmente lo imposti, probabilmente vuoi raccogliere una cache dai messaggi in cui hai cur e new Già, ma dopo ciò, non dovresti fare nuovamente riferimento a quei messaggi dalla tua ricetta. (Se la tua casella di posta è qualcosa di simile alla mia, il Grepping in tempo reale dell'intera posta sarebbe abbastanza impossibile.)

Se vuoi una grande cache, sostituire un file a testo semplice con SQLite o qualcosa potrebbe probabilmente valere la pena esaminare. In realtà, quando un database adeguato merita davvero lo sforzo, potresti voler un vero database piuttosto che SQLite, ma ho solo vaghi idee sulla scalabilità dei diversi motori del database per questo genere di cose e nessuna esperienza pratica.

Nota che-a meno che tu non abbia una configurazione insolita-ID messaggi in uscita: S non verrà aggiunto alla cache; Perché ciò sia effettivamente utile, forse dovresti organizzare che ciò accada in qualche modo e/o stabilire un modello che corrisponda al tuo ID messaggio in uscita: S (idealmente senza falsi positivi e certamente nessun falso negativo. Se hai cambiato MUAS In passato, dovresti forse cercare modelli per i tuoi vecchi messaggi separatamente, se vuoi una copertura completa).

ATTENZIONE: non testato e probabilmente sono abbastanza arrugginito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top