(gelöst) E-Mail mit Debian-Mail geht nicht mehr

Begonnen von Funsailor, 03 Oktober 2023, 17:32:27

Vorheriges Thema - Nächstes Thema

Funsailor

Hallo zusammen,
ich habe seit dem 29.07.23 (Tag der ersten Fehlermeldung) Probleme mit dem versenden von E-Mails. Das lief seit 2017 ohne Probleme.
Am 23.07.23 hat das noch funktioniert, am 27.07.23 hatte ich bei FHEM ein Update durchgeführt (Updates führe ich so etwa 1 mal im Monat durch).

Ich bekomme immer diese Fehlermeldungen, egal ob das senden von einem Ereignis ausgelöst wird, ob ich "{ DebianMail('xxxxxxyy@gmail.com','WohnzimmerAlarm','Da ist jemand im Wohnzimmer');; }" in die Kommandozeile  von FHEM oder den Direktaufruf "sendEmail" in der Konsole eingebe:
2023.10.03 16:43:56.168 1: sendEmail Text: Da ist jemand im Wohnzimmer
2023.10.03 16:43:56.168 1: sendEmail Anhang:
Use of uninitialized value $2 in concatenation (.) or string at /usr/share/perl5/IO/Socket/SSL.pm line 792.
2023.10.03 16:43:56.387 1: sendEmail returned: Oct 03 16:43:56 minipc sendEmail[1231]: ERROR => TLS setup failed: hostname verification failed
Wenn ich das E-Mail Konto mit den selben Daten (Konto,Port und Passwort) wie in der 99_myUtils.pm in Thunderbird eintrage, kann ich damit Mails versenden.
Allerdings musste ich die Verbindungssicherheit des SMTP Server von SSL/TLS auf STARTTLS ändern damit es ]mit dem Port 587 funktioniert.

Sind zwar wenig Infos, aber kann mir da jemand ein Tipp geben? Ich suche schon ziemlich lange nach einer Lösung, bisher habe ich keine Hinweise gefunden.

Edit: Die Mailadresse läuft über 1&1 und mit anderen E-Mail Adressen geht es auch nicht

Edit2: Wenn ich ein reinstall versuche:
sudo apt-get reinstall sendemail libio-socket-ssl-perl libnet-ssleay-perl perl
bekomme ich folgende Meldung:
fhem (6.0.) wird eingerichtet ...
cp: der Aufruf von stat für '/opt/fhem/contrib/init-scripts/fhem.service' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
dpkg: Fehler beim Bearbeiten des Paketes fhem (--configure):
 »installiertes post-installation-Skript des Paketes fhem«-Unterprozess gab den Fehlerwert 1 zurück
Trigger für man-db (2.11.2-2) werden verarbeitet ...
Fehler traten auf beim Bearbeiten von:
 fhem
E: Sub-process /usr/bin/dpkg returned an error code (1)


Bookworm arbeitet mit systemctl und die fhem.service liegt unter /etc/systemd/system/ und nicht unter /opt/fhem/contrib/init-scripts/

Oder liege ich etwa damit falsch? 
"systemctl stop fhem" und "systemctl start fhem" arbeitet richtig!
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.50 -

RalfRog

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

Funsailor

#2
Hallo Ralf,
vielen Dank für die Info, sieht ja erfolgversprechend aus.
Allerdings ist die sendemail_1.56-5.2_all.deb ja unter Buster (V10) gelistet, ich habe aber schon den "Bücherwurm" drauf.

Funzt das dann auch noch?
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.50 -

Funsailor

#3
Zitat von: Funsailor am 03 Oktober 2023, 18:58:41Hallo Ralf,
vielen Dank für die Info, sieht ja erfolgversprechend aus.
Allerdings ist die sendemail_1.56-5.2_all.deb ja unter Buster (V10) gelistet, ich habe aber schon den "Bücherwurm" drauf.

Funzt das dann auch noch?

