Tip: Word documenten naar tekst in e-mail

Een grote ergernis is e-mail waarbij de feitelijke boodschap in een MS Word document (.doc) verpakt zit, terwijl dat vaak niet nodig is. Gelukkig is Linux flexibel genoeg om dat op simpele wijze op te lossen.

Nodig:

antiword. Dit is een command-line programmaatje dat bij een aantal distributies standaard wordt meegeleverd of beschikbaar is via de package manager.
procmail. Een geavanceerd mailfilter dat alle distributies hebben.
munpack. Command line programma dat bijlages kan uitpakken/decoderen. In distributies in het pakket mpack.
stripmime.pl. Een perl script dat alle bijlages en HTML uit een e-mail sloopt.
doc-convert. een klein door mij gemaakt shell script dat bovenstaande programma’s “coordineert”.

Alles is ook te downloaden in 1 .tgz pakket.

De uitvoering:

Installeer, indien nog niet aanwezig, antiword en procmail. Kopieer doc-convert en stripmime.pl in ~/bin/ (in /usr/local/bin kan ook). Ik ga er hier vanuit dat de scripts in ~/bin staan.

In je .procmailrc voeg je het volgende toe:

:0HB
* ^(Content-.*name=.*.doc|.*application/msword|.*filename=.*.doc")
{
        :0c
        $MAIL/MetBijlage

        :0fw:docconvert.lock
        |$HOME/bin/doc-convert

        :0 fhw
        * ^^rom[ ]
        | sed -e '1s/^/F/'
}

Dit kijkt of er een header is die op de aanwezigheid van een MS Word doc duidt. Er wordt een reservekopie gemaakt in (bij mij) /home/michel/mail/MetBijlage zodat ik eventueel via webmail of mutt het oorspronkelijke bericht met document nog kan terughalen. Vervolgens wordt de mail door het shellscript “doc-convert” gejaagd. De laatste staat er voor de zekerheid (soms valt er een F weg als het fout gaat), en is niet direct nodig.

Het script doc-convert doet in essentie het volgende:

  1. een tijdelijke directory aanmaken
  2. e-mail daarin opslaan
  3. bijlages uitpakken en opslaan
  4. e-mail strippen van bijlages en die naar stdout
  5. met antiword .docs omzetten naar tekst naar bestand
  6. tekstbestand naar stdout
  7. tijdelijke directory wissen

En voila, een e-mail waarin de Word documenten zijn vervangen door tekst.

Bugs / ToDo

Er zijn wat kleine onvolkomendheden. Niet-.doc bijlages verdwijnen, omdat die worden gestript en niet teruggezet. beveiliging is er niet echt, het is meer bedoeld voor op je eigen PC. Een tactische chmod hier en daar kan het al veiliger maken.
Het kan ook worden uitgebreid om bijvoorbeeld met pdf2text ook .pdf’s om te zetten.

Voor dit alles geldt: het werkt voor mij. Aanmerkingen zijn welkom. Mijn shell script mag naar hartelust aangepast worden, voor de rest geldt de licentie van het programma of script.

Dit systeem wordt o.a. gebruikt om de persberichten voor de lokale omroep te filteren zodat de grootte beperkt blijft en werkt daar behoorlijk probleemloos, en scheelt veel leestijd en vooral (mega)bytes.

Veel plezier ermee!

Over Michel

Michel Klijmij is gemeenteraadslid voor GroenLinks Gouda, (co-)woordvoerder milieu, veiligheid, bouwen & wonen, ruimtelijke ordening, voorzitter A-onderwerp Armoedebeleid. Michel Klijmij woont al zijn hele leven in Gouda en houdt van hobby's. Dat zijn klooien met computers, radiomaken en politiek. Op dit weblog publiceert hij alles wat hij vindt dat de wereld moet horen.
Dit bericht is geplaatst in Computers met de tags , , . Bookmark de permalink.