FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Sonic am 28 Dezember 2019, 14:35:27

Titel: Mailversand Raspberry unter Buster
Beitrag von: Sonic am 28 Dezember 2019, 14:35:27
Hallo,
leider wird SSMTP Mail und Buster nicht mehr unterstützt.
Dies als wichtige Info vorweg für alles Updater auf Buster.

Nach stundenlanger Fehlersuche hat sich dieser Sachverhalt nun definitiv aufgeklärt.

Ich möchte nur einfache Statusmails aus FEHM versenden.
Leider läuft auch MSMTP nicht, da ich die Fehlermeldung bekomme, es sei keine .cfg  vorhanden.
In anderen Foren habe ich gefunden, daß andere Anwender gleiches Problem bisher nicht lösen konnten.

Hat jemand schon eine andere einfach funktionierende Mail-Lösung gefunden die unter Buster läuft ?

Hat jemand Hilfe ?

Danke
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: KernSani am 28 Dezember 2019, 14:41:56
Ich habe kürzlich völlig ohne Probleme ssmtp auf einem Pi4 mit aktuellem Buster eingerichtet:



sudo apt-get update && sudo apt-get install ssmtp mailutils

sudo nano /etc/ssmtp/ssmtp.conf



Grüße,

Oli


Gesendet von iPhone mit Tapatalk
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Otto123 am 28 Dezember 2019, 15:58:28
Hi,

sendemail funktioniert nach wie vor.
https://wiki.fhem.de/wiki/E-Mail_senden#Raspberry_Pi

Gruß Otto
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 19:49:27
Hallo Otto,
ich habe es noch einmal versucht mit ssmtp ins laufen zu bekommen.
Weiter habe ich noch diesen Hinweis gefunden, (davon gibt es mehrere im Netz) das ssmtp nicht mehr unter Buster läuft.
https://forum.netcup.de/administration-eines-server-vserver/vserver-server-kvm-server/11632-kein-ssmtp-mehr-unter-debian-10-buster/

https://www.raspberrypi.org/forums/viewtopic.php?t=244147


Otto, hast du eine aktuelle Anleitung wie ich ssmtp nochmal richtig über die Console am PI3 installieren kann ?
Ich denke sobald ich es schaffe das ich vom Raspi mit ssmtp eine mail versenden kann, dann funktioniert auch der Mailversand aus FHEM wieder.
Somit könnte ich mir die Arbeit ersparen und meine ganzen Statusmails umbauen zu müssen.

Wäre Super wenn du mich da an die Hand nehmen könntest.

Danke

Gruss
KLAUS
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 19:51:23
Ach ja und noch zum Verständnis ..
ist sendmail und ssmtp nicht das gleiche ?
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Otto123 am 29 Dezember 2019, 20:01:32
Hallo Klaus,

ich rede von sendemail (nicht von sendmail) da ist kein Schreibfehler!
Ich kenne ssmtp nicht, da kann ich nicht helfen. Die andere Anleitung für sendemail (hieß früher mal sendEmail) funktioniert und die habe ich verlinkt.
Ist es nicht Wurst ob Du mit a oder b eine Mail versendest?
Ich weiß nicht wie Deine Statusmail aussieht, aber am Ende wird der Aufruf doch über eine eigene Sub in der 99_myUtils gemacht. Und da kannst Du doch die Parameter an den alten Syntax anpassen?

Gruß Otto
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 20:05:52
Hallo Otto, die Anleitung zur Installation von sendemail klingt ganz schön kompliziert.

O.K ich werde es versuchen, habe aber Repekt davor.

Gruss
KLAUS
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Otto123 am 29 Dezember 2019, 20:08:10
Echt? Drei Zeilen inkl Test?
Zitatsudo apt-get update
sudo apt-get install sendemail libio-socket-ssl-perl libnet-ssleay-perl perl
Man kann die korrekte Funktion im Terminal oder auch in der FHEM Kommandozeile testen

