Čtení emailu přes php

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Zamčeno
Uživatelský avatar
rhsCZ
Level 4
Level 4
Příspěvky: 1400
Registrován: 02 čer 2013 12:03
Kontaktovat uživatele:

Čtení emailu přes php

Příspěvek 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.

„Zeptáš-li se, budeš 5 minut vypadat jako blbec. Nezeptáš-li se, budeš blbcem po celý život.“ - Čínské přísloví
„Mnozí z těch, co žijí, by zasluhovali smrt. A mnozí z těch, co zemřeli, by si zasloužili žít.“ - John Ronald Reuel Tolkien
„Je lepší být nenáviděn pro to, jaký jsi, než být milován pro to, co nejsi.“ - Kurt Cobain
https://rhscz.eu
https://github.com/rhsCZ
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Čtení emailu přes php

Příspěvek od CZechBoY »

čau,
je to jednoduchý... cca na 20 řádků když nepotřebuješ nic extra :)
http://php.net/manual/en/function.imap-body.php
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
rhsCZ
Level 4
Level 4
Příspěvky: 1400
Registrován: 02 čer 2013 12:03
Kontaktovat uživatele:

Re: Čtení emailu přes php

Příspěvek 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.

„Zeptáš-li se, budeš 5 minut vypadat jako blbec. Nezeptáš-li se, budeš blbcem po celý život.“ - Čínské přísloví
„Mnozí z těch, co žijí, by zasluhovali smrt. A mnozí z těch, co zemřeli, by si zasloužili žít.“ - John Ronald Reuel Tolkien
„Je lepší být nenáviděn pro to, jaký jsi, než být milován pro to, co nejsi.“ - Kurt Cobain
https://rhscz.eu
https://github.com/rhsCZ
Rutherther
Level 2
Level 2
Příspěvky: 227
Registrován: 10 říj 2014 13:01

Re: Čtení emailu přes php

Příspěvek 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
Uživatelský avatar
rhsCZ
Level 4
Level 4
Příspěvky: 1400
Registrován: 02 čer 2013 12:03
Kontaktovat uživatele:

Re: Čtení emailu přes php

Příspěvek 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ě.

„Zeptáš-li se, budeš 5 minut vypadat jako blbec. Nezeptáš-li se, budeš blbcem po celý život.“ - Čínské přísloví
„Mnozí z těch, co žijí, by zasluhovali smrt. A mnozí z těch, co zemřeli, by si zasloužili žít.“ - John Ronald Reuel Tolkien
„Je lepší být nenáviděn pro to, jaký jsi, než být milován pro to, co nejsi.“ - Kurt Cobain
https://rhscz.eu
https://github.com/rhsCZ
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Čtení emailu přes php

Příspěvek 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);
 
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
rhsCZ
Level 4
Level 4
Příspěvky: 1400
Registrován: 02 čer 2013 12:03
Kontaktovat uživatele:

Re: Čtení emailu přes php

Příspěvek od rhsCZ »

zkusim Experimentovat, kdyžtak zkusím použít google víc tak dík.

„Zeptáš-li se, budeš 5 minut vypadat jako blbec. Nezeptáš-li se, budeš blbcem po celý život.“ - Čínské přísloví
„Mnozí z těch, co žijí, by zasluhovali smrt. A mnozí z těch, co zemřeli, by si zasloužili žít.“ - John Ronald Reuel Tolkien
„Je lepší být nenáviděn pro to, jaký jsi, než být milován pro to, co nejsi.“ - Kurt Cobain
https://rhscz.eu
https://github.com/rhsCZ
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Propojení TV-NTB přes HDMI/USB-C
    od bradto » » v Vše ostatní (hw)
    17 Odpovědi
    102445 Zobrazení
    Poslední příspěvek od Zivan
  • NVMe disk do starší MB přes adaptér
    od DarkKnight » » v Rady s výběrem hw a sestavením PC
    7 Odpovědi
    15580 Zobrazení
    Poslední příspěvek od DarkKnight
  • Napojení Webnode kontaktního formuláře na Raynet CRM přes Make
    od mahy133 » » v Programování a tvorba webu
    1 Odpovědi
    18634 Zobrazení
    Poslední příspěvek od HelFix

Zpět na „Programování a tvorba webu“