Stránka 1 z 1

Čtení emailu přes php

Napsal: 03 črc 2015 09:12
od rhsCZ
Zdravím všechny studoval jsem na internetu a zjistl jsem, že čtení emailu přes php je možné, ale potřebuju, aby mi php přečetl email z určité složky( takže připojení přes POP3 padá, ale když nad tím přemýšlím, tak nemusí být z určité složky), který je nejnovější a od určitého odesílatele. Co koukám na internetu většina lehčích skriptů je v OOP a mě se zrovna OOP nelíbí :D. Byl bych rád, kdyby mi nějaká dobrá duše s hodně zkušenostmi s php pomohla.

Re: Čtení emailu přes php

Napsal: 05 črc 2015 11:49
od CZechBoY
čau,
je to jednoduchý... cca na 20 řádků když nepotřebuješ nic extra :)
http://php.net/manual/en/function.imap-body.php

Re: Čtení emailu přes php

Napsal: 05 črc 2015 18:54
od rhsCZ
Jenže když já potřebuju vypsat nejnovější email od určitého odesílatele a nevim jak zjistim číslo emailu z inboxu a navíc do toho určitého mailu chodí i jné zprávy.

Re: Čtení emailu přes php

Napsal: 05 črc 2015 19:02
od Rutherther
Tak co třeba přečíst 10 nejnovějších a zjistit jejich odesílatele, to by mělo jít přes http://php.net/manual/en/function.imap-header.php

Re: Čtení emailu přes php

Napsal: 05 črc 2015 20:20
od rhsCZ
dobrý nápad, ale co když nebude mezi 10 nejnovějšími, ale dám příklad třeba 38 později třeba 55 atd. Pochopte chci aby to fungovalo perfektně.

Re: Čtení emailu přes php

Napsal: 05 črc 2015 21:21
od CZechBoY
Co kdyby sis prošel i ostatní funkce, popř. vygooglil něějakou část toho co chceš udělat? :)

Tohle jsem našel a používalo se to ke stáhnutí přílohy skladů od autokelly.

Kód: Vybrat vše

$email = 'data-z-autokelly@hosting.tld';
$email_heslo = 'mojesuperheslo';
$email_server = 'imap-50637.m37.wedos.net:143/novalidate-cert';

                $mbox = imap_open('{' . $email_server . '}', $email, $email_pwd) or die("can't connect: " . imap_last_error());
        $message = array("attachment" => array("type" => array("text","multipart","message","application","audio","image","video","other")));

        $e = imap_sort($mbox, SORTARRIVAL, 1, SE_UID, 'FROM "isak@autokelly.cz" SUBJECT "Auto Kelly - stav skladu" ');
        $i = 0;
        $fpos = 0;
        if(empty($e)) {
            $this->log->write('Žádný email na sklad');
            exit;
        }
            $structure = imap_fetchstructure($mbox, $e[0], FT_UID) or die(print_r(imap_last_error()));
            $parts = $structure->parts;

            for($i = 0; $i < count($parts); $i++) {
                $message["pid"][$i] = ($i);
                $part = $parts[$i];

                if($part->disposition == "attachment" || $part->disposition == "inline") {
                    $message["type"][$i] = $message["attachment"]["type"][$part->type] . "/" . strtolower($part->subtype);
                    $message["subtype"][$i] = strtolower($part->subtype);
                    $filename = $part->dparameters[0]->value;

                    $mege = "";
                    $data = "";
                    $mege = imap_fetchbody($mbox, $e[0], $fpos+1, FT_UID);
                    $fp = fopen($savedirpath . $filename, "w");
                    if(!$fp)
                        echo "fopen == false<br/>\n";
                    $data = $this->getdecodevalue($mege, $part->type);
                    fputs($fp, $data);
                    fclose($fp);
                    $fpos++;
                }
            }
        //imap_mail_move($mbox, $e[0], 'zpracovano', CP_UID);  // presunout po precteni do slozky 'zpracovano'
        imap_delete($mbox, $e[0], FT_UID);  // oznazit tento email ke smazani
        imap_expunge($mbox);  // smazat emaily oznacene ke smazani
        imap_close($mbox);
 

Re: Čtení emailu přes php

Napsal: 05 črc 2015 22:03
od rhsCZ
zkusim Experimentovat, kdyžtak zkusím použít google víc tak dík.