Hauptmenü

Probleme mit DebianMail

Begonnen von billy-boy, 30 Januar 2024, 21:18:37

Vorheriges Thema - Nächstes Thema

billy-boy

Hallo zusammen.

Seit Jahre informiert mich Fhem über leere Batterien der einzelnen Sensoren.
Per Mail bekomme ich die Informationen zugesendet. Funktioniert alles prächtig.
Jetzt will ich mir die Alexa Einkaufsliste auf mein Handy schicken lassen.
Funktioniert auch alles so weit, wenn allerdings Umlaute im Artikel sind, werden in
der Mail nur Hieroglyphen angezeigt.

Meine Einstellungen in Fhem sind

######## DebianMail Mail auf dem RPi versenden ############

sub DebianMail {
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "Fhem\@xxxxxxxx.com";
my $konto = "xxxxxxxxxxxx\@t-online.de";
my $passwrd = "xxxxxxxxxx";
my $provider = "securesmtp.t-online.de:587";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Anhang: $attach";

$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a $attach -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8 );
$ret =~ s,[\r\n]*,,g;    # remove CR from return-string
Log 1, "sendEmail returned: $ret"; }

im Log steht noch alles vernünftig

Zitat2024.01.30 19:35:45 1: sendEmail RCP: xxxxxxxxx@xxx.de
2024.01.30 19:35:45 1: sendEmail Subject: Alexa Einkaufsliste
2024.01.30 19:35:45 1: sendEmail Text: Einkaufsliste:\n - Spüli
- öl
2024.01.30 19:35:45 1: sendEmail Anhang:
2024.01.30 19:35:47 1: sendEmail returned: Jan 30 19:35:47 raspberrypi sendEmail[23015]: Email was sent successfully!

Hier stehen die Umlaute korrekt lesbar in der erhaltenen Mail allerdings nicht mehr.

Mein Fhem ist aktuell und läuft auf einem RPI3
Für Tips wäre ich sehr dankbar

Vielen Dank
Rainer




DL8EI Ralph

Neugierhalber: zeig doch mal den Mailinhalt
Fernmelde-Opa übernahm FHEM-Installation und kämpft sich so durch.
Installation hat FS20, Homematic und einge exotische Teile.

MDietrich

Moin,
es gibt noch die Option den Zeichensatz festzulegen: o message-charset=CHARSET.
Ich habe bei mir: "-o message-charset=utf-8" im Aufruf ergänzt, damit funktioniert es.

Gruß,
Matthias
FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

billy-boy


@MDietrich

habe ich normalerweise auch gesetzt.
Durch das ständige ausprobieren ist es abhanden gekommen und oben nicht drin.
Aber es ist drin und bringt keine Änderung.

In der Mail steht dann folgendes

ZitatBetreff: Alexa Einkaufsliste

Einkaufsliste:
- Spüli
- öl



betateilchen

Zitat von: billy-boy am 30 Januar 2024, 21:18:37Jetzt will ich mir die Alexa Einkaufsliste auf mein Handy schicken lassen.

Hast Du das Darstellungsproblem in dieser Email auch auf anderen Mail-Clients?

Vielleicht suchst Du das Problem einfach an der falschen Stelle und es ist ein Problem auf der Seite Deines Handys, genauer: des Mail-Clients auf dem Handy.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

billy-boy


Es ist egal was für ein Handy ob Android oder Iphone.
Ich habe bei gmx mit dem Browser nachgeguckt.
Dort kommen schon die Hyroglyphen an.
Selbst wenn ich ein t-online Mailadresse verwende und dann
per Browser nachgucke.Immer kommen nur die Hyroglyphen an.
Fazit der Pi sendet schon dieses Kauderwelsch.

Gruß

Rainer

betateilchen

Zitat von: billy-boy am 31 Januar 2024, 11:25:32Fazit der Pi sendet schon dieses Kauderwelsch.

Das ist kein Kauderwelsch, das ist Dein korrekter Mailinhalt, aber die Zeichencodierung wird beim Empfänger nicht erkannt/verstanden.

-o tls=auto-o message-charset=utf-8
          ^^^

Ich hoffe, Du hast da zwischen auto und -o in Wirklichkeit ein Leerzeichen?

Ansonsten könntest Du versuchen, den Text vor dem Verschicken durch decode() zu schicken, vielleicht kommt die Mail dann lesbar an.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

RalfRog

Hallo
Zitat von: billy-boy am 31 Januar 2024, 08:57:49- Spüli

Das ü sind in UTF-8 zwei Byte HEX: "C3 BC", die dein RPi so verschickt.
Die beiden Zeichen "Ã und ¼" ergeben sich wenn die Darstellung der beiden Byte nach Latin1 erfolgt.

Zitat von: betateilchen am 31 Januar 2024, 12:57:17Ich hoffe, Du hast da zwischen auto und -o in Wirklichkeit ein Leerzeichen?

