Hylafax mail2fax Gateway mit Umlauten
Vorbedingung
- Du hast ein funktionierendes hylafax, das schon faxe verschicken kann, die
bis auf die Umlaute - genau so aussehen wie sie sollten.
- html2ps, mimedecode und formail sind installiert
- Der Mailserver, auf dem faxmail gestartet wird, verwendet procmail
- Du hast eine Kaffeemaschine.
Was danach funktionieren sollte
- Faxe ohne Umlaute
- Faxe mit Umlauten im mail-body
- Faxe mit Umlauten im Subject
- Euro-Zeichen sowohl in Subject als auch im body
- Die Kaffeemaschine
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.