{qx(sendemail -f "xxx\@web.de" -t "xxx\@xxx.de" -u 'subject' -m 'text' -s 'smtp.web.de:587' -xu 'xxx' -xp 'PasswortOhneKlammeraffen' -o tls=auto -o message-charset=utf-8)}
Der Rest ist die Sub in der 99_myUtils - die ist Geschmacksache :)
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 20:13:53
Otto,
Du machst mir Mut  :D
Das heisst ich brauche die 99_myUtils gar nicht zwingend ?

o.k die 3 Zeilen haue ich gleich rein.
die Zeile zum Testen kapiere ich nicht.
xxx\@web.de = die Empfängeraddresse ?
xxx\@xxx.de = wofür steht das ?
text' -s 'smtp.web.de:587 = mein Mail Proveider z.B smtp.1und1.de ?

{qx(sendemail -f "xxx\@web.de" -t "xxx\@xxx.de" -u 'subject' -m 'text' -s 'smtp.web.de:587' -xu 'xxx' -xp 'PasswortOhneKlammeraffen' -o tls=auto -o message-charset=utf-8)}


kannst du mir da kurz helfen ?
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: CoolTux am 29 Dezember 2019, 20:16:20
Versuche den sendmail Befehl doch erstmal nur in der Linux Konsole aus zu führen um zu schauen das es generell geht.
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 20:20:24
Hallo, würde ich ja gerne,
wie muss der Sendmail Befehl in der Linux Console aussehen ?

So ?
{qx(sendemail -f "klaus@web.de" -t "klaus1@web.de" -u 'subject' -m 'text' -s 'smtp.1und1.de:587' -xu 'xxx' -xp 'mein Passwort' -o tls=auto -o message-charset=utf-8)}

hier bekomme ich
-bash: syntax error near unexpected token `sendemail'

oder einfach nur das Wort sendmail ?

Sorry für die dumme Frage,,, aber ich stehe auf dem Schlauch
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Otto123 am 29 Dezember 2019, 20:54:16
nochmal: Ich rede von sendemail

Und was ich gepostet habe ist für die FHEM Kommandozeile in Perl, aber das was hier drin steht {qx(sendemail....)} ist bash / Terminal /Konsole
sendemail -f "klaus@web.de" -t "klaus1@web.de" -u 'subject' -m 'text' -s 'smtp.1und1.de:587' -xu 'xxx' -xp 'mein Passwort' -o tls=auto -o message-charset=utf-8

Diese Zeile aus dem Wiki erklärt mehr? Rechts und links, oben und unten  lesen? :)
Zitat$ret .= qx(sendemail -f '$from' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8);

Solange wie Du aber sendemail nicht installiert hast, wird das nichts. Das wird per default nicht in debian ausgeliefert!
Und sendemail allein auf der Konsole liefert auch einen ausführlichen Hilfetext!
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 21:04:02
Hallo Otto,
ist klar.

Ich wollte dies ja jetzt erstmal nur unter Linux Konsole eine Testmail versenden

Ich gebe dies ein:
$ret .= qx(sendemail -f '$klaus@online.de' -t '$klaus2@online.de' -u '$subject' -m '$text' -a '$attach' -s '$smtp.1und1.de' -xu '$klaus2@online.de' -xp '$meinPasswort' -o tls=auto -o message-charset=utf-8);

und bekomme:
-bash: syntax error near unexpected token `('

Was mache ich falsch ?

Danke für deine Hilfe...
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: CoolTux am 29 Dezember 2019, 21:06:28
Otto hatte es doch schon richtig geschrieben für die Linuxkonsole

sendemail -f "klaus@web.de" -t "klaus1@web.de" -u 'subject' -m 'text' -s 'smtp.1und1.de:587' -xu 'xxx' -xp 'mein Passwort' -o tls=auto -o message-charset=utf-8

Und bitte schaue Dir den Befehl richtig an und ergänze/entferne entsprechend. Nicht einfach blind abschreiben.
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 21:21:02
Dankeschön,
ich habe verstanden und jetzt hat der Test aus der Linux Konsole funktioniert   :)

