Problem mit Einrichten/ Versenden DebianMail

Begonnen von RpiEinOzean, 16 August 2016, 17:20:25

Vorheriges Thema - Nächstes Thema

RpiEinOzean

Guten Tag zusammen,

bekomme die Sendefunktion von DebianMail nicht hin. Es hakt mal wieder bei der Umsetzung.
Ja, ich habe mich vorher versucht zu informieren. FhemWiki, diverse Seiten im Internet.
Also nicht faul und auf Lösung von anderen warten.

Was ich gemacht habe:
sudo apt-get update
sudo apt-get install sendEmail libio-socket-ssl-perl libnet-ssleay-perl perl


In die 99_myUtils folgende Unterroutine eingefügt:

######## DebianMail  Mail auf dem RPi versenden ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "MailadressevomRASPI\@gmx.de";         
my $konto = "Kundennummer\@gmx.de";         
my $passwrd = "123456789";                     
my $provider = "mail.gmx.de:465";     
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Anhang: $attach";;

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


Aufruf in FHEM mit:
define MailSenden at *18:00:00 { DebianMail('MailadressevomEmpfaenger\@gmx.de','TEST,'Test-Text',") }

##### in LogFile von FHEM gefunden:
sendEmail RCP: MailadressevomEmpfaenger@gmx.de
sendEmail Subject: Test
sendEmail Text: Test-Text
sendEmail Anhang:
sendEmail returned: Aug 15 18:00:00 raspberrypi sendEmail [23266]: ERROR => mail.gmx.de:465 returned a zero byte to our query.

in /usr/bin/sendEmail auch geaendert:
###############
if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv23:!SSLv2',


Ich weiß einfach im Moment nicht weiter.
Kann mir jemand dabei helfen.

Wernieman

Hast Du Dir mal Ausgeben lassen, wie die Übergabe des Befehles "sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8" aussieht? Und dann in der Konsole getestet?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hauswart

Teste mal:
define MailSenden at *18:00:00 { DebianMail('MailadressevomEmpfaenger@gmx.de','TEST','Test-Text','') }

[size=78%]anstatt:[/size]
[/size]define MailSenden at *18:00:00 { DebianMail('MailadressevomEmpfaenger\@gmx.de','TEST,'Test-Text',") }
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

RpiEinOzean

@ Wernieman
Das habe ich schon einmal auf meiner unendlichen Suche gesehen. ABER, nicht verstanden.
Weiß also nicht WAS ich WO eintragen soll.
Aber Danke für die Antwort. :)

@ Hauswart
Wenn ich es richtig gesehen habe ist der Unterschied hauptsächlich der Rückstrich(Backslash), dazu die '' näher aneinander.
Habe ich probiert, leider auch kein Erfolg.
Aber auch hier Danke für die Antwort. :)

Wernieman

Wenn Du Dir die qx Anzeigen lässt, anstatt auszuführen, kannst Du:
- Dich per putty auf dem Linux-Server einloggen
- zum User fhem werden
- genau DIESE Zeile manuell in der Konsole eingeben und debuggen

Zitatin /usr/bin/sendEmail auch geaendert:
War dieses von Dir ein Schuß ins Blaue, oder richtiges Debugging?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

isy

Hi,

Gerade mal GMX geprüft. Dort stehen andere Parameter als bei dir.
https://hilfe.gmx.net/pop-imap/imap/imap-serverdaten.html

Server: mail.gmx.net
Port: 587

Fällt mir auch noch auf: du hast den Port 465 angegeben. Das ist der SSL Port. In der DebianMail config hast du TLS eingegeben.  Dazu gehört aber der Port 587. Kann auch daran liegen.


Evtl. mal probieren.

Gruß Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

RpiEinOzean

@Wernieman

Weiß ja nicht genau worum es mit dem Schuss ins blaue geht aber ich schreibe mal was ich gemacht habe:
Ich habe in der Datei (Vielleicht heißt selbst Datei anders)   /usr/bin/sendEmail      if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv23:!SSLv2')) {
so eingetragen, hatte ich hier aus dem Forum.
Um was es dabei geht kann ich nicht wirklich sagen. Habe in meiner Verzweifelung nur diesen Tipp versucht umzusetzen.

Wie ich mir allerdings qx anzeigen lassen kann habe ich vermutlich auch nicht begriffen.
Ich würde mich jetzt mit UltraVNC Viewer auf dem Raspi einloggen.
Dort würde ich dann die Zeile mit sudo  qx(sendEmail -f 'sender'  . . . . ;  eintragen.
Ist das der richtige Weg?
Tschuldigung, bin mit DOS - Windows sozusagen aufgewachsen. Linux liegt mir scheinbar nicht wirklich.
Ich bemühe mich aber.

@ pv_is
Habe Testweise den Port 587 in die 99_my_Utils.pm eingegeben.

Im LogFile kam dann folgendes:
sendEmail returned: Aug 18 13:38:00 raspberrypi sendEmail [4443] ERROR => => SMTP-AUTH: Authentication to mail.gmx.de:587 failed

War dann leider auch nicht erfolgreich.

Schönen Gruß

 

isy

  if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv23:!SSLv2'))   

War glaube ich nur bei Wheezy notwendig, nicht bei Jessie.

GMX wollte den Port 587 mit gmx.net haben. Nicht .de
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Wernieman

1. Warum VNC, wenn Du auch auf die Konsole kommen kannst? Besorge Dir lieber putty (OpenSource) und verbinde Dich über ssh an den RasPi
2. mit qx sagt Du fhem nur, das es ein Externes Programm aufrufen soll, mit den folgenden Parameter. Wenn Du debuggen willst, versucht man das Problem zu vereinfachen. Wenn Du also weist, was qx aufrufst, kannst Du ohne FHEM es auch von der Konsole Testen. Dazu must Du nur Wissen, WAS qx aufrufen soll. Da ich so etwas noch nicht in FHEM debugt habe, fällt mir (ungetestet) nur 2 Sachen ein:
a) Debuglevel erhöhen (verbose 5), siehe Doku
b) Anstatt qx die gleiche zeile mit print (oder log, siehe Doku) ausgeben.

Dann kannst Du mit copy&paste es schneller auf der Konsole Testen.

Verstanden in welche Richtung ich will?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

RpiEinOzean

Hallo zusammen,
habe mein "Problemchen" zwischenzeitlich gelöst.

Für solche Bastler wie ich es ja selbst bin möchte ich hier dann noch kurz schreiben was ich gemacht habe.

1.
sendEmail auf dem Raspi nachinstalliert.
sudo apt-get update
sudo apt-get install sendEmail libio-socket-ssl-perl libnet-ssleay-perl perl


Dann in der 99_myUtils noch folgende Unterroutine eingefügt:
######## DebianMail  Mail auf dem RPi versenden ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $attach = shift;
my $ret = "";
my $sender = "MailadressevomRASPI\@gmx.de";         
my $konto = "Kundennummer";         
my $passwrd = "123456789";                     
my $provider = "mail.gmx.net:587";     
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";
Log 1, "sendEmail Anhang: $attach";;

$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -a '$attach' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=yes -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g;    # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}


Noch einmal direkt auf dem Raspi:
sudo apt-get install mailutils

Funktion aufrufen mit z.B. :
define Sonstiges at *01:00:00 {\
DebianMail('email@email.domain','Subject','Text','Anhang');;\

Funktioniert bei mir sehr gut.
Danke für die Antworten, Anregungen @Wernieman @pv_is
}