Seite 1 von 3

Mail per MSMTP und MUTT aus einem Skript heraus

Verfasst: 18. Mär 2020 16:30
von gabonica
Hallo zusammen,
mich plagt folgendes Problem auf einem Raspberry pi 2 mit Raspbian OS:
Ich möchte Bilder welche von meinen Überwachungskameras aufgenommen wurden per Mail an mein Handy schicken.

Das Szenario ist wie folgt:
Öffnet sich ein Fenster mit Fenstersensor, so führe ich ein Skript aus welches zunächst einige snapshots macht, diese dann umbenennt und an meine email-Adresse schickt. Das Skript an sich funktioniert, die Bilder werden gemacht und umbenannt.
Das Versenden scheitert.

Copy-Paste ich den Befehl
echo "Einbruch" | mutt -s "e-Mail mit Anhang" adresse@provider.de -a /pfadZuBildern
ins Terminal funktioniert alles wie gewünscht.

Ich habe MSMTP und MUTT installiert.

Ich vermute es liegt an irgendwelchen nicht vorhandenen Rechten, komme aber nicht weiter.

Wer weiß Rat?

Danke schon mal

Re: Mail per MSMTP und MUTT aus einem Skript heraus

Verfasst: 18. Mär 2020 18:11
von udo1toni
Was Du beschreibst, klingt eher danach, dass Du kein openHAB nutzt, liege ich da richtig?

Das wäre wirklich eine wichtige Information, weil ziemlich sicher jede Menge Ratschläge kommen werden, betreffend

1. Mail Binding, welches nativ Mails verschicken kan (mit Anhang)
2. den Hinweis, dass der Pi2 zu knappe Resourcen für openHAB 2.5 hat.
3. Man openHAB auf dem Pi am besten mit openHABian aufsetzt.

;)

Re: Mail per MSMTP und MUTT aus einem Skript heraus

Verfasst: 18. Mär 2020 18:38
von gabonica
Hallo und Danke

Doch doch, alles in openHab...
Der Fenstersensor ist ein Thing, received er "OPEN" wird eine Rule ausgelöst die das Skript aufruft....

Re: Mail per MSMTP und MUTT aus einem Skript heraus

Verfasst: 18. Mär 2020 19:03
von udo1toni
Gut, dann geht es weiter mit der Frage nach der Version. :) Und warum Du nicht die eingebauten Methoden nutzt...

Re: Mail per MSMTP und MUTT aus einem Skript heraus

Verfasst: 19. Mär 2020 06:52
von gabonica
Guten Morgen
Es handelt sich um OpenHAB 2.5.2

Ich bin zwar höhersemestriger Student der Informatik, habe aber bisher wirklich nichts (!) mit openHAB oder Linux zu tun gehabt. Ich beschäftige mich seit einer Woche damit weil meine Abschlussarbeit in die Richtung "smartHome" gehen könnte. Zur Zeit habe ich einfach mehr Zeit als mir lieb ist und beschäftige mich (mit Sachen die ich nun einmal habe, darum auch "nur" der Raspi 2) mit einem alten Projekt unserer Hochschule. Ich habe als Grundaufbau den damaligen Systemaufbau der Abschlussarbeit eines Kommilitonen übernommen. Da es für meine Kameras (2 verschiedene) keine Bindings gibt steuere ich die Drehung über REST-Befehle in einem Skript und das Aufnehmen von Snapshots mache ich ebenfalls indem über ein Skript die Snapshot-URL aufgenommen wird.
Wenn ich es hinbekommen würde über das Skript nun auch die Mail zu versenden, dann wäre mir geholfen. Das geht aber nicht. Meine im Skript verwendete Terminaleingabe stimmt, copy-paste ich diese ins Terminal funktioniert alles. Nur im Skript passiert einfach nichts.
Was meinst du denn mit "eingebaute Methoden"? Das Mail-Binding? Das habe ich beim Lesen gestreift, aber mich noch nicht in der Tiefe damit beschäftigt weil ich dachte es geht auch so...

Grüße nochmal

Re: Mail per MSMTP und MUTT aus einem Skript heraus

Verfasst: 19. Mär 2020 08:42
von udo1toni
Es wäre, da Du ohnehin schon alles im Script liegen hast, vermutlich tatsächlich das Einfachste, die Bilder mit dem gleichen Script zu versenden und von openHAB lediglich das Script zu starten. Mit dem exec Binding sollte das kein Problem sein. Zu beachten ist hier, dass alle Befehle (in diesem Fall also der Aufruf des Scripts) in einer Whitelist eingetragen werden müssen (das ist neu dazu gekommen). In 2.5.2 gibt es einen Bug, man muss die whitelist nach jedem Neustart einmalig z.B. per touch neu speichern, sonst funktioniert exec nicht.

Gesendet von meinem SM-G973F mit Tapatalk


Re: Mail per MSMTP und MUTT aus einem Skript heraus

Verfasst: 19. Mär 2020 12:25
von gabonica
Und wieder mal - Hallo

Ich bin jetzt deinem Rat gefolgt und habe mir das Mail-Binding noch drangelötet. Jetzt kann ich aus meiner Rule heraus eine Mail verschicken. So weit, so gut.
Wenn du mir jetzt noch verrätst wie ich an diese Mail ein auf der Festplatte gespeichertes Bild dranhänge, dann bist du mein persönlicher Held des Tages.

Zur Zeit nutze ich in der Rule:
val mailActions = getActions(...)
mailActions.sendMail("empfänger@abc.de", "Betreff", "Text bla blubb töröö")

Wie bekomme ich da nun Anhänge dran?
Aus der Doku werde ich nicht wirklich schlau...

Grüße

Re: Mail per MSMTP und MUTT aus einem Skript heraus

Verfasst: 19. Mär 2020 17:10
von udo1toni
Die zu versendenden Attachments müssen auf einem Webserver über eine URL erreichbar sein.

Aber bevor Du nun ausrastest... openHAB bringt ja nun selbst einen webserver mit ;) Das heißt, es reicht, das Bild im entsprechenden Unterordner abzulegen, zu versenden, und anschließend auch gleich wieder zu löschen. Der Ordner heißt für gewöhnlich /etc/openhab2/html/ und die Dateien sind unter http://deine.open.hab.ip:8080/static/dateiname erreichbar. Der User, welcher openHAB ausführt, hat für gewöhnlich Schreibrechte in dem Ordner.

Du kannst sogar mehrere Attachments versenden, wenn Du sie vorher als Liste anlegst.

Re: Mail per MSMTP und MUTT aus einem Skript heraus

Verfasst: 20. Mär 2020 10:49
von gabonica
Hallo und nochmal danke

Das funktioniert soweit, wirklich vielen vielen Dank.

Wie erstelle ich denn so eine Liste? Gibt es da eine Anleitung zu?

Grüße

Re: Mail per MSMTP und MUTT aus einem Skript heraus

Verfasst: 20. Mär 2020 13:27
von gabonica
Noch kurz als Nachtrag was ich bisher versucht habe (und was nicht funktioniert):


import java.util.List

rule "Testschalter"

when
Item testschalter changed from OFF to ON
then
val List<String> attachmentUrlList = newArrayList(
"http://192.168.xxx.xx:8080/static/readme.txt",
"http://192.168.xxx.xx:8080/static/index.html")

val mailActions = getActions("mail","mail:smtp:gmail")
Thread.sleep(2000)
mailActions.sendHtmlMail("blabla@blubb.de", "ALARM", "Einbruch wurde erkannt", attachmentUrlList)
end


java.util.list erst in der Rule importieren ging ebenfalls nicht

Nochmal Grüße und vielen Dank