Jetzt mache ich mich daran es wieder in FHEM zu integrieren.

Hierzu noch zwei Fragen:
1. muss ich die 99 myUtils entsprechend Otto einbauen oder gehts auch ohne ?
2. bisher war mein Befehl zum Emailversand so

define n_batt_chk notify .*:[Bb]attery.* { \
if ( ($EVENT !~ m/ok/) && (time > $main::NewMailtime) ) {\
   ssmtpMail('alarm@online.de','FHEM Batteriewarnung Heizung', $NAME.': '.$EVENT);; \
   Log 3, "$NAME : Batteriewarnung $EVENT";; \
   $main::NewMailtime = time + 15360;;\
  } \
}

wie muss denn der Befehl aussehen um sendemail damit zu triggern ?

Ich danke Euch vielmals für eure Geduld und Hilfe. Habe einfach wenig Wissen aber trotzdem schon viel mit FHEM erreicht   ;D
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Otto123 am 29 Dezember 2019, 21:33:16
Wenn Du mich fragst, ist das hier ssmtpMail eine Sub in deiner 99_myUtils oder wo anders :)
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 21:35:39
Hallo Otto,

ja, ich hatte dies drin, kann aber nun ja raus, weil ich nun auf sendemail umsteigen muss

#####E-Mailfunktion mit ssmtp
sub
ssmtpMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $ret = "";
$ret .= qx(echo "$text" | mail -s "$subject" "$rcpt");
Log 1, "ssmtp RCP: $rcpt, Subject: $subject, Text: $text";
}

1;
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Otto123 am 29 Dezember 2019, 21:40:03
Naja meine Zeile in der Batteriewarnnung sieht so aus:
{ DebianMail('otto@mailadresse.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)}
Sieht also genauso aus wie bei Dir, d.h. Du fügst einfach die Sub aus dem Wiki in deine 99_myUtils ein und benennst sie mit ssmtpMail - dann klappt alles wie vorher.

Aber denke daran: zwischen Copy und Paste gehört unbedingt der Kopf! Also die Sub aus dem Wiki musst Du entsprechend ausfüllen ;)
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 21:52:13
Hi Otto, Danke dir Vieeeelmals.

ich bin ober Happy... mit dem Tipp einfach umzubenennen auf ssmtpMail.

sub ssmtpMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $error;
my $konto = getKeyValue("myEmailKonto");
my $passwrd = getKeyValue("myEmailPasswrd");
my $from = $konto; # or use different KeyValue if konto is not the from email address
my $provider = "smtp.1und1.de"; # smtp.domain.tld:port see provider documentation
#Log 1, "sendEmail RCP: $rcpt";
#Log 1, "sendEmail Subject: $subject";
#Log 1, "sendEmail Text: $text";
#Log 1, "sendEmail Anhang: $attach";

$ret .= qx(sendemail -f '$from' -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";
}

habe eben getestet und es scheinen alle alten Jobs wieder zu funktionieren ohne weitere Massnahmen  ;D ;D
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Otto123 am 29 Dezember 2019, 21:58:55
sag ich doch. Da kann das neue Jahr ja kommen ;)
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 21:59:02
Otto noch ein allerletzte Fage:

Ich habe schon ewig diese Fehlermeldung drin.
Hast du eine Idee was ich in dem Code falsch habe ?

