PHP Email Account mit PHP auslesen

son gohan

Erfahrenes Mitglied
Hallo,

auf welche Weise kann man am besten auf sein Emailpostfach mit PHP zugreifen?

Ich moechte gerne so schnell wie moeglich neue Emails an ein PHP Script gesendet bekommen, beziehungsweise kann ich mit Javascript jede Sekunde eine Abfrage an irgend eine Adresse programmieren.

Ich weis aber noch nicht welche Variante man am besten benutzen soll.

Ich habe auch nur ein normales Webspace Packet mit Cpanel und kein eigenen Webserver wo ich irgendwelche Einstellungen aendern kann.

Werr kann mir da eine Loesung empfehlen?
 
Das PHP Script soll die Emails aus mein Email Account lesen koennen, damit ich dann verschiedene Sachen mit den Emails machen kann, ich will im Prinzip den Text aus den Emails in meiner Datenbank speichern fuer weiteren Gebrauch.

Ich weis jetzt nicht auf welche Weise man mit PHP das am besten macht. Es sollte aufjedenfall die schnellste Variante sein, so dass die Emails am besten Zeitgleich bei meinem PHP Script ankommen. Geht sowas?
 
Also in meinem Fall brauche ich das nur in Text Form.
Ist das moeglich mit PHP die Email in quasi Echtzeit zu bekommen?
Wie macht man das am besten?
 
Ich hab dir grade geschrieben, dass das einfach so mit PHP nicht geht :rolleyes:
Und außerdem ignorierst du eine Frage schon zum zweiten Mal...
 
Ich habe eine Emailadresse zu meiner Domain, ich weis nicht ob man das ale eigenen Mailserver bezeichnen kann.
Eine Loesung wie man auf ein Gmail Email Account zugreifen kann wuerde mir aber auch reichen.
Ich habe jetzt einige verschiedene Beispiele gesehen wie sowas mit PHP und einem sogenanten imap moeglich sein soll, aber habe da noch kein Script zum laufen gebracht.
 
Also wenn es irgend ein Programm gibt mit dem man Emails auch automatisch auf dem Computer speichern kann, waere das auch eine geeignete Loesung fuer mich. dann brauche ich auch nicht viel mit PHP was zu neues zu bauen.
 
Wenn du wirklich nur die E-Mails einfach lokal auf dein Rechner speichern willst und diese nicht weiterverarbeiten willst, dann wäre die Lösung ein E-Mail Client.
Wie z.B. Outlook oder Thunderbird.
 
Hier ich habe das jetzt mit imap und PHP gemacht, wer will kann den Code kopieren, habe ich in google gefunden:

PHP:
<?php

function readMail() {



    $dns = "{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX";
    $email = "lkm@gmail.com";
    $password = "AkD";


    $imap = imap_open($dns,$email,$password ) or die("Cannot Connect ".imap_last_error());
    if ($imap) {

        $numMessages = imap_num_msg($imap);
for ($i = $numMessages; $i > ($numMessages - 20); $i--)
{
    $header = imap_header($imap, $i);

    $fromInfo = $header->from[0];
    $replyInfo = $header->reply_to[0];

    $details = array(
        "fromAddr" => (isset($fromInfo->mailbox) && isset($fromInfo->host))
            ? $fromInfo->mailbox . "@" . $fromInfo->host : "",
        "fromName" => (isset($fromInfo->personal))
            ? $fromInfo->personal : "",
        "replyAddr" => (isset($replyInfo->mailbox) && isset($replyInfo->host))
            ? $replyInfo->mailbox . "@" . $replyInfo->host : "",
        "replyName" => (isset($replyTo->personal))
            ? $replyto->personal : "",
        "subject" => (isset($header->subject))
            ? $header->subject : "",
        "udate" => (isset($header->udate))
            ? $header->udate : ""
    );

    $uid = imap_uid($imap, $i);

    //if($details["fromAddr"]=="kuc2n@yahoo.de")
    {
    echo "<ul>";
    echo "<li><strong>From:</strong>" . $details["fromName"];
    echo " " . $details["fromAddr"] . "</li>";
    echo "<li><strong>Subject:</strong> " . $details["subject"] . "</li>";
    echo '<li><a href="GmailReader.php?uid=' . $uid . '&func=read">Read</a>';
    echo " | ";
    echo '<a href="GmailReader.php?uid=' . $uid . '&func=delete">Delete</a></li>';
    echo "</ul>";
    }
}


if(isset($_GET['uid']))
{
  
   echo getBody($_GET['uid'], $imap);
}

        imap_close($openmail);
      
    } else {

        echo "Failed reading messages!!";

    }

}

function getBody($uid, $imap) {
    $body = get_part($imap, $uid, "TEXT/HTML");
    // if HTML body is empty, try getting text body
    if ($body == "") {
        $body = get_part($imap, $uid, "TEXT/PLAIN");
    }
    return $body;
}

function get_part($imap, $uid, $mimetype, $structure = false, $partNumber = false) {
    if (!$structure) {
           $structure = imap_fetchstructure($imap, $uid, FT_UID);
    }
    if ($structure) {
        if ($mimetype == get_mime_type($structure)) {
            if (!$partNumber) {
                $partNumber = 1;
            }
            $text = imap_fetchbody($imap, $uid, $partNumber, FT_UID);
            switch ($structure->encoding) {
                case 3: return imap_base64($text);
                case 4: return imap_qprint($text);
                default: return $text;
           }
       }

        // multipart
        if ($structure->type == 1) {
            foreach ($structure->parts as $index => $subStruct) {
                $prefix = "";
                if ($partNumber) {
                    $prefix = $partNumber . ".";
                }
                $data = get_part($imap, $uid, $mimetype, $subStruct, $prefix . ($index + 1));
                if ($data) {
                    return $data;
                }
            }
        }
    }
    return false;
}

function get_mime_type($structure) {
    $primaryMimetype = array("TEXT", "MULTIPART", "MESSAGE", "APPLICATION", "AUDIO", "IMAGE", "VIDEO", "OTHER");

    if ($structure->subtype) {
       return $primaryMimetype[(int)$structure->type] . "/" . $structure->subtype;
    }
    return "TEXT/PLAIN";
}
readMail();

?>
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück