This project is read-only.

Is this library under active development?

Oct 29, 2009 at 5:15 PM

Hi,

first I want to say that this is a great piece of software (after quite a few searching imo this is the best free imap library for .NET), thank you very much for releasing it to the public. But after using it a while I found that there are quite a few open bugs. I fixed those bugs on my local copy and for the first few I opened tickets on this site. But if you decided not to work on this library anymore it makes no sense for me to continue these efforts.

thx for clarification.

Dec 19, 2009 at 6:29 AM
Edited Dec 19, 2009 at 6:31 AM

I took a small hiatus as on account of me being stupid and breaking my arm mountain biking but I am back and yea development is going to continue. I do most of the stuff in source forge though ;P

On another note im actually looking for people to help, when i started this I had no idea what i was getting into IMAP is a pretty jacked protocol since everyone seems to implement stuff just a bit different (especially google.)

Jan 26, 2010 at 7:11 AM

Anyone interested in adding functionality that will allow a raw message to be saved?

If so, contact me, I'd be willing to sponsor this work (modestly :). I don't have the free time to do this, and this would be useful to me.

Feb 2, 2010 at 6:37 AM

Actually this is being worked on but first I have to fix the parsing of the bodystructure. Regex seems like the logical choice and I am close but my regex skills are rusty and probably not that great ;) In any case if I can figure out the process to break apart the body parts it should be easy.

This is what I have currently using Rad Software Regular Expression Designer

Sample Input:

* 1 FETCH (BODYSTRUCTURE (("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 1594 38 NIL NIL NIL)("text" "html" ("charset" "iso-8859-1") NIL NIL "base64" 5592 76 NIL NIL NIL) "alternative" ("boundary" "_=_KNZJN390485150407699227661JWQRGJ39405_-_") NIL NIL))
* 2 FETCH (BODYSTRUCTURE (("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 1595 38 NIL NIL NIL)("text" "html" ("charset" "iso-8859-1") NIL NIL "base64" 5596 76 NIL NIL NIL) "alternative" ("boundary" "_=_KNZJN390485182796858254892JWQRGJ39405_-_") NIL NIL))
* 3 FETCH (BODYSTRUCTURE ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 1074 24 NIL NIL NIL NIL))
* 4 FETCH (BODYSTRUCTURE (("text" "plain" ("charset" "windows-1251" "format" "flowed") NIL NIL "8bit" 1089 28 NIL NIL NIL)("application" "octet-stream" NIL NIL NIL "base64" 3322370 NIL ("attachment" ("filename" "Svetlana.rar")) NIL) "mixed" ("boundary" "_===173841502====mail1.rambler.ru===_") NIL NIL))
* 5 FETCH (BODYSTRUCTURE ("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 540 19 NIL NIL NIL))
* 6 FETCH (BODYSTRUCTURE ("text" "plain" ("charset" "ISO-8859-1" "format" "flowed") NIL NIL "7bit" 907 16 NIL NIL NIL))
* 7 FETCH (BODYSTRUCTURE ("text" "plain" ("charset" "ISO-8859-1" "format" "flowed") NIL NIL "7bit" 14 1 NIL NIL NIL))

Expression:

^\*\s(?\d+)\s
FETCH\s
\(BODYSTRUCTURE\s
\(
(?(?>\((?)|\)(?<-LEVEL>)|(?! \( | \) ).)+(?(LEVEL)(?!)))\)\)|(?NIL)\)
\)$

Output:
("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 1594 38 NIL NIL NIL)("text" "html" ("charset" "iso-8859-1") NIL NIL "base64" 5592 76 NIL NIL NIL) "alternative" ("boundary" "_=_KNZJN390485150407699227661JWQRGJ39405_-_") NIL NIL
("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 1595 38 NIL NIL NIL)("text" "html" ("charset" "iso-8859-1") NIL NIL "base64" 5596 76 NIL NIL NIL) "alternative" ("boundary" "_=_KNZJN390485182796858254892JWQRGJ39405_-_") NIL NIL
"text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 1074 24 NIL NIL NIL NIL
("text" "plain" ("charset" "windows-1251" "format" "flowed") NIL NIL "8bit" 1089 28 NIL NIL NIL)("application" "octet-stream" NIL NIL NIL "base64" 3322370 NIL ("attachment" ("filename" "Svetlana.rar")) NIL) "mixed" ("boundary" "_===173841502====mail1.rambler.ru===_") NIL NIL
"text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 540 19 NIL NIL NIL
"text" "plain" ("charset" "ISO-8859-1" "format" "flowed") NIL NIL "7bit" 907 16 NIL NIL NIL
"text" "plain" ("charset" "ISO-8859-1" "format" "flowed") NIL NIL "7bit" 14 1 NIL NIL NIL

As you can see its ripping out the bodystructure but then that needs to be parsed and although I think someone better than my self could do it all in regex ill probably have to count parenthesis and then regex the bodyparts to get stuff like encoding, "aleternative" and boundary.