Ke zpracování pošty používám mutt. Existuje jeden odesílatel, který deklaruje nesprávný typ obsahu. Pošta dorazí s
Content-Type: multipart/alternative;
boundary=--…
a má dvě části. Jsou deklarovány jako:
Content-Type: text/plain; charset=utf-8
a
Content-Type: text/html; charset=utf-8
Obě části pošty jsou však stejné. Takže plaintextová část je plná HTML tagů stejně jako HTML část. Zkoušel jsem to probrat s odesílatelem, ale oni používají nějaký „podnikový“ software, kde tato nastavení nemohou změnit.
Takže bych chtěl změnit poštu lokálně a možná odstranit text/plain
-část nebo přepsat text/plain
na text/html
.
Jaký je podle vás nejlepší způsob a jaké nástroje mohu v mém případě použít k získání čitelné pošty?
Přijatá odpověď:
V mutt můžete zadat v a poté vyberte alternativu, kterou chcete zobrazit. Můžete také změnit typ obsahu součásti pomocí Ctrl-E .
Jako obecnější přístup můžete použít mutt
display_filter
nastavení:
set display_filter=/path/to/mutt-filter
S mutt-filter
být něco jako:
#! /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}
Což by způsobilo (v jakém mutt
se zobrazí, nikoli nezpracovaný e-mail) něco mezi <html>
a </html>
projděte w3m -T text/html -dump
(nebo elinks -dump
nebo vámi preferovaný html
na text
převodník).
To by mohlo převést věci, ke kterým to není určeno (například když <html>
se objevuje ve skutečném text/plain
část), možná ji budete chtít upravit tak, aby fungovala pouze na e-mailech od těch lidí, kteří posílají falešné e-maily, nebo na nějaký ještě chytřejší přístup, jako je počítání počtu značek a konverze při dosažení prahové hodnoty…