On Jan 7, 2008, at 10:14 AM, Alexandru Stanoi wrote:

> Dave Fischetti wrote:
>> I have all mail coming in and being parsed also redirected to  
>> another email account so I see everything that comes in as I test  
>> (since the parsed deletes things immediately). It seems that these  
>> files coming in are images. in one case the file was named the same  
>> in both cases but it wasn't picked up by the parser. The only other  
>> attachement in that email was some text file that was blank. so it  
>> should have seen the image. Maybe it was just a hiccup. But then  
>> another one recently wasn't picked up. This one is from a different  
>> phone carrier:
>> Content-Type: image/jpeg; name=m_000c8e00983658a5839ec75edd2031a4.jpg
>> Content-Transfer-Encoding: base64
>> Content-Location:media1.jpeg
>> Content-ID: <136>
>> /9j/4AAQSkZJRgABAQEAYABgAAD/ 
>> 2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
>> HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/ 
>> 2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
>> MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/ 
>> wAARCADiAKoDASIA
>> AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/ 
>> 8QAtRAAAgEDAwIEAwUFBAQA
>> AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
>> ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
>> p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4 
>> +Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
>> AwE... ... ... ... <snip>
>> The attachment in my mirrored mail shows up fine. The filename is  
>> "m_000c8e00983658a5839ec75edd2031a4.jpg"
>> There are 5 other attachments in that email. All are gif files and  
>> should be skipped by my code I believe. I actually went back to a  
>> few other emails from this carrier and their emails also have jpg  
>> images that are missed by the parser.
>> Do you have any other suggestions as to what might be causing this.  
>> DO you want me to send the full source for an email that had a  
>> missed image? Would more of my code help?
>
> It would be helpful to have the full mail, and the code which  
> process it.
>
> -- 
> Alexandru Stanoi
> eZ Components System Developer
> eZ Systems | http://ez.no


Here is a good portion of my code. I cut out some stuff that shouldn't  
be needed. Thanks again.


set_include_path( "/usr/include/php/ezcomponents-2007.1.1:" .  
ini_get( "include_path" )  );


// Create a new POP3 transport object by specifying the server name
$pop3 = new ezcMailPop3Transport( "mail.myDomain.com" );

// Authenticate to the POP3 server
$pop3->authenticate( "[EMAIL PROTECTED]", "mypass" );

// Fetch all messages on the server then delete
$set = $pop3->fetchAll(true);

// Create a new mail parser object
$parser = new ezcMailParser();
ezcMailCharsetConverter::setConvertMethod( array( 'myConverter',  
'convertToUTF8IconvNoNotices' ) );
// Parse the set of messages retrieved from the server
$mails = $parser->parseMail( $set );

//print_r($mail);

foreach ( $mails as $mail )
{
        $from = formatAddress( $mail->from );
        $to = formatToAddress( $mail->to );
        // hack for sprint users
        if ($from == "") $from = formatAddress( $mail->returnPath ); //  
sometimes from is blank from some carriers
        if ($to == "") $to = substr($mail->headers['Delivered-To'],2); //  
sometimes to is blank from some carriers
        // end hack
        
        $subject = $mail->subject;
        $mailTimeStamp = $mail->timestamp;
        if($mailTimeStamp == "" || is_null($mailTimeStamp)) $mailTimeStamp =  
time();
        $date = calculateTimeZone(gmdate("Y-m-d H:i:s", $mailTimeStamp),"EST");
        //$date = date("Y-m-d H:i:s", $date);   
        $date = date("Y-m-d H:i:s");    // set date received

        list($messageTo,$messageToExt) = split('@',$to);
        list($messageFrom,$messageFromExt) = split('@',$from);
        
        
        <SNIP>          
                                
        
        $parts = $mail->fetchParts();
        $newImageBaseName = "";
        
        foreach ( $parts as $part )
        {
                if ( get_class( $part ) === 'ezcMailText' && $part->subType === 
 
'plain' && $bodySet != true )
                {
                        $bodyFull = trim($part->text);
                        $bodySet = true;
                        
                }
                
                //////   MANAGE INCOMING IMAGE  //////
                if ( get_class( $part ) === 'ezcMailFile' && $imageSet != true) 
{
                        
                        $getImage = getimagesize($part->fileName);
                        if (is_array($getImage) && $getImage !== false) {
                                $my_image = array_values($getImage);
                                list($width, $height, $type, $attr) = $my_image;
                                if ($type == 2 && basename($part->fileName) != 
"alltel_logo.jpg") {
                                        $my_ext = 
strtolower(strrchr(basename($part->fileName),"."));
                                        $my_ext = ".jpg"; // quick hack for now
                                        if (filesize($part->fileName) < 
4194304) { // only accept images  
< 4MB
                                                $imageErr = false;
                                                $imageSet = true;
                                                break;
                                        } else {
                                                $imageErr = 1;
                                                break;
                                        }
                                }
                        } else {
                                $imageErr = 2;
                        }
                }
        }
        
        $body = reply_splitters($bodyFull);
        
        if($imageSet) {

                $newImageBaseName = $uid . "_" . $mailTimeStamp . $my_ext;
                $makeImages = makeThumbnails($part->fileName,$newImageBaseName, 
$width, $height, true);
                
        }
        
        <SNIP>  
        
}






-- 
Components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/components

Reply via email to