tjumsen Skrevet 21. juli 2007 Del Skrevet 21. juli 2007 (endret) hei jeg trenger hjelp med en PHP kode som jeg har funnet . den kobler seg opp mot en mail og henter ut bilder som er sent med mail men veit ikke kva for en mail jeg kan bruke for et imap system Klikk for å se/fjerne innholdet nedenfor <? $ServerName = "{hotmail.com}INBOX"; // For å koble til med Imap. Det kan være nødvendig med et punktum rett etter INBOX (INBOX.) $brukerNavn = "****@hotmail.com"; //Brukernavn til mailen $passOrd = "*****"; //Passord til mailkontoen $lovligMail = "lovligmail"; //Den mailadressen man må sende fra for at ting skal legges ut $katalog = "./test/mms/img/"; //Sti til katalogen der bilder skal lagres //Kobler til mailboksen $mbox = imap_open($ServerName,$brukerNavn,$passOrd) or die("Klarte ikke åpne mail, prøv igjen senere"); if ($hdr = imap_check($mbox)) { $msgCount = $hdr->Nmsgs; } $overview=imap_fetch_overview($mbox,"1:$msgCount",0); $size=sizeof($overview); for($i=$size-1;$i>=0;$i--){ $val=$overview[$i]; $msg=$val->msgno; $from=$val->from; $date=$val->date; $subj=$val->subject; $seen=$val->seen; $from = ereg_replace("\"","",$from); $from = ereg_replace(" ","",$from); $lengde = strlen($lovligMail); $from = substr($from,0,$lengde); //Sjekker om mailen er fra rett adresse... if($from == $lovligMail) { $kropp = get_part($mbox, $msg, "TEXT/PLAIN"); $subj = imap_utf8($subj); $kropp = imap_utf8($kropp); //Fikser norske bokstaver i subject $subj = ereg_replace("Æ", "Æ", $subj); $subj = ereg_replace("Ø", "Ø", $subj); $subj = ereg_replace("Ã…", "Å", $subj); $subj = ereg_replace("æ", "æ", $subj); $subj = ereg_replace("ø", "ø", $subj); $subj = ereg_replace("Ã¥", "å", $subj); //Fikser norske bokstaver i kropp $kropp = ereg_replace("Æ", "Æ", $kropp); $kropp = ereg_replace("Ø", "Ø", $kropp); $kropp = ereg_replace("Ã…", "Å", $kropp); $kropp = ereg_replace("æ", "æ", $kropp); $kropp = ereg_replace("ø", "ø", $kropp); $kropp = ereg_replace("Ã¥", "å", $kropp); $struct = imap_fetchstructure($mbox,$msg); $contentParts = count($struct->parts); $vedlegg = imap_bodystruct($mbox,$msg,2); //Lager mer fornuftig format på data $datoArray = explode(" ", $date); //Formaterer dag if($datoArray[0] < 10) { $dag = "0"; $dag .= $datoArray[0]; } else { $dag = $datoArray[0]; } //Formaterer måned switch ($datoArray[1]) { case "Jan": $mnd = "01"; break; case "Feb": $mnd = "02"; break; case "Mar": $mnd = "03"; break; case "Apr": $mnd = "04"; break; case "May": $mnd = "05"; break; case "Jun": $mnd = "06"; break; case "Jul": $mnd = "07"; break; case "Aug": $mnd = "08"; break; case "Sep": $mnd = "09"; break; case "Oct": $mnd = "10"; break; case "Nov": $mnd = "11"; break; case "Dec": $mnd = "12"; break; } //Formaterer år $aar = $datoArray[2]; //Formaterer tid $otid = $datoArray[3]; $tid = substr($otid,0,2).substr($otid,3,2).substr($otid,6,2); //Setter sammen datoen $dato = $aar.$mnd.$dag."_".$tid; $filNavn = $vedlegg->parameters[0]->value; $filType = strrev(substr(strrev($filNavn),0,4)); $skrivefil = $katalog.$dato.$filType; if($filType == ".jpg" && !is_file($skrivefil)) //Dersom vedlegg er en .jpg-fil og filen ikke allerede finnes { //Finner innholdet til attachmenten $filInnhold = imap_fetchbody($mbox,$msg,2); $filInnhold = base64_decode($filInnhold); $bilde = imagecreatefromstring($filInnhold); //Lager bilde av rådata fra attachment $skrivefil = $katalog.$dato.$filType; //Lager filnavn //Lager selve bildet imagejpeg($bilde,$skrivefil); //Skriver bildet til disk chmod($skrivefil,0644); //Setter leserettigheter //Her kan man legge til hva man vil gjøre med dataene. //$subj er tittel på mailen //$kropp er body //$skrivefil inneholder sti til bildefilen som er skrevet. //$bilde inneholder rådata for bildet //Det kan være lurt å kjøre en imagedestroy($bilde) etterpå for å sikre at det blir slettet fra minnet. } } imap_delete($mbox,$msg); //Sletter mail som er behandlet } //Slutt på for-løkke som tar alle mailene imap_expunge($mbox); //Tømmer mailboksen imap_close($mbox); //Lukker mailboksen function get_mime_type(&$structure) { $primary_mime_type = array("TEXT", "MULTIPART","MESSAGE", "APPLICATION", "AUDIO","IMAGE", "VIDEO", "OTHER"); if($structure->subtype) { return $primary_mime_type[(int) $structure->type] . '/' .$structure->subtype; } return "TEXT/PLAIN"; } function get_part($stream, $msg_number, $mime_type, $structure = false, $part_number = false) { if(!$structure) { $structure = imap_fetchstructure($stream, $msg_number); } if($structure) { if($mime_type == get_mime_type($structure)) { if(!$part_number) { $part_number = "1"; } $text = imap_fetchbody($stream, $msg_number, $part_number); if($structure->encoding == 3) { return imap_base64($text); } else if($structure->encoding == 4) { return imap_qprint($text); } else { return $text; } } if($structure->type == 1) /* multipart */ { while(list($index, $sub_structure) = each($structure->parts)) { if($part_number) { $prefix = $part_number . '.'; } $data = get_part($stream, $msg_number, $mime_type, $sub_structure,$prefix . ($index + 1)); if($data) { return $data; } } } } return false; } ?> Endret 22. juli 2007 av tjumsen Lenke til kommentar
HoaXed Skrevet 21. juli 2007 Del Skrevet 21. juli 2007 (endret) Du bør editere bort passordet. Forresten tror jeg ikke dette går med hotmail. Kan ta feil, men med mindre du har en plus konto kan du ikke sette opp smtp, eller imap mot hotmail Endret 21. juli 2007 av HoaXed Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå