function fetchImageInfo($mailbox, $emailNumber, $partNo) { $mime = imap_fetchmime($mailbox, $emailNumber, $partNo, FT_PEEK); $mime = preg_split('/\\s+/', $mime); $mime = trimArray($mime); $id = extractField("Content-ID:", $mime); $filename = extractMimeFileName($mime); $info = array('id' => $id, 'filename' => $filename); return $info; }
private function decodeMailAtachment($i) { $wiad = imap_fetchbody($this->mbox, $this->nummesage, $i); $wiad = base64_decode($wiad); $wiad = imagecreatefromstring($wiad); $info = imap_fetchmime($this->mbox, $this->nummesage, $i); $info = $this->attachmentslInfo($this->mbox, $this->nummesage); $wiad = imap_fetchbody($this->mbox, $this->nummesage, $i); $wiad = base64_decode($wiad); $wiad = imagecreatefromstring($wiad); return $wiad; }
/** * Load structure and save every part of message to common array EmbeddedMessage::$structure */ private function loadStructure() { $this->rawMimeHeader = imap_fetchmime($this->stream, $this->messageNumber, $this->partNumber, FT_UID); $this->parsedHeader = imap_rfc822_parse_headers($this->getContent()); if (!count((array) $this->parsedHeader)) { $this->parsedHeader = imap_rfc822_parse_headers($this->rawMimeHeader); } //Message ID $this->id = $this->parsedHeader->message_id; //Email from $emailFrom = $this->parsedHeader->from[0]; $emailFrom->personal = isset($emailFrom->personal) ? $emailFrom->personal : null; $this->from = new EmailAddress($emailFrom->mailbox, $emailFrom->host, imap_utf8($emailFrom->personal)); //EmailsTo $emailsTo = []; $parsedEmails = $this->parsedHeader->to; foreach ($parsedEmails as $email) { $email->personal = isset($email->personal) ? $email->personal : null; $emailsTo[] = new EmailAddress($email->mailbox, $email->host, imap_utf8($email->personal)); } $this->to = $emailsTo; //EmailsCC $emailsCc = []; $parsedEmails = isset($this->parsedHeader->cc) ? $this->parsedHeader->cc : []; foreach ($parsedEmails as $email) { $email->personal = isset($email->personal) ? $email->personal : null; $emailsCc[] = new EmailAddress($email->mailbox, $email->host, imap_utf8($email->personal)); } $this->cc = $emailsCc; //Date $this->date = new \DateTime($this->parsedHeader->date); //Subject if (preg_match('/=\\?(.*?)\\?(.*?)\\?/', $this->parsedHeader->subject, $matchSubject)) { $subjectEncoding = strtolower($matchSubject[1]); switch ($subjectEncoding) { case "utf-8": $this->subject = mb_decode_mimeheader($this->parsedHeader->subject); break; default: $this->subject = quoted_printable_decode(imap_utf8($this->parsedHeader->subject)); break; } } else { $this->subject = imap_utf8($this->parsedHeader->subject); } $this->structure = $this->parseStructure(); //extract attachments from common structure $this->attachments = $this->parseAttachments(); }
} else { if ($argc == 2) { // pobranie struktury wiadomosci $ires = connect(); $uid = $argv[1]; $struct = imap_fetchstructure($ires, $uid, FT_UID); $parts = get_parts($struct); print_r($parts); imap_close($ires); } else { if ($argc == 3) { // pobranie fragmentu wiadomosci $ires = connect(); $uid = $argv[1]; $section = $argv[2]; $headers = imap_fetchmime($ires, $uid, $section, FT_UID); $headers = parse_headers($headers); var_export($headers); $body = imap_fetchbody($ires, $uid, $section, FT_UID); echo "\n" . $body . "\n"; imap_close($ires); } else { echo "ERROR: Too many parameters\n"; } } } function connect() { $ires = imap_open("{imap.gmail.com:993/imap/ssl/readonly}INBOX", "*****@*****.**", "") or die("Connect Error: " . imap_last_error() . "\n"); return $ires; }
public function getFetchmime($uid, $part) { $uid = (int) $uid; return $this->fetchmimie = imap_fetchmime($this->mbox, $uid, $part, FT_UID); }