E-Mail Versand aus FHEM auf einer Qnap NAS

Begonnen von Dennis D., 11 Januar 2013, 16:40:22

Vorheriges Thema - Nächstes Thema

Dennis D.

Hallo zusammen,

wie kann ich aus FHEM heraus auf meiner QNap NAS Mails versenden? Hintergrund: Bei einer Alarmauslösung soll eine E-Mail an mich versendet werden.

Ich habe bereits versucht den Artikel aus dem Wiki umzusetzen und habe den Part für die Synology Diskstation analog bei mir eingebaut. Hierzu habe ich die Datei "99_sendmail.pm" im Verzeichnis "/lib/FHEM/" angelegt, mit folgendem Inhalt:


sub sendmail($$$) {
  my($empf, $subj, $nachricht) = @_;
  system("php -r 'mail(\"$empf\",\"$subj\",\"$nachricht\");'");
  undef;
}


Anschließend habe ich in der "99_Utils.pm" noch die Zeile "use sendmail;" eingefügt.

gebe ich nun { sendmail('empfaenger@mail.de' ('empfaenger@mail.de'),'Subject','text 123') } in die FHEM Befehlszeile ein, passiert gar nix. Im Log gibts hierzu auch keinen Eintrag.

Hat jemand ne Idee wo hier mein Fehler liegt?

Gruß
spunky
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

broadway

Definiere zunächst ein notify, in dem die mail verschickt wird und triggere es dann:

define testmail notify testmail {sendmail('empfaenger@mail.de','Subject','text 123')}
trigger testmail
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Dennis D.

habe ich gemacht. passiert aber nix, wenn man es triggert.
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

broadway

Was für ein Betriebssystem hast du?

Ich nutze debian auf einer NSLU2 und habe sendEmail zusätzlich installiert, funktioniert einwandfrei mit dem wiki Beispiel für Raspberry pi.

http://www.debianadmin.com/how-to-sendemail-from-the-command-line-using-a-gmail-account-and-others.html


Du solltest mal versuchen, ob der Befehl "php -r 'mail..." von der Konsole ausgeführt werden kann (nicht aus FHEM heraus).

Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Dennis D.

also es ist die original-Firmeware von Qnap. Ist das ein nslu2-linux? Zumindest werden von http://ipkg.nslu2-linux.org die pakete geladen.

also wenn ich "php -r mail(name@domain.tld (name@domain.tld),test,123)" eingebe, dann kann ich irgendwas eingeben, komme aber nicht mehr zum promt zurück. sieht in der konsole so aus:


[~] # php -r mail(name@domain.tld,test,123)
>
>


dann habe ich per ipkg noch "sendmail" installiert. Das muss man aber glaub ich noch konfigurieren (und da hörts bei mir endgültig auf; aus den anleitungen die ich hierzu gefunden habe, werde ich nicht schlau).

sendEmail ist glaub ich nur bei Debian vorhanden. jedenfalls hab ich es nicht per ipkg installieren können.

letztendlich würde ich halt am liebsten von der adresse "fhem@meinedomain.de (fhem@meinedomain.de)" (welche ich bei meinem provider angelegt habe) mails versenden können. aber dafür müsste ich doch auf der qnap irgendeinen mail-clienten installiert haben, welcher über den smtp-server meines domain-hosters versendet. oder liege ich da falsch?

zu dem sendmail-modul, welches ich analog aus dem wiki für synology-nas übernommen habe, bekomme ich beim rereadcfg im log folgende fehlermeldung:

2013.01.12 11:00:36 1: reload: Error:Modul 99_Utils deactivated:
 sendmail.pm did not return a true value at /opt/lib/FHEM/99_Utils.pm line 9, <$fh> line 7.
BEGIN failed--compilation aborted at /opt/lib/FHEM/99_Utils.pm line 9, <$fh> line 7.


FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

broadway

Das debian auf der NSLU2 ist eine Linux Variante. Mit der Qnap kenne ich mich leider nicht aus.

Ich hatte auch große Probleme mit der Einrichtung des Mail Systems unter Debian. Das habe ich aufgegeben und mit SendEmail war es nach der Installation sehr einfach. Die Zugangsdaten und SMTP Einstellungen vom Provider werden einfach beim Sendebefehl mit übergeben. Ist natürlich schade, wenn sich das bei dir nicht installieren lässt.

Der Link oben ist speziell für debian, vielleicht findest du auf dieser Seite noch Hilfe zu sendEmail.

Von der Konsole aus musst du zunächst die Mail verschicken können, bevor du dir über FHEM Gedanken machst. Falls hier sonst keiner Rat weiß, solltest du ein Forum suchen, dass sich speziell mit deinem Gerät/ Software beschäftigt. Danach können wir hier wieder helfen und den Befehl von FHEM aus absetzen.
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

kud

Wenn es nur um den Versand geht, hilft auch einen Blick auf msmtp zu werfen.
Das ist nicht so ein Dickschiff wie sendmail, macht seine Sache aber genausoWenn es nur um .
Die nächste Überlegung wären auch spezielle Dienste fürs Handy.
Android: nma  
Apple: prowl

Ich nutze mit meinem Note die Variante nma.
Die Einrichtung unter Debian ist recht einfach. Bei Bedarf schicke ich eine Anleitung.

Gruss Kai-Uwe

Dennis D.

also das nma ist ja recht nice. habs mal auf meinem androiden installiert und es gibt ja sogar ein perl script.

