+ Antworten
Seite 2 von 4 ErsteErste 1 2 3 4 LetzteLetzte
Ergebnis 11 bis 20 von 35
  1. #11
    Registriert seit
    Jan 2007
    Ort
    Vancouver, BC, Canada
    Beiträge
    15

    @guyabano

    Ich bastele Dir ein Workaround.

    Richte Dich am Besten schon einmal auf die Installation von php_curl.dll (ins IPS-Verzeichnis) sowie libeay32.dll und ssleay32.dll (aus OpenSSL, ins \Windows\system32-Verzeichnis) ein.
    Wenn man es mir gestattet, würde ich die entsprechenden Packages auch hier uploaden.

  2. #12
    Registriert seit
    Jan 2007
    Ort
    Vancouver, BC, Canada
    Beiträge
    15

    GMail-Version (Google Mail)

    Beschreibung: Das Script ruft von Google Mail (GMail) die Mailübersicht ab und gibt die abgerufenen Informationen per TTS (Text to Speech) aus.

    Einschränkung: Das Script verzichtet darauf, den vollständigen Inhalt einer Mail abzurufen. Stattdessen liest es nur die "Preview" vor, die auch GMail auf der Übersicht anzeigen würde. Diese Einschränkung habe ich vorgenommen, damit die Performance nicht unnötig leidet. Wenn gewünscht, würde ich noch eine Alternative zum vollständigen Abruf des Mailtextes veröffentlichen.

    1. Installation:

    Lustiges Dateisammeln. Zunächst benötigen wir:

    php_curl.dll - die Curl-Extension für PHP (Tipp: liegt z. B. bei der Contronics-Studio-Version dabei, falls die noch jemand rumzuliegen hat)

    libeay32.dll und ssleay32.dll - diese Dateien gehören zu OpenSSL, bitte mal von hier die Datei openssl-0.9.8a.win32.zip downloaden und die beiden Bibliotheken entpacken.
    Sie gehören nach \Windows\system32 (abhängig von Windows-Version).

    libgmailer - nette Menschen haben diese Bibliothek gebastelt und unter freier Lizenz der Webgemeinde zur Verfügung gestellt. Download hier.
    Diese ausgepackte Datei libgmailer.php gehört in das IP-SYMCON/scripts/ - Verzeichnis.

    *schwitz*

    So... nun noch ein wenig an der PHP.INI aus dem IP-SYMCON-Hauptverzeichnis herumfuschen.

    extension_dir = "C:\Programme\IP-SYMCON\"
    extension = "php_curl.dll"


    ^^ Diese Einträge müssten hinzugefügt werden, i. d. R. wird die zweite Zeile genügen, falls ihr schon eine Extension eingebunden habt.

    2. Hoffen und warten:

    Nun ist es an der Zeit, IP-SYMCON neu zu starten. Sollten beim Start keine Fehlermeldungen (insbesondere auf OpenSSL-DLLs bezogen) zu sehen sein, habt ihr verdammtes Glück gehabt. Die Curl-Bibliothek und OpenSSL sollten nun funktionieren - damit ist der Weg frei zur Nutzung von GMail über HTTP.

    Sollte letzter Schritt Fehlermeldungen hervorbringen, so gibt es wahrscheinlich mit Curl oder OpenSSL Probleme.
    Wenn ihr nun den Schrei eurer Frau aus der Küche wahrnehmt: "DAS VERDAMMTE LICHT IN DER KÜCHE GEHT NICHT MEHR!!! WAS HAST DU SCHON WIEDER GEMACHT?!?!?!" solltet ihr euch beeilen, den Schritt 1 noch einmal durchzugehen, bei weiterem Ausbleiben eines Erfolges eure Fehlermeldung hier posten.
    Ansonsten geht es zu Schritt...

    3. Script erstellen und Folgendes einfügen:

    PHP-Code:
    <?php
    // Abwandlung "Mails abrufen und vorlesen lassen" für IP-SYMCON
    // von GreenT, mit OpenSSL/Curl und libgmailer
    // Support: http://www.ipsymcon.de/forum/showthread.php?t=2979
    // v.2007-03-08/10:09


    /////// Benutzeroptionen /////////////////
    $name "";                     // Benutzername
    $pwd "";                     // Kennwort
    $tz "0";                              // Zeitzone (Unterschied zur GMT)

    /////// Sprachausgabe ///////////////////
    $instance_id 47164;                     // Instance ID der TTS-Instanz
    $tell_mailcount true;                // Anzahl neuer Nachrichten ansagen
    $tell_quota     true;                // Speichergröße ansagen
    $tell_content   true;                // Inhalt der Mails vorlesen


    /////// Variablen ///////////////////////
    $unread_set   false;                 // Anzahl der ungelesenen Nachrichten
    $imread_var   "Mails.Unread";        // ...und in welche IPS-Variable?
    $quota_set    false;                 // zur Verfügung stehender Speicher
    $quota_var    "Mails.Quota";         // ...und in welche IPS-Variable?

    function html2txt($document){  // Funktion zum Entfernen von HTML
    $search = array('@<script[^>]*?>.*?</script>@si',  // javascript
                   
    '@<[\/\!]*?[^<>]*?>@si',            // HTML tags
                   
    '@<style[^>]*?>.*?</style>@siU',    // style tags
                   
    '@<![\s\S]*?--[ \t\n\r]*>@'        //  multi-line comments
    );
    $text preg_replace($search''$document);
    return 
    $text;
    }

    require(
    "libgmailer.php"); // Bibliothek muss in scripts/ liegen

       
    $gm = new GMailer();
       
    $gm->setLoginInfo($name$pwd$tz);


       if (
    $gm->connect()) {  // Verbinden
          
    $gm->fetchBox(GM_QUERY"is:unread"0); // nur ungelesene Mails
          
    $snapshot $gm->getSnapshot(GM_STANDARD);
          if (
    $snapshot) {

            
    $mails_gesamt $snapshot->box_total// Anzahl der ungelesenen Nachrichten
            
    $quota        $snapshot->quota_tot// Restspeicher
            

             
    $m 0;
             foreach (
    $snapshot->box as $i) {
             
                
    $no      $m+1;

                
    $sender  $snapshot->box[$m]['sender']."\n";
                
    $sender  html2txt($sender);
                
    $sender  utf8_decode($sender);
                
                
    $date    $snapshot->box[$m]['long_date']."\n";
                
    $date    html2txt($date);
                
    $date    utf8_decode($date);

                
    $subject $snapshot->box[$m]['subj']."\n";
                
    $subject html2txt($subject);
                
    $subject utf8_decode($subject);

                
    $content $snapshot->box[$m]['snippet']."\n";
                
    $content html2txt($content);
                
    $content utf8_decode($content);
                
                
    $tell_content_tmp "Nachricht Nummer ".$no." von ".$sender.". Betreff: ".$subject." vom ".$date.".";
                
    $tell_content_tmp .= "Inhalt: ".$content.".";

              
    $m++;
            }

            
    $say "";
            
            if (
    $tell_mailcount == true){
                
    $say  .= " Sie haben ".$mails_gesamt." neue Nachrichten.";
            }
            
            if (
    $tell_quota     == true){
                
    $say .= " Ihnen stehen noch ".$quota." Megabytes Speicher zur Verfügung.";
            }

            if (
    $tell_content == true){
                
    $say .= " Nachrichten folgen. ";
                
    $say .= $tell_content_tmp;
            }
            
            if (
    $unread_set == true){
              
    SetValueInteger($unread_varintval($mails_gesamt));
            }

            if (
    $quota_set == true){
              
    SetValueInteger($quota_varintval($quota));
            }

            
    TTS_Speak ($instance_id,  $say);

          }
           
    $gm->disconnect();
       }



    ?>
    Geändert von GreenT (08.03.07 um 16:49 Uhr) Grund: Kommentar zu "$quota_set = false;" korrigiert

  3. #13
    Registriert seit
    Jul 2005
    Ort
    Schwanewede/Niedersachsen
    Beiträge
    1,845

    Zitat Zitat von GreenT Beitrag anzeigen
    @Horst

    Folgende Zeile

    PHP-Code:
    $prefix ""
    einfügen nach Zeile 24:

    PHP-Code:
    function get_part($stream$msg_number$mime_type$structure false$part_number false)

    Dann sollte die Warnung nicht mehr ausgegeben werden.

    Danke GreenT,

    hat geklappt.
    Gruss
    Horst

    IP-Symcon 5.0 IPS-868, FS20, HM, HUE, Plugwise

  4. #14
    Registriert seit
    Jan 2007
    Ort
    Vancouver, BC, Canada
    Beiträge
    15

    Fertig!



    Wenn großer Bedarf besteht, könnte ich auch in Sachen Mailversand etwas posten zwecks e-Mail-Benachrichtigung etc.
    Geändert von GreenT (08.03.07 um 11:06 Uhr)

  5. #15
    Registriert seit
    Nov 2005
    Beiträge
    585

    Hallo,

    bin an dem Script auch sehr interessiert und habe es mal ausprobiert.
    Bekomme aber folgende Fehlermeldung.

    <b>Parse error</b>: parse error, unexpected '.' in <b>C:\Programme\IP-SYMCON\scripts\.currentscript</b> on line <b>83</b><br />

    was ist da falsch ?

    cu uwe

  6. #16
    Registriert seit
    Jan 2007
    Ort
    Vancouver, BC, Canada
    Beiträge
    15

    @Uwe

    Der Fehler ist ein Tippfehler in besagter Zeile und sollte im aktualisierten ersten Post dieses Threads behoben sein.

    Statt

    PHP-Code:
    =. 
    muss es heißen

    PHP-Code:
    .= 

  7. #17
    Registriert seit
    Nov 2005
    Ort
    Luxemburg
    Beiträge
    2,733

    Da bleibt mir doch glatt die Kinnlade offen stehen !

    Das Skript ist fabelhaft, nur habe ich es ein wenig modifiziert. Ich habe das TTS Speak rausgeschmissen, brauch ich nicht.
    Ich will nur, dass alle Meldungen mir nachher in einem String zu verfügung stehen so dass ich das einfach im Designer in einem Memo-Feld ausgeben kann!

    Kann ich dieses Skript nun auch jetzt irgendwie mit normalen POP3 Email accounts benutzen? Was muss da geändert werden?

    Sorry, aber auf dem gebiet bin ich nun wirklich ein N00b !

    mfG Franz



    11x HMS TF - 1x HMS T - 3x FHZ WLAN - 11x FHT80+TF - 4x FS20RST EcoRoll - 1x FS20SIG - 1x Comfort Comfort-Programmiergerät CRSZ-00/01 - 1x USB PC-Schnittstelle CKOZ-00/03 - 3x Dimmer CDAU-01/02 - 7x BIN 230VAC Eingang CBEU-02/01 - 6x Schaltaktor CSAU-01/01 - 1x Analog-Aktor 1-10V CAAE-01/02 - 5x Wandsender CTAA-02/02

  8. #18
    Registriert seit
    Nov 2005
    Beiträge
    585

    Danke für die schnelle Hilfe. Klappt jetzt super.

    cu uwe

  9. #19
    Registriert seit
    Jan 2007
    Ort
    Vancouver, BC, Canada
    Beiträge
    15

    Zitat Zitat von guyabano Beitrag anzeigen
    Kann ich dieses Skript nun auch jetzt irgendwie mit normalen POP3 Email accounts benutzen? Was muss da geändert werden?
    Leider nein. Es ist eine "Spezialanfertigung" für Dich, weil Du insbesondere nach GMail gefragt hattest und funktioniert auch nur mit GMail.
    "Normale" POP3-Accounts via SSL werden seitens der von IPS verwendeten Version von PHP im Moment nicht unterstützt. Sobald aber IPS auf die aktuelle PHP-Branch "umsteigt", werde ich die erste Version des Skripts entsprechend modifizieren.
    Die GMail-Version funktioniert übrigens auch hinter Firewalls und mit Proxy-Servern

  10. #20
    Registriert seit
    Nov 2005
    Ort
    Luxemburg
    Beiträge
    2,733

    Ach, ist schon ok ! Das ist ein super Skript. Für mein normales POP3 Account kann ich ja weiterhin mein altes Script weiter benutzen.

    Auf jeden Fall danke ! 12 Posts nur, doch von mir hast du jetzt schon ein grosses Lob !

    mfG Franz



    11x HMS TF - 1x HMS T - 3x FHZ WLAN - 11x FHT80+TF - 4x FS20RST EcoRoll - 1x FS20SIG - 1x Comfort Comfort-Programmiergerät CRSZ-00/01 - 1x USB PC-Schnittstelle CKOZ-00/03 - 3x Dimmer CDAU-01/02 - 7x BIN 230VAC Eingang CBEU-02/01 - 6x Schaltaktor CSAU-01/01 - 1x Analog-Aktor 1-10V CAAE-01/02 - 5x Wandsender CTAA-02/02