Zeichensatzproblem beim Mailversand der shell-Ausgabe per Cron(?)

11/07/2008 - 08:46 von Uwe Scholz | Report spam
Hallo!

Ich habe hier folgendes Shellskript in /etc/cron.daily. Es überwacht,
ob anstehende Aufgaben in meinem Kalender ('remind') vorhanden sind
und sendet mir diese, mit zusàtzlichen Tagesinformationen des
Programms 'calendar' in einer Mail zu. Das Skript sieht so aus:

#####
USER=uwe

remind -e -b1 -m -g /home/$USER/.reminders > /tmp/termine_$USER

TERMINE=$( head -n 3 /tmp/termine_$USER | tail -n 1 )
KEINETERMINE='No reminders.'

if [[ $TERMINE == $KEINETERMINE ]]
then
rm /tmp/termine_$USER
else
echo -e "-- " >> /tmp/termine_$USER
calendar >> /tmp/termine_$USER
cat /tmp/termine_$USER | mail -s 'Heutige Termine' $USER
rm /tmp/termine_$USER
fi

exit0
#####

Wenn also ein Termin ansteht, wird die Ausgabe des remind-Programms in
eine Datei geschrieben, dann wird die Ausgabe des Programms 'calendar'
mit angehàngt und die gesamte Datei per Mail an mich geschickt.

Das merkwürdige ist nun, dass die Ausgabe des Programms calendar, die ich
per Mail erhalte, unvollstàndig ist, wenn in ihr andere als Ascii-Zeichen
vorkommen.

Das sieht dann z.B. so aus:

#####

Jul 11 Grtndung der Rheinbundes, 180
Jul 11 Konr
Jul 12 Konr
Jul 13 Emser Depesche, 1870
Jul 13* Konr
Jul 13 "V
Jul 14 "V
#####

Dies betrifft aber _nur_ die calendar-Ausgabe. Befinden sich in dem
Termin, der weiter oben steht, deutsche Umlaute, so werden diese korrekt
per Mail verschickt.

Starte ich das gleich Skript nun aber manuell in der Konsole, so erhalte
ich folgende Signatur in der E-Mail:

####

Jul 11 Gründung der Rheinbundes, 1806
Jul 11 Всемирный день народонаселения
Jul 12 Славных и всехвальных первоверховных апостолов Петра и Павла
Jul 13 Emser Depesche, 1870
Jul 13* День российской почты
Jul 13 Открытия Джеймса Кука, 1772г
Jul 14 Константинопольский мир, 1700г
####

(Entschuldigung, wenn das jetzt nicht jeder lesen kann, wegen der
Benutzung von utf-8!)

Der Header der nicht funktionierenden Mail unterscheidet sich zu der
anderen nur um folgende drei Zeilen:
Status: RO
Lines: 16

Tja. Warum ist das so? Ich weiß nicht so recht, wo ich nach dem Fehler
suchen soll.

Mein verwendetes System ist ein aktuelles Gentoo, ich habe es mit dem
Gentoo UTF-8 Howto auf utf-8 umgestellt. Bei mir làuft ein Postfix-Server
(nur für lokale Zustellung) mit zusàtzlichem procmail. Das Mail-Kommando
stammt aus dem "mailx"-Paket.

Ciao, Uwe
 

Lesen sie die antworten

#1 Michael Müller
11/07/2008 - 09:11 | Warnen spam
Uwe Scholz schrieb:
Mein verwendetes System ist ein aktuelles Gentoo, ich habe es mit dem
Gentoo UTF-8 Howto auf utf-8 umgestellt


Ich habe jetzt mal das UTF-8 Howto durchgesehen, weil ich irgendwie in
Erinnerung hatte, dass es ein Kommando wie "unicode_start" geben müsste:

Einstellen der Konsole

In ~/.bashrc folgendes hinzufügen
Datei: ~/.bashrc

if [ $TERM = "linux" ]
then
/usr/bin/unicode_start
fi


um die Konsole auf Unicode wàhrend des Bootens zu stellen.

Probiere mal, "/usr/bin/unicode_start" oben in deinem Skript aufzurufen.


Ansonsten wàre mal interessant, wie die Sache in /tmp/termine_$USER
aussieht.

Möglicherweise ist auch folgendes das Problem:
http://de.gentoo-wiki.com/Utf8#.2Fbin.2Fmail

Hoffe irgendwas davon bringt dich weiter :)
Michael

Ähnliche fragen