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

    Standard e-Mails vom Server abrufen (POP3/GMail) und vorlesen per TTS

    GMail-Version weiter unten im Thread

    Liebe Leidensgenossen,

    ein solches Script war vor einiger Zeit mal hier im Forum erfragt worden - ich habe mir eines zusammengebastelt und möchte es euch nicht vorenthalten.

    Zur Nutzug wird das IMAP-Modul (DLL) für PHP benötigt, eine Anleitung zur Installation gibt es im Forum.

    Änderung: Fehler in alter Zeile 83 ($nachricht_tell mit Inhalt versehen) behoben; Fix von H-MAN für bestimmte Mailserver hinzugefügt; $prefix mit Startwert versehen

    PHP-Code:
    <?
    /*
    ******************************************************
    e-Mails vom Server abrufen (POP3) und vorlesen per TTS
    ******************************************************
    File     : emailtts.ips.php
    Trigger  : none
    */



    // Funktionen zum Auslesen eines bestimmten MIME-Types

    function get_mime_type(&$structure)
    {
        
    $primary_mime_type = array("TEXT""MULTIPART""MESSAGE""APPLICATION""AUDIO""IMAGE""VIDEO""OTHER");
        if (
    $structure->subtype) {
            return 
    $primary_mime_type[(int) $structure->type] . '/' $structure->subtype;
        }
        return 
    "TEXT/PLAIN";
    }

    function 
    get_part($stream$msg_number$mime_type$structure false$part_number false)
    {
    $prefix "";
        if (!
    $structure) {
            
    $structure imap_fetchstructure($stream$msg_number);
        }
        if (
    $structure) {
            if (
    $mime_type == get_mime_type($structure)) {
                if (!
    $part_number) {
                    
    $part_number "1";
                }
                
    $text imap_fetchbody($stream$msg_number$part_number);
                if (
    $structure->encoding == 3) {
                    return 
    imap_base64($text);
                } else if (
    $structure->encoding == 4) {
                    return 
    imap_qprint($text);
                } else {
                    return 
    $text;
                }
            }
            if(
    $structure->type == 1/* multipart */
            
    {
                while (list(
    $index$sub_structure) = each($structure->parts)) {
                    if (
    $part_number) {
                        
    $prefix $part_number '.';
                    }
                    
    $data get_part($stream$msg_number$mime_type$sub_structure$prefix . ($index 1));
                    if (
    $data) {
                        return 
    $data;
                    }
                }
            }
        }
        return 
    false;
    }




    // hier Script mit den Benutzerdaten des POP3-Servers konfigurieren
    $hostname "pop3.web.de";
    $username "sagichnicht";
    $kennwort "findsraus";

    $mailbox imap_open("{".$hostname."}"$username$kennwort);
    // $mailbox = imap_open ("{".$hostname.":110/pop3}INBOX", $username, $kennwort); // für GMX und andere bekannte Freemailer


    $mails imap_fetch_overview($mailbox,"1:*"FT_UID); // Holt eine Übersicht aller Emails
    $nachricht_tell "";

    $size=count($mails); // Anzahl der Nachrichten
    $cmsg 0;           // Zur Ausgabe einer fortlaufenden Nummer

    for ($i=$size-1$i>=0$i--) { // für alle vorhandenen Mails durchlaufen

        
    $cmsg++;
        
    $value $mails[$i];
        
        
    $mail get_part($mailbox$value->msgno"TEXT/PLAIN"); // aus der Nachricht den Plaintext holen

        // Vorlesetext zusammenbasteln....
        
    $nachricht_tell .= "Nachricht Nummer ".$cmsg." von ".$value->from.". Betreff: ".$value->subject.".";
        
    $nachricht_tell .= "Inhalt: ".$mail.".";
        
    }

    imap_close($mailbox); // Verbindung zum POP3-Server beenden

    TTS_Speak(47164,  $nachricht_tell); // Vorlesen per TTS - Instance ID anpassen!!!


    ?>
    Geändert von GreenT (08.03.07 um 13:12 Uhr) Grund: Fehler beseitigt; $prefix mit Startwert

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

    schön wärs, wenn man endlich mal ein Skript hätte, mit dem man auch SSL secure Server POP3 emails abfragen könnte, z.B. GMAIL. Aber bisher habe ich hier noch nichts brauchbares/funktionierendes gefunden.

    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

  3. #3
    Registriert seit
    Sep 2005
    Beiträge
    1,416

    Ich find's gut, wenn funktioniert. Werde es heute abend wenn Zeit ist gleich mal testen.

    Grüße,
    Doc

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

    @guyabano

    Tut mir leid, dass Du Google Mail nicht mit dem Script verwenden kannst. Ursächlich ist ein Fehler in PHP's IMAP Extension.
    http://bugs.php.net/bug.php?id=36496&edit=1

    Der Fehler ist ganz frisch behoben worden. Inwiefern sich aber die Snapshots von PHP mit IPS nutzen lassen, entzieht sich meiner Kenntnis.
    Vielleicht kann sich dazu einer melden, der IPS denkt und lebt?

    Marcus
    Geändert von GreenT (07.03.07 um 20:38 Uhr)

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

    @GreenT (Marcus)


    Ich bekomme folgende Fehlermeldungen:

    <br />
    <b>Warning</b>: imap_open() [<a href='function.imap-open'>function.imap-open</a>]: Couldn't open stream {pop.gmx.net} in <b>C:\Programme\IP-SYMCON\scripts\.currentscript</b> on line <b>66</b><br />
    <br />
    <b>Warning</b>: imap_fetch_overview(): supplied argument is not a valid imap resource in <b>C:\Programme\IP-SYMCON\scripts\.currentscript</b> on line <b>69</b><br />
    <br />
    <b>Notice</b>: Trying to get property of non-object in <b>C:\Programme\IP-SYMCON\scripts\.currentscript</b> on line <b>80</b><br />
    <br />
    <b>Warning</b>: imap_fetchstructure(): supplied argument is not a valid imap resource in <b>C:\Programme\IP-SYMCON\scripts\.currentscript</b> on line <b>26</b><br />
    <br />
    <b>Notice</b>: Trying to get property of non-object in <b>C:\Programme\IP-SYMCON\scripts\.currentscript</b> on line <b>83</b><br />
    <br />
    <b>Notice</b>: Trying to get property of non-object in <b>C:\Programme\IP-SYMCON\scripts\.currentscript</b> on line <b>83</b><br />
    <br />
    <b>Warning</b>: imap_close(): supplied argument is not a valid imap resource in <b>C:\Programme\IP-SYMCON\scripts\.currentscript</b> on line <b>88</b><br />
    <br />
    <b>Notice</b>: Unknown: [CLOSED] IMAP connection broken (server response) (errflg=2) in <b>Unknown</b> on line <b>0</b><br />



    Kannst Du mir einen Tip geben woran es liegen könnte oder was ich falsch mache ?
    Gruss
    Horst

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

  6. #6
    Registriert seit
    Jan 2006
    Ort
    Kirchlengern (OWL)
    Beiträge
    71

    Versuch es mal mit der Zeile, anstelle des Originals:
    PHP-Code:
    $mailbox imap_open ("{".$hostname.":110/pop3}INBOX"$username$kennwort); 
    Shit happens!!

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

    Zitat Zitat von GreenT Beitrag anzeigen
    @guyabano

    Tut mir leid, dass Du Google Mail nicht mit dem Script verwenden kannst. Ursächlich ist ein Fehler in PHP's IMAP Extension.
    http://bugs.php.net/bug.php?id=36496&edit=1

    Der Fehler ist ganz frisch behoben worden. Inwiefern sich aber die Snapshots von PHP mit IPS nutzen lassen, entzieht sich meiner Kenntnis.
    Vielleicht kann sich dazu einer melden, der IPS denkt und lebt?

    Marcus
    Ah ja? Die Bugs sind behoben? Hmm, auch in der von IPS benutzen version? Das wäre ja zu schön ! Ich habe das Skript noch immer, ich werde es mal testen, sobald ich mich 5 Minuten vor dem PC langweile

    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. #8
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,414

    Klappt nicht. Das aktuelle PHP Branch ist 5.2.x. IPS läuft z.Z. nur mit 5.1.x.

    paresy

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

    Zitat Zitat von H-MAN Beitrag anzeigen
    Versuch es mal mit der Zeile, anstelle des Originals:
    PHP-Code:
    $mailbox imap_open ("{".$hostname.":110/pop3}INBOX"$username$kennwort); 
    Danke H-MAN,

    hat geklappt. Jetzt bekomme ich nur noch diese Fehlermeldung:

    <br />
    <b>Notice</b>: Undefined variable: prefix in <b>C:\Programme\IP-SYMCON\scripts\.currentscript</b> on line <b>48</b><br />
    <br />
    <b>Notice</b>: Undefined variable: prefix in <b>C:\Programme\IP-SYMCON\scripts\.currentscript</b> on line <b>48</b><br />

    Die Maschine hat mir auch eine Nachricht vorgelesen mehr waren im Augenblick nicht vorhanden. Allerdings wurde mir nicht die Nachrichtnummer und der Betreff genannt.

    Also falls Du nochmal helfen möchtest
    Gruss
    Horst

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

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

    @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.