Ankündigung

Einklappen
Keine Ankündigung bisher.

[LÖSUNG] e-Mail2sql bzw IMAP2sql

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • cyberholic
    hat ein Thema erstellt [LÖSUNG] e-Mail2sql bzw IMAP2sql.

    [LÖSUNG] e-Mail2sql bzw IMAP2sql

    Moin moin,
    was ich wollte war es, das ein Script ein IMAP Mail-Konto abruft und
    diese Mails in eine DB schreibt. Das bekomme ich mittels dieses
    scripts auch hin:
    Code:
    <?php
    
    require ("dbconfiguration.php");
    
    $Mailbox = "{imap.meinprovider.de:143/notls}INBOX";
    $Benutzername = "meinemail@endorphinum.de";
    $Passwort = "******";
    $MailboxPointer = imap_open($Mailbox, $Benutzername, $Passwort);
    if($MailboxPointer)
    {
    
        $Headers = imap_headers($MailboxPointer);
        
        $numEmails = sizeof($Headers);
        echo "You have $numEmails in your mailbox
    
    ";
    
        if($Headers != false)
        {
        for($i = 1; $i < $numEmails+1; $i++)
          {
          $mailHeader = @imap_headerinfo($MailboxPointer, $i);
          $from = $mailHeader->fromaddress;
          $toaddress = $mailHeader->toaddress;
          $senderaddress = $mailHeader->senderaddress;
          $subject = strip_tags($mailHeader->subject);
          $date = $mailHeader->date;
          echo "Email from $from, subject $subject, date $date -- $senderaddress
    ";
          $body = imap_body($MailboxPointer,$i);       
          // BODY auf 200 Zeichen trimmen
          //$body = trim(substr(imap_body($MailboxPointer, $i), 0, 220));
          echo $body;
          echo "
    
    ";
          
          //Datum aufsplitten
             list($dayName,$day,$month,$year,$time) = split(" ",$date); 
            $time = substr($time,0,8);
          //Monatsname in Zahl umformatieren
            switch($month){
                case("Jan"): $month = "01"; 
                case("Feb"): $month = "02";
                case("Mar"): $month = "03";
                case("Apr"): $month = "04"; 
                case("May"): $month = "05"; 
                case("Jun"): $month = "06"; 
                case("Jul"): $month = "07"; 
                case("Aug"): $month = "08"; 
                case("Sep"): $month = "09"; 
                case("Okt"): $month = "10"; 
                case("Nov"): $month = "11"; 
                case("Dec"): $month = "12"; 
            } 
            $date = $year ."-". $month ."-". $day . " ". $time;  
    
          // ----------------------------------------------- 
          // --------- ADD TO DB
          // ----------------------------------------------- 
          $userid = "1";
          $mmstext = $body;
    
            mysql_query("INSERT INTO mmsblog
                        (userid,datum,zeit,nachricht)
                        VALUES
                        ('$userid','$date','$time','$mmstext')
                        ");
        }
        imap_close($MailboxPointer);
    }
    else
    {
        echo"Keine Verbindung zum Mail-Postfach!";
    }
    ?>
    Jetzt stellt sich mir nur die Frage wie und wo ich die MIME Funktion
    zum abfragen von Bildern einbaue. In meine IF Schleife oder ganz
    woanders? Kann mir jemand vielleicht helfen?

    Beste Grüsse vom schwülen Hamburch,
    Carlos

  • cyberholic
    antwortet
    Antwort näher gekommen

    Moin moin,
    ich komme meiner Antwort langsam näher. Auch weil ich jetzt heraus
    gefunden habe das das MIME encoding von MMS Mails (via Handy)
    anders ist als eine normale Mail.

    Hängt das vom Provider ab, oder von der Einstellung des Clients;
    in diesem Fall vom Handy? Weiss das jemand?

    Ich bekomme mittlerweile das hier als Ergebnis:

    Code:
    SUB: =?UTF-8?B?MTowMDAw?=
    TO : mms@endorphinum.de
    ToOther : meine-handynummer@vodafone.de
    ToName Other :
    From : meine-handynummer@vodafone.de
    FromName :
    Maildate: 7-Jul-2007 22:36:16 +0200
    DAS ATTACHMENTE LAUTET:
    Das SUB (Mail-Betreff), habe ich mittels imap_utf8
    und UTF-8 decode umwandeln können.
    Allerdings finde ich jetzt nicht das Attachment.

    Was mich wundert, ist das das encoding des Betreffs,
    als auch des Anhangs (JPG-Bild) gleich sind, wie sich
    aus dem Mail-Heaer entnehmen lässt:
    Code:
    --a24d9939767d7:373
    Content-Type: text/plain;
    charset="UTF-8"
    Content-transfer-encoding: Base64
    SGFsbG8gYXVzIG9zdGVycw==
    
    --a24d9939767d7:373
    Content-Type: image/jpeg;
    name="=?UTF-8?B?QmlsZDAwMC5qcGc=?="
    Content-transfer-encoding: Base64
    Wäre super wenn mir da jemand helfen könnte.

    Ich probiere das ganze parallel mit dem IMAP script
    von Mitul Koradia aus, vielleicht kann das dann ja jemand
    gebrauchen um auch MMS' abzurufen.

    Seid herzlichst gegrüsst und ein schönes Wochenende,

    Carlos

    Einen Kommentar schreiben:


  • cyberholic
    antwortet
    Zitat von Zergling
    Und wo ist jetzt die Lösung?

    Übrigens:
    http://www.php-faq.de/q/q-terminologie-if.html
    *smile* das ist doch die erste Lösung - mir fehlt jetzt nur der zweite Schritt.
    Wenn Du im Netz mal nach danach suchst wie man mittels eMail oder MMS via
    Mobeiltelefon bloggen kann, wirst Du feststellen das es da nicht allzu viel gibt.

    Deswegen habe ich mich da rangesetzt und das ganze so einfach wie möglich
    gehalten. Jetzt möchte ich eigentlich nur noch die Option haben aus dem ganzen
    halt auch via MIME ein angehängtes JPG anzuzeigen.

    Weisst Du zufällig wie das gehen könnte? Theoretisch sehe ich eine MIME dekodierung
    die das Bild auf dem Server und parallen den Bildnamen in die Datenbank
    abspeichert. Nur in der Praxis scheitere ich derweil schon daran das Bild überhaupt
    anzeigen zu lassen

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Und wo ist jetzt die Lösung?

    Übrigens:
    http://www.php-faq.de/q/q-terminologie-if.html

    Einen Kommentar schreiben:

Lädt...
X