Emails mit PHP auslesen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Emails mit PHP auslesen

    Hi zusammen,

    Ich habe mir folgenden Code zusammengeschustert:

    Quellcode

    1. <?php
    2. //Verbindung zum POP3 Server wird aufgebaut.
    3. $imap = imap_open ("{mail.orczak.de/pop3:110}INBOX", "web2p2", "2legalize");
    4. //Empfänger wird ausgelesen.
    5. $info = imap_fetch_overview($imap, "3");
    6. foreach ($info as $msg)
    7. {
    8. }
    9. //Body der Email wird ausgelesen.
    10. $message = imap_body($imap, "3");
    11. //Die Anzahl der neuen Nachrichten wird ausgelesen.
    12. $check = imap_mailboxmsginfo ($imap);
    13. $newmails = $check->Recent;
    14. //Nummer wird aus dem Empfänger extrahiert.
    15. $text = $msg->to;
    16. $needle = strpos($text, '@');
    17. $newnumber = substr($text, 0,$needle);
    18. //Verbindung zur Mailbox wird geschlossen.
    19. imap_close($imap);
    Alles anzeigen

    Was ich damit mache ist wohl selbsterklärend.

    Mein Problem:

    Derzeit gebe ich mit der Zeile $info = imap_fetch_overview($imap, "3"); ja an aus welcher Nachricht ich das auslesen möchte. Und da fällt mir nix ein. ich möchte das dies nicht festgelegt ist sondern Variabel passiert je nachdem wieviele neue Nachrichten da sind, so oft soll er die "Schleife(??) durchlaufen" ...

    Hier was bei all dem rauskommen soll:

    PHP Seite connected zu Email Server, extrahiert beginnend bei der ersten neuen Nachricht den Empfänger und die Nachricht, speichert diese Rückgaben in eine Variable und anschließend werden diese dann in eine MySQL geschrieben. Das Script wird so oft durchlaufen bis alle neuen Nachrichten so behandelt wurden. Anschließend werden alle behandelten Nachrichten als gelesen markiert.

    Ich habe sogar schon die Zahl der neuen Nachrichten (siehe Code) ... mir fehlt nur noch das Verständnis für de Logik der Schleife denke ich ...

    Danke vorab,
    Matthias
    Das Leben ist binär - du bist eine 1, oder eine 0
  • Ich würde es so machen:

    Quellcode

    1. //Verbindung zum POP3 Server wird aufgebaut.
    2. $imap = imap_open ("{mail.orczak.de/pop3:110}INBOX", "web2p2", "2legalize");
    3. //Die Anzahl der neuen Nachrichten wird ausgelesen.
    4. $check = imap_mailboxmsginfo ($imap);
    5. $newmails = $check->Recent;
    6. // Counter definierung
    7. $i = 1;
    8. While ($i <= $newmails) {
    9. //Empfänger wird ausgelesen.
    10. $info = imap_fetch_overview($imap, $i);
    11. foreach ($info as $msg)
    12. {
    13. }
    14. //Body der Email wird ausgelesen.
    15. $message = imap_body($imap, $i);
    16. //Nummer wird aus dem Empfänger extrahiert.
    17. $text = $msg->to;
    18. $needle = strpos($text, '@');
    19. $newnumber = substr($text, 0,$needle);
    20. $i = $i++
    21. }
    22. //Verbindung zur Mailbox wird geschlossen.
    23. imap_close($imap);
    Alles anzeigen


    Wobei ich nicht weiß ob es so richtig ist, bin nicht so der PHP Profi ^^ Würde es aber zumindestens im Ansatz so probieren.

    Muss halt theoretisch für jede Mail dann noch in die While schleife der Mysql Eintrag rein.
  • Hi!

    Okay, Code steht und funtkioniert - Danke für die Hilfe :)

    Quellcode

    1. <?php
    2. $imap = imap_open ("{mail.orczak.de/pop3:110}INBOX", "web2p2", "geändert");
    3. $check = imap_mailboxmsginfo ($imap);
    4. $newmails = $check->Recent;
    5. for($count = 1; $count <= $newmails; $count++)
    6. {
    7. $info = imap_fetch_overview($imap, $count);
    8. foreach ($info as $msg)
    9. {
    10. }
    11. $message = imap_body($imap, $count);
    12. $text = $msg->to;
    13. $needle = strpos($text, '@');
    14. $newnumber = substr($text, 0,$needle);
    15. echo $message;
    16. echo $newnumber;
    17. echo $newmails;
    18. }
    19. imap_close ($imap);
    20. ?>
    Alles anzeigen
    Das Leben ist binär - du bist eine 1, oder eine 0