Hastymail2

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

Code Updates for February 25

    It has been a busy week for Hastymail. The updates and additions are all over the code, the most notable being a plugin system. The system is not complete but so far there are 2 limited but functional plugins, and quite a bit of first draft documentation to go with them. Another notable update is functional searching, including advanced search abilities.  So without further ado here is what's new in Hastymail this week.

- Page title updating. For users using the ajax update option we now display the total number of unread messages (the total unread of all folders setup to be tracked) in the page title which updates everytime the ajax update runs. Previously this only applied to the new mail page.

- A thread view option from the message view page (like Hastymail 1). Unlike Hastymail 1 this page includes message controls, which allow a user to flag or move an entire message thread for example, which is cool. The downside of thread view in general is performance. We have to thread sort the entire mailbox in order to get the thread members and as mailbox size increases server side thread sorting performance goes downhill. Once on the thread view page the mailbox sort method is changed to thread sorting, so when accessing individual messages in the thread the previous and next link are already in the order one would expect from the thread view page.

- Added read only support to the IMAP class. We issue EXAMINE instead of SELECT and any attempt to create or delete anything in IMAP is disabled with a friendly message to the use.

- Added general database support. This adds several options to the config file to allow Hastymail to use a database. For now it only supports PEAR DB and mysql but I am working on abstracting the interface to allow more flexible backend support. The system makes available a database wrapper object that supports a myriad of advanced functionality, as well as simple to use methods for common database related actions. Using this database system sites can now choose to save user settings in a database table instead of on the filesystem as text files. The SQL to create the required table for mysql is in the db/ directory, and for now sites have to create the table by hand before using database support.

- Added a profile page linked to from the options page. Users can create as many profiles as they want, each with an address, name and signature. Each profile can be set to auto-sign replies and one of the profiles can be set as the default.

-  Changed the behavior of the previous+/up to mailbox+/next+ links on the top right of the message page. Also made them work with javascript disabled.

- Still no sending mail nor any contacts support (or options or attachemnts) but some functionality, such as formatting some of the fields for forwards and replies works.

- Plugins. The plugin system is pretty well defined now, and there are a ton of text files in docs/ that explain how things work. There are still several areas that need to be finished but here is the basic idea:

Plugins use "hooks" to assign functions in the plugin code to a point of execution in the hastymail code. Hooks are either "work" hooks, ones that just process data, or "display" hooks, ones that actually output html.  There is also a special hook called the "page hook". Using this plugins can add entire pages to Hastymail easily. In order to make the plugin authors job easier, and to give them access to Hastymail resources, plugins use the tools object. This object provides methods for plugin authors to easily do things like pass data from one hook to another, save a user setting, and eventually, use the database and interact with Hastymail internal data like an outgoing message structure or a mailbox header listing.

    The main things left to do are add useful hooks all over and expand the tools class to have lots of useful methods. I foresee some special tools methods corresponding to certain hooks as a way to give plugins specific access to a common internal resource that would otherwise be tricky to facilitate. 

- IMAP searching is functional. The search page is expanded from what Hastymail 1 could do (as are many things with the new code) while attempting to also make it more user friendly. Search terms can be combined with AND or OR (up to 5) each one of which can have a multitude of search parameters. Not all the functionality of the IMAP search command is implemented, but what is there makes for some pretty powerful searches.

- A slew of smaller updates, fixes, tweaks to the default theme, and just stuff scattered all over. A couple more weeks like this will really get things moving toward a possible release candidate!  


Images
preview
Thread view
preview
A calendar plugin
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