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;
 }
Example #3
0
 /**
  * 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();
 }
Example #4
0
} 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);
 }