Hallo Sandy, danke für den Input. Dein PERL-Skript wäre sicherlich auch ein Ansatz, aber ich habe den Fehler noch nicht verstanden. Das mit der Umgebung hatte ich auch schon ansatzweise verfolgt. Das Problem nochmal: Funktioniert nicht (wie mit cron): cat mailtext | sudo mail -s "TEST" name@domain.de Funktioniert: cat mailtext | mail -s "TEST" name@domain.de Jetzt dachte ich, es gibt Unterschiede, das sehe ich ja z.B. mit: sudo env Also mache ich: env >umgebung Und schreibe dann ein Skript nailtest: . umgebung cat mailtext | mail -s "TEST" name@domain.de und rufe es auf mit: sudo ./nailtest und erhalte wieder die alte Fehlermeldung! Ich habe weiter probiert: cat mailtext | recode ..ascii | sudo mail -s "TEST" name@domain.de funktioniert auf einmal, allerdings sind dann die Umlaute eben zerschossen. Auch Einträge in .mailrc und/oder .nailrc a la: set sendcharsets=iso-8859-1,iso-8859-15,utf-8 set tty-charset=iso-8859-15 führen zu nichts. Ich bin ziemlich ratlos, kann aber nicht einsehen, dass es nicht funktionieren soll. Wo liegt mein Fehler? Viele Grüße Rainer Am Freitag, den 08.06.2007, 19:00 +0200 schrieb Sandy Drobic:
Rainer Wolff wrote:
Liebe Liste,
ein Cronjob möchte eine Mail versenden, was zu folgendem Ergebnis führt (=Problem):
-------------schnipp---------------------
running daily cronjob scripts
SCRIPT: output (stdout && stderr) follows
Invalid or incomplete multibyte or wide character . . . message not sent. "/root/dead.letter" 34/1161 SCRIPT: 03_backup ------- END OF OUTPUT
-------------schnapp----------------------
Folgendes habe ich bisher herausgefunden:
* Es geht um deutsche Umlaute, die im Text iso-8859-1-codiert sind * Ich verwende SUSE 10.0 mit "mailx version nail 11.25 7/29/05" (Standard-Installation) * Normal als root eingeloggt, kann ich die Mail versenden, z.B. mail -s "TEST123" max.muster@domain.de </root/dead.letter funktioniert fehlerfrei, die Mail kommt an * Mit "sudo" kann ich den Fehler reproduzieren, also sudo mail -s "TEST123" max.muster@domain.de </root/dead.letter geht _nicht_. * Ich dachte an Login-Shell oder nicht, aber "su -l" oder "su" machen keinen Unterschied, beides _geht_. * In /root/.mailrc steht: set NAIL_EXTRA_RC=~/.nailrc * In /root/.nailrc steht (Persönliche Daten geändert) account gmx { set folder=imaps://999999@imap.gmx.net set password-999999@imap.gmx.net=geheim set record=+Gesendet set smtp=mail.gmx.net set smtp-auth=cram-md5 set smtp-auth-user=999999 set smtp-auth-password=geheim } account gmx -> Dies scheint benutzt zu werden, denn die Fehlermeldung bekomme ich ja witzigerweise über GMX gemailt * In /etc/mail.rc steht (nix von mir) set asksub append dot save crt=20 ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via * Im Internet finde ich zwar Einiges, aber wenig Erhellendes
Hat jemand eine Idee, wie ich im Cronjob Umlaute in Mails verschicken kann? Wieso geht es auf der Konsole aber nicht mit Cron?
Vermutlich weil die Umgebung nicht die gleiche ist. Du kannst das am einfachsten lösen, indem du die Mail kodierst, bevor du sie auf die Reise schickst. Ich muss dies auch machen für die Logberichte des Servers, weil sonst genau die Strings, welche eine Spam abblocken, den Logbericht ebenfalls abschießen. (^-^)
#!/usr/bin/perl use MIME::Lite;
### Create a new message: $msg = MIME::Lite->new( From => 'logreport+server1@example.com', To => 'postmaster@example.com', # Cc => 'some@other.com, some@more.com', Subject => 'pflogsumm', Date => `date`, Type => 'text/plain', Encoding => 'base64', Path => '/tmp/pflogg', );
$msg->send;
-- Sandy
Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org