Das müsste im Quelltext der empfangenen Nachricht zu sehen sein. Da fehlt dann vermutlich <charset="utf-8">
This is a multi-part message in MIME format. To properly display this message you need a MIME-Version 1.0 compliant Email program.

------MIME delimiter for sendEmail-12345678.87654321
Content-Type: text/plain;
        charset="utf-8"
Content-Transfer-Encoding: 7bit

testmüll

------MIME delimiter for sendEmail-12345678.87654321--


Gruß Ralf
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

billy-boy


@Betateilchen

ja da befindet sich ein Leerzeichen.
Ist beim Erstellen irgendwie verrutscht.
(Hab ich nachträglich noch verbessert)

@RalfRog

Ja genau "charset=utf-8" fehlt, das wird im Quelltext nicht angezeigt.
aber mehr wie übergeben mit "-o message-charset=utf-8" kann ich ja nicht.



RalfRog

Zitat von: billy-boy am 31 Januar 2024, 14:05:47Ja genau "charset=utf-8" fehlt, das wird im Quelltext nicht angezeigt.
aber mehr wie übergeben mit "-o message-charset=utf-8" kann ich ja nicht.

Hm, was steht denn stattdessen dort? Nix?
Oder:
Content-Type: text/plain;
        charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Das charset iso kommt wenn ich "-o message-charset=utf-8" weglasse (nicht überaschend). "iso-8859-1" ist in sendEmail als Default hinterlegt.
92     "message-charset"      => 'iso-8859-1',         ## Message character-setMüsste also im Quelltext der Mail zu sehen sein.


Was passiert denn bzw. siehst du wenn du zu Fuß auf der Konsole:
sendEmail -f 'Fhem@xxxxxxxx.com' -t 'xxxxxxxxx@xxx.de' -u 'Test' -m 'Spüli' -s 'securesmtp.t-online.de:587' -xu 'xxxxxxxxxxxx@t-online.de' -xp 'xxxxxxxxxx' -o tls=auto  -o message-charset=utf-8abschickst.



Gruß Ralf
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

betateilchen

Zitat von: RalfRog am 31 Januar 2024, 15:49:45Das charset iso kommt wenn ich "-o message-charset=utf-8" weglasse (nicht überaschend). "iso-8859-1" ist in sendEmail als Default hinterlegt.

Deshalb ja vorhin schonmal der Tipp, $text einfach vor dem Versand zu decodieren.

Zitat von: betateilchen am 31 Januar 2024, 12:57:17Ansonsten könntest Du versuchen, den Text vor dem Verschicken durch decode() zu schicken, vielleicht kommt die Mail dann lesbar an.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

MDietrich

Hallo,
ich glaube, dass das Problem beim Empfänger liegt.
Ich nutze:
qx(sendemail -f '$from' -t '$rcpt' -u '$subject' -m '$text' -a $attach -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=yes -o message-charset=UTF-8);und schicke aus FHEM
{DebianMail("xxxxx.yyyy\@t-online.de","Subject","ÄÜÖäöü")}Ich bekomme in Outlook 2017 in Posteingang: Subject ÄÜÖäöü. Wenn ich die Nachricht öffne sehe ich nur: Subject ������
t-Online im Browser ist okay, gmail auf Android ist auch ok.
Kann es daran liegen, das Outlook Probleme mit 'nut Text' Nachrichten hat?

Gruß,
Matthias
FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

Otto123

#12
Hi,

@Rainer: kann dein System denn überhaupt utf-8? Stichwort: locale ... Was sagt locale -a ?
Bei mir klappt der Unterschied zwischen keine Angabe und "-o message-charset=utf-8" exakt wie es sein soll.
Text im Email: Würz Lächeln bloß
------MIME delimiter for sendEmail-376407.445714907
Content-Type: text/plain;
        charset="utf-8"
Content-Transfer-Encoding: quoted-printable

W=C3=BCrz L=C3=A4cheln blo=C3=9F

------MIME delimiter for sendEmail-376407.445714907--
Text im Email Würz Lächeln bloß
------MIME delimiter for sendEmail-653171.229948388
Content-Type: text/plain;
        charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

W=C3=BCrz L=C3=A4cheln blo=C3=9F

------MIME delimiter for sendEmail-653171.229948388--
Warum steht bei mir Content-Transfer-Encoding: quoted-printable und bei euch Content-Transfer-Encoding: 7bit ?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MDietrich

#13
Ich nochmal,

habe gerade ausprobiert:
{DebianMail("xxxx.yyyy\@t-online.de","Subject","<html>ÄÜÖäöü</html>)}und siehe da, mit den HTML-Tags funktioniert es.

Ich hoffe das hilft weiter
Matthias
FB 6591 Cable / Raspberry 3b+ (Bookworm) / 4xECHO DOT 4/ Homematic Thermostate, Fenster- und Fenster-Sensoren / Philips HUE / CUL-HM /  Zigbee Schalter und Lampen / Shelly 1

betateilchen

Mit den html tags veränderst Du aber vermutlich den mime-type Deiner Nachricht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!