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($mboxSORTARRIVAL1SE_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+1FT_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  Vyřešeno

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