FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: lendrod am 30 Januar 2015, 14:17:24

Titel: Versenden von Mails per DebianMail
Beitrag von: lendrod am 30 Januar 2015, 14:17:24
Hallo,

also meine eigentliche Aufgabe ist es das wenn mein Wassermelder "wet" meldet das dann der Rauchmelder AlarmOn macht und mir per DebianMail eine Email zugesendet wird

Ich habe mich im Wiki umgeschaut und dort mir den Mailversand angeschaut.

Grundsätzlich kann ich von der console per sendEmail eine Mail versenden. Das habe ich bereits getestet.

Aus dem Wiki habe ich folgenden Code direkt in die WebGui eingefügt

define Sonstiges at *14:00:00 {\
DebianMail('email@email.domain','Subject','Text');;\
}


Und in der Log erhalte ich folgendes zurück
2015.01.30 14:06:30 3: Sonstiges: syntax error at (eval 72) line 1, at EOF
Titel: Antw:Versenden von Mails per DebianMail
Beitrag von: nesges am 30 Januar 2015, 14:45:54
In http://www.fhemwiki.de/wiki/E-Mail_senden steht's etwas versteckt an mehreren Stellen: @@
Titel: Antw:Versenden von Mails per DebianMail
Beitrag von: lendrod am 31 Januar 2015, 14:26:29
Ich habe das gelesen und da es wiedersprüchlich ist, habe ich einmal einem @ und einmal mit zwei @ angelegt.

Es ist jedesmal die selbe Fehlermeldung nur eine andere (Eval XX) Nummer
Titel: Antw:Versenden von Mails per DebianMail
Beitrag von: UweH am 31 Januar 2015, 14:33:53
Alles in eine Zeile, keine Umbrüche.
Titel: Antw:Versenden von Mails per DebianMail
Beitrag von: lendrod am 02 Februar 2015, 10:24:05
Hmmmm..... du hattest recht das der letzte } nicht in der nächsten Reihe war und deshalb ging es nicht.

Nun habe ich eine tolle neue Fehlermeldung die mich nicht weiter bringt.


2015.02.02 08:37:00 1: sendEmail returned: Feb 02 08:37:00 debian sendEmail[17743]: WARNING => The recipient <mail@@web.de> was rejected by the mail server, error
follows:Feb 02 08:37:00 debian sendEmail[17743]: WARNING => Received: 501 Syntax error in parameters or argumentsFeb 02 08:37:00 debian sendEmail[17743]:
ERROR => Exiting. No recipients were accepted for delivery by the mail server.

Titel: Antw:Versenden von Mails per DebianMail
Beitrag von: lendrod am 02 Februar 2015, 10:43:49
So.... Also oben im ersten Thread habe ich die Mailadresse mit einem @ und es funktionierte nicht, da lag es am Zeilenumbruch.

Nun funktionierte es nicht weil ich die Mailadresse mit @@ geschrieben habe. Ich habe das eine @ weggenommen und es läuft.

Was ist den nun generell richtig und warum sollte oder muss man das zweite @ setzen, was ist die Erklärung dazu damit man die Logik versteht.
Titel: Antw:Versenden von Mails per DebianMail
Beitrag von: nesges am 02 Februar 2015, 13:03:32
Anscheinend gilt der Hinweis aus http://www.fhemwiki.de/wiki/E-Mail_senden

ZitatWenn der Aufruf der Mailfunktion aus einem notify oder at erfolgt, muss das @@ in der Adresse des Mailempfängers verdoppelt werden, da ein einfaches @ sonst durch den Namen des getriggerten Devices ersetzt würde. Bei Verwendung in der fhem-Kommandozeile oder einem eigenen *Utils.pm ist diese Doppelung nicht erforderlich. Bitte bei den ersten Mails ins Log schauen, ob die Mailadresse wie gewünscht verwendet wird.

nicht, wenn innerhalb des notify oder at Perl-Code verwendet wird. Im Zweifelsfall ist der letzte Satz daraus unbedingt zu beachten und muss als einzige generell richtige Vorgehensweise gehandelt werden.

Titel: Antw:Versenden von Mails per DebianMail
Beitrag von: Paddinho am 02 Februar 2015, 13:54:22
Im Abschnitt "Raspberry Pi" steht folgender Text


Beim Aufruf der Funktion gibt es zwei unterschiedliche Verhaltensweisen zu beachten. Wird DebianMail durch ein Fhem-Ereignis als Makro mit "Transferzeichen", wie @ oder % aufgerufen, so sind diese innerhalb des Aufrufs von DebianMail zu maskieren.

Siehe auch commandref:

    The character @ will be replaced with the device name. To use @ in the text itself, use the double mode (@@).
    The macro %<parameter> will expand to the current value of the named parameter. This can be either a parameter from the device definition or a parameter from the set or get command.

Beispiel:

define Sonstiges notify Fenster:Window:.*,.*Low.Batt*. {\
DebianMail('email@@email.domain','Subject','Text');;\
}


in allen anderen Fällen muss die Maskierung entfallen:

Beispiel:

define Sonstiges at *01:00:00 {\
DebianMail('email@email.domain','Subject','Text');;\
}