auf der internetseite finde ich aber keine vernünftige anleitung, wo die installation schritt für schritt erklärt ist. hab jetzt zwar die app und auch nen api-key, aber wie sendet man nun nachrichten? und wie muss der syntax in fhem sein, wenn ich eine nachricht verschicken will.

wäre super, wenn du mir die anleitung schicken würdest.
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

Dennis D.

also msmtp will auch nicht so recht klappen. keine ahnung wie ich den ganzen sch.. konfigurieren soll.

das einzige was irgendwie funktioniert ist "sendmail". wenn ich auf der konsole "sendmail name@meinedomain.de (name@meinedomain.de)" eingebe, dann funktioniert erstmal zwar nichts und es sieht aus, als ob die konsole hängt. sobald ich putty jedoch schließe, erfolgt der versand einer e-mail und ich erhalte eine Mail von "SERVER" <SERVER@SERVER>>.

Kann man damit was anfangen und oder ggf. drauf aufbauen?
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

kud

Zu NMA:
1. Also das Perlscript nach /opt/fhem/FHEM kopieren.
2. Aufruf zB. in der fhem.cfg
`perl /opt/fhem/FHEM/nma.pl -k [api_key_deleted_by_admin] -s Einbruch -m $piri_ort -p 2`;;\


Das lange Etwas ist Dein Key aus API-Key von NMA.
Die Parameter siehst Du wenn Du ./nma.pl --help aufrufst.
In meinem Beispiel ist der Betreff "Einbruch" und der Text ist die Variable des Einbruchortes.
-p ist die Dringlichkeit.

Bitte achte auch darauf, das das Perlscript die passenden Rechte hat. Ich mal chmod 777 nma.pl gemacht, also Vollzugriff.
(Nicht gut aber es geht. Vielleicht kann mir ein Rechteexperte mal die richtigen Rechte verraten.)

Viel Spaß beim Benachrichtigen.

Gruss
Kai-Uwe


 

broadway

Zitat von: spunky78 schrieb am Sa, 12 Januar 2013 15:11also msmtp will auch nicht so recht klappen. keine ahnung wie ich den ganzen sch.. konfigurieren soll.

das einzige was irgendwie funktioniert ist "sendmail". wenn ich auf der konsole "sendmail name@meinedomain.de (name@meinedomain.de)" eingebe, dann funktioniert erstmal zwar nichts und es sieht aus, als ob die konsole hängt. sobald ich putty jedoch schließe, erfolgt der versand einer e-mail und ich erhalte eine Mail von "SERVER" <SERVER@SERVER>>.

Kann man damit was anfangen und oder ggf. drauf aufbauen?

Bekommst du diese e-mail über einen provider wie t-online, gmx,... oder ist das eine Nachricht der Konsole?
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Dennis D.

@ kud: Danke, das probier ich später mal aus.

@ broadway:
das ist die nachricht der konsole. wenn ich in der konsole

"sendmail empfänger@meinedomain.de (nger@meinedomain.de)" eingebe und nach "enter" in der nächsten zeile "Dies ist ein Test", dann bekomme ich eine E-Mail mit "Dies ist ein Test" im Inhalt, jedoch ohne Betreff und mit dem Absender SERVER@SERVER. und versendet wird erst, wenn ich die konsole schließe (weiß nicht wie ich nach dem sendmail befehl wieder zum promt zurück komme *g*).
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

broadway

Zitat von: spunky78 schrieb am Sa, 12 Januar 2013 15:57@ kud: Danke, das probier ich später mal aus.

@ broadway:
das ist die nachricht der konsole. wenn ich in der konsole

"sendmail empfänger@meinedomain.de (nger@meinedomain.de)" eingebe und nach "enter" in der nächsten zeile "Dies ist ein Test", dann bekomme ich eine E-Mail mit "Dies ist ein Test" im Inhalt, jedoch ohne Betreff und mit dem Absender SERVER@SERVER. und versendet wird erst, wenn ich die konsole schließe (weiß nicht wie ich nach dem sendmail befehl wieder zum promt zurück komme *g*).

Das klingt eher nach einem lokalen loopback, der dein Haus nicht verlässt. Das email System ist also definitiv noch nicht konfiguriert.
Linksys NSLU2 debian + CUL | FHT80B, FS20, Elro

Dennis D.

... also es ist schon ne richtige e-mail, die rausgeht. zwar wird nicht - wie gewünscht - der versand über mein domain-hoster getätigt, sondern direkt von meiner nas aus, aber das wäre nicht schlimm, wenn der absender entsprechend vorgegeben werden kann. z.b. fhem@server oder so. und ich müsste wissen wie ich den versand aus fhem nun bewerkstellige.

die sendmail.pm mit folgendem code:


sub sendmail {
  my($empf, $subj, $nachricht) = @_;
  system("php -r 'mail(\"$empf\",\"$subj\",\"$nachricht\");'");
  undef;
}


produziert halt den folgenden fehler lt. log:


2013.01.12 15:40:26 1: reload: Error:Modul 99_Utils deactivated:
 sendmail.pm did not return a true value at /opt/lib/FHEM/99_Utils.pm line 9, <$fh> line 7.
BEGIN failed--compilation aborted at /opt/lib/FHEM/99_Utils.pm line 9, <$fh> line 7.
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

Dennis D.

das denke ich nicht, da die email ja auf meinem androiden ankommt. und das postfach liegt ja auf dem mailserver meines hosters. auch wenn ich via web-mailer auf mein postfach zugreife, finde ich dort die mails meines NAS. also raus gehen die schon.
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438