Sto usando mutt per elaborare la mia posta. C'è un mittente che dichiara il tipo di contenuto sbagliato. La posta arriva con
Content-Type: multipart/alternative;
boundary=--…
e ha due parti. Sono dichiarati come:
Content-Type: text/plain; charset=utf-8
e
Content-Type: text/html; charset=utf-8
Tuttavia, entrambe le parti della posta sono le stesse. Quindi la parte in chiaro è piena di tag HTML così come la parte HTML. Ho provato a discuterne con il mittente, ma usano una sorta di software "aziendale" in cui non possono modificare tali impostazioni.
Quindi vorrei cambiare la posta in locale e magari rimuovere il text/plain
-parte o riscrivi text/plain
a text/html
.
Quale ritieni sia il modo migliore e quali strumenti posso utilizzare per ottenere un messaggio di posta leggibile nel mio caso?
Risposta accettata:
In mutt, puoi digitare v , quindi selezionare l'alternativa che si desidera visualizzare. Puoi anche modificare il tipo di contenuto di una parte con Ctrl-E .
Come approccio più generico, potresti usare mutt
's display_filter
impostazione:
set display_filter=/path/to/mutt-filter
Con mutt-filter
essere qualcosa come:
#! /usr/bin/awk -f
BEGIN {
cmd="echo '[automatically converted from html to text]'; w3m -T text/html -dump"
}
{l=tolower($0)}
l ~ /<html|<!doctype html/,l ~ /</html>/ {
print | cmd
next
}
{close(cmd); print}
Che causerebbe (in cosa mutt
verrà visualizzato, non l'e-mail grezza) qualsiasi cosa tra <html>
e </html>
per passare attraverso w3m -T text/html -dump
(o elinks -dump
o il tuo html
preferito a text
convertitore).
Poiché ciò potrebbe convertire cose a cui non è destinato (come quando <html>
appare in un vero text/plain
parte), potresti voler adattarlo in modo che funzioni solo con le e-mail di quei ragazzi che inviano e-mail fasulle, o con un approccio ancora più elaborato come contare il numero di tag e convertire quando si raggiunge una soglia...