Habe das jetzt mit der sendemail_1.56-5_all.deb probiert, selbes Problem.

Allerdings bekomme ich schon beim aufräumen mit "sudo apt autoremove" die Meldung
cp: der Aufruf von stat für '/opt/fhem/contrib/init-scripts/fhem.service' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
dpkg: Fehler beim Bearbeiten des Paketes fhem (--configure):
 »installiertes post-installation-Skript des Paketes fhem«-Unterprozess gab den Fehlerwert 1 zurück
Fehler traten auf beim Bearbeiten von:
 fhem
E: Sub-process /usr/bin/dpkg returned an error code (1)
Da liegt doch noch etwas anderes im argen.....


Edit1:
So weit sieht das ja gut aus:

root@MiniPC:~# systemctl status fhem.service
● fhem.service - FHEM Home Automation
     Loaded: loaded (/etc/systemd/system/fhem.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-10-03 19:14:09 CEST; 21min ago
    Process: 4674 ExecStart=/usr/bin/perl fhem.pl fhem.cfg (code=exited, status=0/SUCCESS)
   Main PID: 4676 (perl)
      Tasks: 3 (limit: 9224)
     Memory: 266.9M
        CPU: 31.024s
     CGroup: /system.slice/fhem.service
             ├─4676 /usr/bin/perl fhem.pl fhem.cfg
             ├─4677 /usr/bin/perl fhem.pl fhem.cfg
             └─4701 /usr/bin/perl fhem.pl fhem.cfg

Okt 03 19:14:08 MiniPC systemd[1]: Starting FHEM Home Automation...
Okt 03 19:14:09 MiniPC systemd[1]: Started FHEM Home Automation.

Warum wird dann die fhem.service immer unter dem fhem Verzeichniss gesucht?
/opt/fhem/contrib/init-scripts/fhem.service
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.50 -

Torxgewinde

Zu deinen Bookworm-Problemen kann ich nicht genau sagen was da nicht klappt. Allerdings: Ich nutze FHEM in einer Bookworm-Chroot ohne systemd und da läuft FHEM sehr gut. Allerdings starte ich FHEM ohne systemd. Doku dazu: https://forum.fhem.de/index.php?topic=134680.0

Zum Versenden von E-Mails nutze ich mittlerweile gerne curl. Doku dazu: https://everything.curl.dev/usingcurl/smtp

Beispiel zum Senden einer E-Mail mit curl aus einem SHELL-Skript heraus:
#!/bin/sh

#E-Mail Details
EMAILTO="torxgewinde@example.domain"
EMAILFROM="fhem@mein-anbieter.de"
EMAILNAME="FHEM"
EMAILPASS="geheim123"
EMAILSERVER="mail.mein-anbieter.de"

#Meine Textnachricht
MESSAGE="Eine wichtige Nachricht aus FHEM. Es ist jetzt: $(date)"

echo "$(date): sending email now..."

#der eigentliche E-Mail Versand erfolgt hier
curl \
--no-progress-meter \
--ssl-reqd smtps://$EMAILSERVER:465 \
--login-options AUTH=PLAIN \
--user "$EMAILFROM:$EMAILPASS" \
--mail-from "$EMAILFROM" \
--mail-rcpt "$EMAILTO" \
--mail-rcpt-allowfails \
-H "Subject: Wichtige Mitteilung aus FHEM" \
-H "From: $EMAILNAME <$EMAILFROM>" \
-F '=(;type=multipart/alternative' \
-F "=$MESSAGE" \
-F "= <body>$MESSAGE</body>;type=text/html" \
-F '=)' || exit 1

echo "$(date): done"

exit 0

Wenn es Probleme gibt, kann man curl sehr gesprächig machen:
#!/bin/sh

#E-Mail Details
EMAILTO="torxgewinde@example.domain"
EMAILFROM="fhem@mein-anbieter.de"
EMAILNAME="FHEM"
EMAILPASS="geheim123"
EMAILSERVER="mail.mein-anbieter.de"

#Meine Textnachricht
MESSAGE="Eine wichtige Nachricht aus FHEM. Es ist jetzt: $(date)"

echo "$(date): sending email now..."

#der eigentliche E-Mail Versand erfolgt hier
curl \
--verbose \
--no-progress-meter \
--ssl-reqd smtps://$EMAILSERVER:465 \
--login-options AUTH=PLAIN \
--user "$EMAILFROM:$EMAILPASS" \
--mail-from "$EMAILFROM" \
--mail-rcpt "$EMAILTO" \
--mail-rcpt-allowfails \
-H "Subject: Wichtige Mitteilung aus FHEM" \
-H "From: $EMAILNAME <$EMAILFROM>" \
-F '=(;type=multipart/alternative' \
-F "=$MESSAGE" \
-F "= <body>$MESSAGE</body>;type=text/html" \
-F '=)' || exit 1

echo "$(date): done"

exit 0

Dateianhänge sind dann auch nur eine Kommandozeilenoption weiter entfernt:
#!/bin/sh

ANHAENGE="/home/torxgewinde/Schreibtisch/dateianhang.txt"

#E-Mail Details
EMAILTO="torxgewinde@example.domain"
EMAILFROM="fhem@mein-anbieter.de"
EMAILNAME="FHEM"
EMAILPASS="geheim123"
EMAILSERVER="mail.mein-anbieter.de"

#Meine Textnachricht
MESSAGE="Eine wichtige Nachricht aus FHEM. Es ist jetzt: $(date)"

echo "$(date): sending email now..."

#der eigentliche E-Mail Versand erfolgt hier
curl \
--no-progress-meter \
--ssl-reqd smtps://$EMAILSERVER:465 \
--login-options AUTH=PLAIN \
--user "$EMAILFROM:$EMAILPASS" \
--mail-from "$EMAILFROM" \
--mail-rcpt "$EMAILTO" \
--mail-rcpt-allowfails \
-H "Subject: Wichtige Mitteilung aus FHEM" \
-H "From: $EMAILNAME <$EMAILFROM>" \
-F '=(;type=multipart/alternative' \
-F "=$MESSAGE" \
-F "= <body>$MESSAGE</body>;type=text/html" \
-F '=)' \
-F "=@$ANHAENGE;encoder=base64"|| exit 1

echo "$(date): done"

exit 0

HTH!

RalfRog

Zitat von: Funsailor am 03 Oktober 2023, 18:58:41Hallo Ralf,
vielen Dank für die Info, sieht ja erfolgversprechend aus.
Allerdings ist die sendemail_1.56-5.2_all.deb ja unter Buster (V10) gelistet, ich habe aber schon den "Bücherwurm" drauf.

Funzt das dann auch noch?

Da kann ich nicht wirklich was zu sagen.
Ich hatte nur irgendwie im Kopf, dass da vor ein paar Wochen ein sendEmail-Problem mit Debian12 (bookworm) war und danach gesucht (pcbastler und otto123 berichten ja von Problemen bei bookworm).
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

Funsailor

- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.50 -

micha0815

Ich stand gerade nach dem Update auf bookworm auch vor dem Problem.
Mittlerweile gibt es ein Pakt im Backports.

Da ich die Backports bei mir nicht e3xtra aktivieren wollte, habe ich mir das Paket direkt unter
https://packages.debian.org/bookworm-backports/all/sendemail/download
heruntergeladen und den mittels dpkg-i installiert.
Jetzt funktioniert der Versand wieder.

flobeewan

Ich bin auch auf das Problem mit STARTTLS und "sendEmail[]: ERROR => TLS setup failed: hostname verification failed" gestoßen.
Die sendemail Version konnte ich weder direkt updaten, noch über den Backport eine alternative installieren.

Bei mir hat der folgende Lösungsansatz auf Anhieb funktioniert: https://github.com/fhem/fhem-docker/issues/254