Avatar billede jenslyn_s Nybegynder
22. juni 2006 - 20:28 Der er 5 kommentarer og
1 løsning

læse inline-image i mail - hjælp til class

Hej. Jeg har problemer med at læse et billede i en email når den er inline og ikke attachment.
Jeg bruger nedenstående klasse, og den er ok, men jeg kan ikke få den til at læse inline... kan ikke finde ud af at få den til at læse den rette del :-/ Kan i pointe mig videre i den rette retning?

------------------------->
class readattachment
{
   
        function getdecodevalue($message,$coding)
        {
        if ($coding == 0)
        {
          $message = imap_8bit($message);
        }
        elseif ($coding == 1)
        {
          $message = imap_8bit($message);
        }
        elseif ($coding == 2)
        {
          $message = imap_binary($message);
        }
        elseif ($coding == 3)
        {
      $message=imap_base64($message);
      }
        elseif ($coding == 4)
        {
          $message = imap_qprint($message);
        }
        elseif ($coding == 5)
        {
        $message = imap_base64($message);
        }
        return $message;
        }
            function getdata($host,$login,$password,$savedirpath)
            {
            $mbox = imap_open ($host,  $login, $password) or die("can't connect: " . imap_last_error());
            $message = array();
            $message["attachment"]["type"][0] = "text";
            $message["attachment"]["type"][1] = "multipart";
            $message["attachment"]["type"][2] = "message";
            $message["attachment"]["type"][3] = "application";
            $message["attachment"]["type"][4] = "audio";
            $message["attachment"]["type"][5] = "image";
            $message["attachment"]["type"][6] = "video";
            $message["attachment"]["type"][7] = "other";
           
            for ($jk = 1; $jk <= imap_num_msg($mbox); $jk++){
            $structure = imap_fetchstructure($mbox, $jk , FT_UID);
            $parts = $structure->parts;
            $fpos=0;
                    for($i = 0; $i < count($parts); $i++)
                      {
                        $message["pid"][$i] = ($i);
                        $part = $parts[$i];
                        print_r($part);

                            if($part->disposition == "INLINE"){
                                $message["type"][$i] = $message["attachment"]["type"][$part->type] . "/" . strtolower($part->subtype);
                                echo $message["type"][$i].'<br>';
                                $message["subtype"][$i] = strtolower($part->subtype);

                                $ext=$part->subtype;
                               
                                $params = $part->dparameters;
                                $filename=$part->dparameters[$i]->value;
                                echo $filename;
                                $mege="";
                                $data="";
                                $mege = imap_fetchbody($mbox,$jk,$fpos); 
                                $filename="$filename";
                                $fp=fopen($filename,w);
                                $data=$this->getdecodevalue($mege,$part->type);
                               
                                fputs($fp,$data);
                                fclose($fp);
                                $fpos+=1;
                                       
                            }
           
                    }
            //imap_delete($mbox,$jk);
            }
            //imap_expunge($mbox);
            imap_close($mbox);
            }
}
<--------------------
Avatar billede jenslyn_s Nybegynder
22. juni 2006 - 21:54 #1
Jeg kan trække følgende object info:

stdClass Object ( [type] => 5 [encoding] => 3 [ifsubtype] => 1 [subtype] => JPEG [ifdescription] => 0 [ifid] => 0 [bytes] => 11354 [ifdisposition] => 1 [disposition] => INLINE [ifdparameters] => 0 [ifparameters] => 0 [parameters] => stdClass Object ( ) ) image/jpeg
Avatar billede jenslyn_s Nybegynder
26. juni 2006 - 13:49 #2
Nedenstående er kalder ovenstående klasse:
require_once("attachmentread.class.php");
$host="{mail.xxx.dk:110/pop3}"; // pop3host
$login="xxx@xxx.dk"; //pop3 login
$password="mitPassword"; //pop3 password
$savedirpath="content/images/" ; // attachement will save in same directory where scripts run othrwise give abs path
$jk=new readattachment(); // Creating instance of class####
$jk->getdata($host,$login,$password,$savedirpath); // calling member function
Avatar billede jenslyn_s Nybegynder
26. juni 2006 - 13:56 #3
Under opgaver(inkl. betaling self.) - http://www.eksperten.dk/spm/717589
Avatar billede jenslyn_s Nybegynder
26. juni 2006 - 23:19 #4
Løste det selv.
Avatar billede dugi Nybegynder
17. marts 2008 - 18:23 #5
Ved godt det snart er 2 år siden - men jeg sidder netop med dette problem.
Ligger du stadig inde med koden - eller kan du måske forklare hvordan jeg gør? :)
Avatar billede dk-andersson Nybegynder
30. april 2009 - 22:28 #6
Hey kan se at der er andre som har bedt om din kode.. så det vil jeg da også prøve.. Jeg sider og prøver at få dette script til at virke på surftown.. men den bliver ved med at sige at den ikke kunne connect to server... har du det script som du lavede den gang?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester