Ankündigung

Einklappen
Keine Ankündigung bisher.

suche E-Mail Plugin

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #61
    Zitat von swiss Beitrag anzeigen
    Im funktionierenden Plugin wird der Absender (wird zur Autenzierung benötigt) wie folgt übergeben:

    Code:
    $smtp->datasend("From: $Absender\n") or return "Absender $Absender (Header-From) abgelehnt $!";
    Diese Zeile fehlt in den anderen beiden Plugins. Desshalb wird die Mail wohl vom Server abgelehnt
    Dieser Eintrag hat nichts mit der Authentifizierung zu tun, sondern nur mit dem Mail Header selbst. Die Ergänzung im Header hatte ich gewünscht, da sonst manche Mail Provider bei Empfang einer Nachricht ohne Absender im Header ein leeres "Von" Feld anzeigen (bei mir gmx.net).

    Ohne diese Zeile geht es grundsätzlich auch!

    Kommentar


      #62
      Zitat von lio123 Beitrag anzeigen
      Irgendwie denke ich, dass es am Trigger liegt?!
      Der Trigger ist vermutlich der richtige Ansatz. Es kommt vermutlich erst gar nicht zum Senden der Mail, da die Bedigung dafür nicht gegeben ist.

      Hast Du denn Deine eibga.conf gepflegt mit passenden DPTs?

      Wenn Du ein paar grundlegende perl Kenntnisste hast, dann pfleg doch einfach in Dein Skript eine log Ausgabe ein.
      z.B. in der "email_triggered_by_ga.pl" (Änderung Fett/rot markiert):
      Code:
      if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == "$value" && $plugin_info{$plugname."_".$trigger_ga} == 0) {
      [COLOR=Red][B]plugin_log($plugname, "Trigger erfolgt.");[/B][/COLOR]
      Und dann noch eine "else" Bedingung dazu:

      Code:
          return;    # keine Logausgabe 
          return "eMail von $Absender an $email_adress\ Betreff $email_subject gesendet: $email_text";     
           
          } [COLOR=Red][B]else {
              plugin_log($plugname, "Unbekannter Aufruf.");
              }[/B][/COLOR]
      In der log Datei siehst Du dann, ob der Trigger funktioniert oder nicht.

      Kommentar


        #63
        Hallo Zusammen, das Wiregate brauchte wohl die Nacht um darüber nachzudenken, ob es das Plugin nicht doch arbeiten lässt. Heute morgen erfolgte dann die Arbeitsaufnahme und funktioniert bisher ganz gut. Warum diese Verzögerung? Egal, hauptsache es funktioniert nun! Danke und Grüße, Lio

        Kommentar


          #64
          Hallo,

          habe mir nun Aufgrund des Posts von lio auch mal das Plugin installiert.
          Bekomme unten stehende Fehlermeldung bei zwei verschiedenen Emailkonten.
          Hat jemand einen Hinweis für mich wo hier der Fehler eventuell zu suchen ist?

          Danke!

          Gruß Plusch

          Code:
          Fehler beim verbinden zu mx.freenet.de:587 ; Net::SMTP::SSL: SSL connect  attempt failed with unknown errorerror:140770FC:SSL  routines:SSL23_GET_SERVER_HELLO:unknown protocol

          Kommentar


            #65
            Schuß ins Blaue bei freenet.de... Kann es sein das da gar kein SSL angeboten wird Du aber im Plugin SSL anforderst. Bin nur mal auf die schnelle die Konf.empfehlung von freenet.de durchgegangen und da sind IMHO keine Haken bzgl. SSL oder TLS gesetzt...

            Wie gesagt, auf die schnelle... aber vielleicht hilft's Dir...
            Cheers,
            Oliver

            Kommentar


              #66
              Danke für den Tipp. Laut dieser Seite sollte SSL funktionieren.
              Habe nun versucht libnet-smtp-ssl-perl neu zu installieren, bekomme aber nun folgende Fehlermeldung:

              W: GPG error: Index of / lenny/updates Release: The following signatures were invali d: KEYEXPIRED 1356982504 W: You may want to run apt-get update to correct these problems
              Gruß Plusch

              Kommentar


                #67
                Hallo zusammen,

                habe mich jetzt auch am email plugin versucht. die apt-get update meldung erhalte ich auch. laut anderen foren beiträgen hier soll diese ja zu vernachlässigen sein. aber.... ich habe noch ein ganz anderes problem. bei empfang einer ga wird das script zwar angestoßen, bricht aber mit einem fehler ab. meldung lautet auf:

                SASL Auth failed No such file or directory;Can't locate Authen/SASL.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/share/perl/5.10/Net/SMTP.pm line 117.

                Gibt es hierzu Ideen wo das Problem liegen könnte?

                Danke und Grüße!
                Mike

                Kommentar


                  #68
                  Ok. Lösung gefunden. Habe im Wiregate unter der root Anmeldung und dann unter Sonstiges -> Perl Module (CPAN) das Modul Authen::SASL installiert. War offenbar nicht vorhanden. Danach klappt es.

                  Kommentar


                    #69
                    So. neues Problem oder besser, neue Herausforderung ;-)

                    Ich plane eine Email Signalisierung bei geöffneten Fenstern während der Abwesenheit. Also wenn ein Fenster auf geht, dann Alarmierung. Folgendes existiert. Sammel GA Plugin zur Überwachung alle Fenster und Meldung an eine GA -> funktioniert. Anzeige in der CV ist korrekt.

                    Zweites Sammel GA Plugin prüft die GA aus dem ersten Sammel GA Script UND eine zweite GA für einen Alarmierungs Button in der CV. Damit soll erreicht werden, dass eine Alarmierung nur bei Aktiviertem Alarm Button ausgelöst wird. Ich will ja nicht bei jedem geöffneten Fenster eine Mail erhalten. Die GA aus dem zweiten Script wird dem Email Plugin Script mitgegeben. In der ETS Diagnose werden alle GAs korrekt erzeugt und via KNX übertragen. Nur das Email Plugin reagiert nicht. Keine Email. Setze ich eine Status GA eines Aktors in das Mail Plugin ein, dann kommt auch die Email. Frage. Gibt es einen Grund warum aus den Plugins heraus generierte GAs nicht durch das EMail Plugin berücksichtigt werden? Oder gibt es eine Alternative zur Steuerung der Email Benachrichtigung, so dass eine Aktive Überwachung gesteuert werden kann?

                    Danke im Voraus und Grüße,
                    Mike

                    Kommentar


                      #70
                      Zeig doch mal den Code, dann kann man besser folgen

                      Kommentar


                        #71
                        Hi daviid,

                        habe das Standard EMail Plugin nur Minimal angepasst. Code sieht wie folgt aus

                        Code:
                        #Plugin zum versenden von Emails beim Empfang eines definierten Werts auf einer definierten GA
                        #Mehrere Mails an einer GA sind derzeit nicht möglich! 
                        # - benoetigt Paket libnet-smtp-ssl-perl
                        # Aufbau moeglichst so, dass man unterhalb der Definitionen nichts aendern muss!
                        
                        my ($sec,$min,$hour,$day,$month,$yr19,@rest) = localtime(time);
                        my $hostname = `hostname`;
                        
                        ##################
                        ### DEFINITION ###
                        ##################
                        
                        my $Absender = 'WireGate '; # unbedingt anpassen, die Absenderadresse sollte gültig sein um Probleme zu vermeiden
                        my $username = 'xxx@gmx.de'; #Anpassen! Username fuer SMTP-Server
                        my $password = 'xxx'; #Anpassen! Passwort fuer SMTP-Server
                        my $mailserver='mail.gmx.net:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!
                        #my $mailserver='smtp.gmail.com:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!
                        
                        $plugin_info{$plugname.'_cycle'} = 3500;
                        
                        my @actionGA;
                        push @actionGA, { name => "Alarmanlage", email_adress => 'xxx@gmx.de', email_subject => "ALARM", email_text => "Alarmanlage hat um $hour:$min ausgelöst.", trigger_ga => "5/1/1", value => 1 };
                        #push @actionGA, { name => "test", email_adress => 'email@gmx.de', email_subject => "test2", email_text => "Test 2", trigger_ga => "1/1/1", value => 0 };
                        #push @actionGA, { name => "test", email_adress => 'email@gmx.de', email_subject => "test3", email_text => "Test 3", trigger_ga => "1/1/2", value => 1 };
                        
                        #######################
                        ### ENDE DEFINITION ###
                        #######################
                        
                        use Net::SMTP::SSL;
                        use MIME::Base64;
                        
                        foreach my $element (@actionGA) {
                        my $email_adress = $element->{email_adress};
                        my $email_subject = $element->{email_subject};
                        my $email_text = $element->{email_text};
                        my $trigger_ga = $element->{trigger_ga};
                        my $value = $element->{value};
                        
                        $plugin_subscribe{$trigger_ga}{$plugname} = 1;
                        
                        if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == "$value" ) {
                        plugin_log($plugname, "Trigger erfolgt.");
                        my $smtp = Net::SMTP::SSL->new($mailserver, Timeout => 10) or return "Fehler beim verbinden zu $mailserver $!; $@";
                        $smtp->auth($username,$password) or return "SASL Auth failed $!;$@"; # try SASL
                        $smtp->status() < 5 or return "Auth failed: $!; $@ ". $smtp->status();
                        $smtp->mail($Absender) or return "Absender $Absender abgelehnt $!";
                        $smtp->to(split(',',$email_adress)) or return "Empfaenger $email_adress abgelehnt $!"; 
                        $smtp->data() or return "Data failed $!";
                        $smtp->datasend("To: $email_adress\n") or return "Empfanger $email_adress (Header-To) abgelehnt $!";
                        $smtp->datasend("Subject: $email_subject\n") or return "Subject $email_subject abgelehnt $!";
                        $smtp->datasend("\n") or return "Data failed $!";
                        $smtp->datasend("$email_text\n") or return "Data failed $!";
                        $smtp->dataend() or return "Data failed $!";
                        $smtp->quit or return "Quit failed $!";
                        
                        return;# keine Logausgabe
                        return "eMail von $Absender an $email_adress\ Betreff $email_subject gesendet: $email_text";
                        
                        }
                        else {
                                plugin_log($plugname, "Unbekannter Aufruf.");
                                }
                        }
                        Nutze parallel noch das Logikprozessor Script zur Erfassung und Auswertung der Fenster Kontake und der Aktiven Alarmierung via CV. Das funzt auch soweit. Die GA 5/1/1 wird gesendet, sobald ein Fenster auf geht. Habe im Email Script auch das Logging aktiv, so dass erkennbar der Trigger ausgelöst wird. Nur wird keine Mail gesendet und ich stehe auf dem Schlauch woran es liegt und wo ich ggf. nach weiteren Mailproblemen suchen kann. Gibt es noch ein Logfile aus dem ggf. die Kommunikation mit dem Provider hervorgeht? Der private Mailversand via Outlook und verschlüsselter Übertragung klappt.
                        Die verwendete GA ist in der eibga.conf hinterlegt. WG wurde bereits durchgestartet. Test mit aktivem exim4 Dienst und ohne brachte keine Änderung. Wobei der Dienst wohl auch nicht benötigt wird (oder ist das ein Irrtum?)


                        Grüße,
                        Mike

                        Kommentar


                          #72
                          Jetzt funktioniert es. Habe das Logikprozessor Script gelöscht und seit dem klappt es. Warum auch immer. Fehler hatte das Logikprozessor Script im Log zwar keine aufgeführt, aber scheint reproduzierbar in Zusammenhang zu stehen. Warum ist mir allerdings ein Rätsel (??).

                          Grüße,
                          Mike

                          Kommentar


                            #73
                            Hallo,
                            ich habe das Script email_triggered_by_ga_once.pl weitgehend unverändert übernommen.

                            Nur, es passiert nichts und ich bekomme keine Fehlermeldung.
                            Ich habe mir dann mal "printfs" eingebaut unf festgestellt, daß das Script bis
                            Net::SMTP::SSL->new($mailserver, Timeout => 10) kommt, aber dort weder einen Fehler generiert noch drüber hinwegkommt. Kein Rückgabewert in der Script-Übersicht oder Fehler im Plugin-Log.
                            Ich habe sowohl einen GMX- als auch einen Gmail-Account getestet - kein Unterschied. Internetzugang ist vorhanden.
                            Desweiteren:
                            - nehme ich einen ungültigen Servernamen, erhalte ich "bad hostname"
                            - verwende ich einen blödsinnigen Port, erhalte ich "connection timeout"
                            - verwende ich port 587, erhalte ich "unknown protocol" (aus den vorhandenen Beiträgen ist mir nicht klar geworden, ob Port 587 überhaupt geht.)
                            Damit kann man einige Fehler wohl schon ausschließen.

                            Timeout 10 ist doch eigentlich schon zu groß, da das Script dann zwangsabgeschossen wird (sieht man das irgendwie?). Mit 5 bleibt es aber genauso hängen.
                            Gibt es noch irgendwelche Debuginformationen, die man sich angucken könnte?
                            Grüße, Manuel

                            Kommentar


                              #74
                              Ich habe das Script neu aufgesetzt, ohne beim alten abzugucken, leider wieder kein Erfolg.

                              Beim Aufruf "$smtp = Net::SMTP::SSL->new($mailserver, Timeout => 10)" bleibt er hängen und nach 60-120 Sekunden gibt es einen Timeout, der zum Neustart führt:
                              /usr/sbin/wiregated.pl: INFO
                              Thread eiblisten Caught TERM, exiting:TIMEOUT running PLUGIN SendEmailTrig.pl
                              *** reading config
                              connected to eibd local:/tmp/eib


                              Den (gmx) Mail Server kann ich anpingen und mittels "openssl s_client -connect mail.gmx.net:465 -debug" eine Verbindung aufbauen.

                              Kommentar


                                #75
                                Verwende ich das abgespeckte SMTP-eMail.pl, endet das Plugin wie gehabt zwangsweise bei Timeout.
                                Lasse ich das identische Script auf der Kommandozeile laufen, schickt es innerhalb von 2 Sekunden erfolgreich eine Email.
                                Warum dieser Unterschied?

                                Kommentar

                                Lädt...
                                X