Hastymail2

Hastymail2 is an Open Source IMAP webmail client written in PHP. Our focus is compliance, usability, security, and speed.
     

Code Updates for February 18

    I seem to have settled into a weekly routine to update the "News" on Monday mornings, which I hope to stick to as development continues. The past week coding for my day job has been keeping me very busy, and most of the weekend I spent with my daughter (in between running what feels like a teenage taxi service) so the changes in the code are not as significant as I had hoped, but I did get some time in here and there during the week on a decent amount yesterday. Here are the latest highlights in SVN:

- Added an option to disable the javascript confirmation whenever you delete something. Also re-arranged some of the options slightly.

- The print view page was broken by the constant changes to the display code over the last few weeks. It's fixed now, validates, and has a nice clean printable version of the selected message part.

- It's been a few years since I subscribed to any high-traffic mailing lists but in an effort to test different aspects of the new code I signed up for LKML and Bugtraq. Both are great lists to test mail software with. LKML is a great stress test for the sorting and caching system, as it's very high volume. My Bugtraq list subscription defaulted to sending message digests, which in turn led to several improvements/tweaks to the message parts display. Both lists also frequently contain a wide selection of character sets and message formats so they supply excellent test fodder for body parsing and character set handling.

- While the thread sorting option has been available in the code for a month or so it did not work properly. For now we only support server side thread sorting, and this past week I wrote the core parsing routines that take a list of nested UIDS delimited by parenthesis from the IMAP server and builds the thread hierarchy information required to display the mailbox in a threaded order. Not only is this code faster, smaller, and easier to understand than the Hastymail 1 version it provides more detailed information about the message order to the presentation side. Using this we should be able have a threaded mailbox view with threads that can be collapsed or expanded, as well as an improved version of the Hastymail 1 "view this thread" option. It surely needs some more work but preliminary testing looks good.

-  Proper character set encoding and conversion has gotten a lot of attention in the new code and is still being improved. The additional variety of mail I am getting on my newly subscribed high traffic mailing lists has already paid off with several fixes to this system for various situations.

-  Inline image support for HTML formatted messages. This is specifically for HTML messages that have attached images that are referenced in the src attribute with the "cid:" syntax. 

- Added support for cookie-less sessions. This uses the PHP trans-sid ability for most forms and links, but we have to handle any AJAX calls by not only passing the session id with the AJAX request but also by manually inserting it into any link or form we send back to the page in response to the AJAX request. So far its working well I think, and using trans-sid makes continuing to support both cookies and cookie-less session almost transparent as we add new features. The default is still to use cookies, and since this is a setting that cannot be cached in the session the flag to change it still resides in index.php. I think using cookies is a better way to go overall, but supporting cookie-less sessions is a great way to improve compatibility with additional small screen PDA/Phone browsers.

- Support for message part headers on the message view (and print view page). For example message digests are normally a text message with a main set of headers for the entire message, but with individual sets of headers for each message within the digest part. Now when browsing parts encapsulated within an rfc822 message part, such as a digest, those headers are visible below the main message header section.

- Expanded and improved the debug system. Now there are 3 debug related options in the conf file. the first, show_imap_debug, will display a summary of all the IMAP commands sent to the server and the corresponding responses (only the final response like OK or NO). This now includes timing information as well, making it trivial to determine an IMAP related bottleneck. The second option, show_full_debug, only applies if show_imap_debug is set to true. With this option the normal IMAP command/responpse output is displayed, followed by the "debug" array (which contains anything we decide to stick into it from within the IMAP routines), as well as the complete response from the IMAP server for any request sent, which includes all the data sent back (can be big!). Finally there is a "show_cache_usage" option that will print the approximate size of the uid/folder/header cache being saved in the session. All this debug information if enabled prints below the footer of the page after logging in.

- Made some advancements on the search page, but it is still not functional. When complete it will support all the features of searching in Hastymail 1, as well as the ability to combine 5 sets of search paramaters with "and" or "or". Should be pretty cool :)

- Added a sort filter to the mailbox page (ala Hastymail 1). This allows you to only see messages in the current folder with a particular flag set (unread, deleted, flagged, etc). Since it works with the IMAP sort command it is only visible for sites using server side sorting.

 

    Turns out that was more than I thought :) As usual the highlighted changes are accompanied by a ton of other tweaks and fixes. Overall things are looking really good I think. If we can keep this pace up who knows, maybe a pre-release could be possible in the next few months. 

 


Images
preview
Message view of a digest message part
preview
Current mailbox view without the folder list
Comments
No comments posted yet

Add a comment

Name:
Email:
Subject:
Comment:
Security Image:
security image
Enter the letters you see above.
Get Hastymail at SourceForge.net. Fast, secure and Free Open Source software downloads