Hylafax mail2fax Gateway mit Umlauten

Vorbedingung

Was danach funktionieren sollte

Ein bisschen procmail...

Angenommen, es gibt einen User "fax". Dieser bekommt alle Mails, die gefaxt werden sollen. In die ~fax/.procmailrc muss folgendes rein:
:0
| mimedecode | faxmail -n -d sam@20

Das originale Hylafax textfmt loswerden

Dazu muss man faxmail dazu bringen, dass es selber kein POSTSCRIPT produziert, weil das kann es offenbar nicht besonders gut. Ich hatte das Problem, dass Umlaute einfach als blank ausgedruckt wurden, das Wort "Würmer" wurde auf dem Fax also zu "W rmer".

Standardmaessig druckt faxmail die Daten aus den From, To, Subject usw. Headern aus. Das verhindert man, indem man den Header "X-FAX-Headers: clear" uebergibt. Dazu ~fax/.procmailrc aendern, sodass

:0
| mimedecode | formail -A "X-FAX-Headers: clear" | faxmail -n -d sam@20
drinsteht. Ausserdem soll hylafax einen eigenen Filter fuer den MIME Content-Type text/plain verwenden. Das geht. In /etc/hyla/hyla.conf das Verzeichnis fuer die MIMEConverter Scripts bekanntgeben:
MIMEConverters: /home/fax/bin/converters
Dann das Verzeichnis ~fax/bin/converters/text anlegen. Dort hinein kommt der plain Filter. Dieses Ding wandelt eine eingehende Textmail in html um, sorgt fuer die korrekte Darstellung der Umlaute und Eurozeichen und bricht zu lange Zeilen um. Die Ausgabe wird an html2ps uebergeben, so dass faxmail am Ende einen korrekten POSTSCRIPT output bekommt.

Und wo sind jetzt meine Headers?

Vorhin haben wir dafuer gesorgt, dass sendfax selbst keinen POSTSCRIPT output erzeugt. Dadurch sind natuerlich auch die Header weg, die aber doch ganz nuetzlich waeren. Die kann man aber bequem beim text/plain Filter wieder einbauen. Nachdem dieser in Wirklichkeit die Mail in html umwandelt, kann man das sogar huebsch mit Fettdruck und anderen Spirenzchen tun. Dazu muss der Filter nur wissen, welcher Header welchen Inhalt hat. Leider bekommt er die original Mailheader nie zu sehen, dafuer sorgt sendfax. Das kann man aber umgehen, indem man sie vorher im eigentlichen Mail-Text einbaut - und zwar mit dem appendheaders.pl script. Dieses wird auch ueber procmail gestartet, also nochmal ~fax/.procmailrc editieren:
:0
| mimedecode | formail -A "X-FAX-Headers: clear" | /home/fax/bin/appendheaders.pl | faxmail -n -d sam@20
Der Filter fuer text/plain ist schon so geschrieben, dass er diese Header ausliest und nicht aufs Fax druckt.

Der output von html2ps sieht scheisse aus

Stimmt. Die Raender sind viel zu gross, und die Schrift ist zu klein. Ich weiss nicht ob es eine andere version von html2ps gibt die ich habe. Ich verwende Debian - wie es vernuenftige Leute tun. Mein html2ps ist ein perl script, dem man leider nicht ueber commandline uebergeben kann, wie gross Seitenraender und Schrift sein sollen. Drum muss man das script editieren. Wer davor zu grosse angst hat, kann meine Version haben.

Wie man jetzt noch den wirklichen Empfaenger (statt sam@20) angibt, finde selber raus.
Ich bin ja nicht deine Mama.