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í

. 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.