PERL WARNING: Use of uninitialized value $NewMailtime in numeric gt (>) at (eval 213) line 2.
2019.12.29 21:55:30 3: eval: my $EVTPART0='Battery:low';my $EVENT='Battery:low';my $NAME='thermostat';my $TYPE='FHT';my $SELF='n_batt_chk';{
if ( ($EVENT !~ m/ok/) && (time > $main::NewMailtime) ) {


hier der Code

define n_batt_chk notify .*:[Bb]attery.* { \
if ( ($EVENT !~ m/ok/) && (time > $main::NewMailtime) ) {\
   ssmtpMail('alarm@online.de','FHEM Batteriewarnung Heizung', $NAME.': '.$EVENT);; \
   Log 3, "$NAME : Batteriewarnung $EVENT";; \
   $main::NewMailtime = time + 15360;;\
  } \
}
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Otto123 am 29 Dezember 2019, 22:04:23
naja der Teil: (time > $main::NewMailtime) ich nehme irgendwie an NewMailtime gibt es gar nicht.
Mach die Zeile einfach erstmal so:
if ( ($EVENT !~ m/ok/) ) {\ hab ich auch so ;)

Edit: ach schau  an https://wiki.fhem.de/wiki/E-Mail_per_notify_nach_Zeitablauf_erneut_senden

Da fehlt Dir also was in 99_myUtils ;)
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 22:13:57
Check.... habs verstanden  ;D
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 22:23:33
So, habe es in myUtils laut Wiki eingebaut... Fehler leider immer noch.
Falls eine Idee noch da ..... wäre Klasse

2019.12.29 22:16:51 1: PERL WARNING: Use of uninitialized value $attach in concatenation (.) or string at ./FHEM/99_myUtils.pm line 37.
2019.12.29 22:16:51 3: eval: my $EVTPART0='Battery:low';my $SELF='n_batt_chk';my $EVENT='Battery:low';my $TYPE='FHT';my $NAME='thermostat';{
if ( ($EVENT !~ m/ok/) && (time > $main::NewMailtime) ) {
   ssmtpMail('alarm.@online.de','FHEM Batteriewarnung Kinsau', $NAME.': '.$EVENT);
   Log 3, "$NAME : Batteriewarnung $EVENT";
   $main::NewMailtime = time + 15360;
  }
}
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Otto123 am 29 Dezember 2019, 22:35:07
Das ist ein andere Fehler :)

Du hast die Email Routine mit attachment verwendest es aber nicht :)

Du musst die Zeile ändern:
my $attach = shift; in
my $attach = "";

Ich habe es nicht getestet
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Sonic am 29 Dezember 2019, 22:47:34
Hallo Otto,
will noch nicht so Recht.
Habe es geändert,, jetzt habe ich diese Meldung im Log
die Mail geht jedenfalls Raus, das ist doch schon mal ein Erfolg  ;D

PERL WARNING: Use of uninitialized value $NewMailtime in numeric gt (>) at (eval 227) line 2.
2019.12.29 22:45:27 3: eval: my $SELF='n_batt_chk';my $EVENT='Battery:low';my $NAME='thermostat';my $EVTPART0='Battery:low';my $TYPE='FHT';{
if ( ($EVENT !~ m/ok/) && (time > $main::NewMailtime) ) {
   ssmtpMail('alarm.@online.de','FHEM Batteriewarnung', $NAME.': '.$EVENT);
   Log 3, "$NAME : Batteriewarnung $EVENT";
   $main::NewMailtime = time + 15360;
  }
}
2019.12.29 22:45:28 1: sendemail returned: Dec 29 22:45:28 raspberrypi sendemail[782]: Email was sent successfully!
2019.12.29 22:45:28 3: thermostat : Batteriewarnung Battery:low
2019.12.29 22:45:28 3: n_batt_chk return value: 1577671288
Titel: Antw:Mailversand Raspberry unter Buster
Beitrag von: Otto123 am 30 Dezember 2019, 00:03:28
Funktioniert bei mir auch nicht. Ich weiß nicht warum :(

Aber ich habe das Wiki nochmal geändert, die Routine verkraftet jetzt das fehlende attachment :)
Wenn Du bei Gelegenheit nochmal schauen willst