Hello Jens,

exactly, I extended both Zend_Mail_Storage_Imap and Zend_Mail_Protocol_Imap because I need many functions that both classes don't provide, for example I work only with unique ids, not sequence numbers. So I had to change many of the functions.

For example it is also not possible to search or sort at the moment in Zend_Mail_Storage_Imap, so I had to add the missing functions.
Have a look at
http://framework.zend.com/issues/browse/ZF-8858
http://framework.zend.com/issues/browse/ZF-9138
and here I added the possibility to copy many mails with just one imap command (because calling copy() 1000 times is very slow)
http://framework.zend.com/issues/browse/ZF-8513

Would be cool if someone patches this functionality into the library.

I used "Iloha MIME Library (IML)" for parsing the response of the BODYSTRUCTURE request. Just 3 of the functions in it are needed. It is from 2002, but I didn't find a better solution until now, and it is GPL.

Perhaps you have a better way to solve it?

Michael


On Feb 11, 2010, at 1:01 AM, Jens Wabnitz wrote:

Hello Michael,

thanks for the hint.
How do you send the command to imap server?
Tried to do it with the Zend_Mail_Protocol_Imap Instance but failed.
Got the information with imap_fetchstructure() but only for the cost of another connection.

Shouldn't the Imap classes be modified to lazy load content?

Thanks again
Jens


Am 10.02.2010 14:56, schrieb Michael Kliewe:

Hi,

I had the same problem, and I solved it with the imap command
FETCH BODYSTRUCTURE

There you get the headers of all parts of a mail (or of specific parts if you set more parameters to the request). You can also request headers of many mails by one request.
The only "problem" is to parse that result, because it looks like

* 2 FETCH (BODYSTRUCTURE ((("TEXT" "PLAIN" ("charset" "us-ascii") NIL NIL "7BIT" 1120 1) ("TEXT" "HTML" ("charset" "us-ascii") NIL NIL "QUOTED-PRINTABLE" 3874 1)
Michael
----------------------------------------
http://www.phpgangsta.de


On Feb 10, 2010, at 2:06 PM, Jens Wabnitz wrote:

Hello,

i'm building an application with mail reading
capabilities using Zend_Mail_Storage_Imap.

It seems that the RecursiveIterator for Messages and even the countParts
Method fetch the whole content of the parts.
For mails with larger attachments calling these functions leads to a
"Fatal error: Allowed memory size of 67108864 bytes exhausted ...".

Is there any way to get the headers of message parts without
fetching the content?

Thanks in advance
Jens






Reply via email to