Versenden von Mails per DebianMail

Begonnen von lendrod, 30 Januar 2015, 14:17:24

Vorheriges Thema - Nächstes Thema

lendrod

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
VM FHEM Server
CUL868 V3, CUL433 V3, HM CCU2
5 x FHT 80 BTFN-2, 3 x ITR-1500, FS20 TC8, FS20 FMS
Onky TX-NR616

nesges


lendrod

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
VM FHEM Server
CUL868 V3, CUL433 V3, HM CCU2
5 x FHT 80 BTFN-2, 3 x ITR-1500, FS20 TC8, FS20 FMS
Onky TX-NR616

UweH

Alles in eine Zeile, keine Umbrüche.

lendrod

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.

VM FHEM Server
CUL868 V3, CUL433 V3, HM CCU2
5 x FHT 80 BTFN-2, 3 x ITR-1500, FS20 TC8, FS20 FMS
Onky TX-NR616

lendrod

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.
VM FHEM Server
CUL868 V3, CUL433 V3, HM CCU2
5 x FHT 80 BTFN-2, 3 x ITR-1500, FS20 TC8, FS20 FMS
Onky TX-NR616

nesges

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.


Paddinho

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');;\
}