Hastymail2

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

Code Updates for May 19

    It was a busy week in Hastymail development with 40 SVN commits since our last update on the 12th. Thanks to some great testing and feedback we were able to identify and fix a few bugs and we also knocked out several of the remaining items that need to be in place before putting together an official beta release. Here is the full list:

- Fixes to the POST form redirect system. After the successful submission of a POST form it can be benificial to redirect the user so that if they refresh the page the form is not submitted again (for example after sending a message). We don't want to do this all the time however, and there were some bugs with the redirect mechanism that are resolved.

- It was pointed out that the comments at the top of the hastymail2.conf.example file were not updated with the new config system changes making it really confusing for anybody trying to install the new code (thanks Jon for the heads up). The file has been updated.

- Added support for recognizing when a user logs into Hastymail for the first time. We now save the default settings on the user's very first login, or if their settings file/db entry has been deleted. Included with this is a new work hook for plugins that might want to perform a special action the first time a user logs into Hastymail. Also added a work hook that is triggered when a user just logged into Hastymail (not necessarily the very first time they have logged in).

- Found and fixed a problem with the IMAP STATUS command. IMAP command tokens should be separated by a single space, and during this routine there were instances with multiple spaces. I also audited all the other IMAP commands for possible double space bugs.

-  Fix to broken javascript in the mailbox sort filter that caused the page to not update when the filter was changed.

- Fix for broken line wrapping in message print view that caused text messages to be displayed without newlines

- Added support for auto-creating and auto-assigning special folders to the config system. Each special folder (Trash, Drafts, Sent) has 2 config settings, one defines what folder name should be auto-assigned, and the second tells Hastymail to auto-create the folder if it does not exists. Both the auto-assign and auto-create settings only trigger when a user logs in for the first time (which is determined by the lack of a settings file or db entry depending on the setting storage mechanism)

-  Improved text message part formatting to do some line ending cleanup. Sometimes messages contain bad line endings that if not accounted for cause the resulting display to be less than ideal. Even though properly line endings are defined and required for email text bodies, we now have some minimal cleanup in place for these type of broken messages.

- Fix to a bug with the hide/show folder list controls. After the AJAX folder dropdown was triggered on any page a specific element of the page that the hide/show links rely on was accidentally removed causing a javascript error.

- A fiew updates to the INSTALL documentation. Stil incomplete but now at least it's more correct.

- Fixed a problem with special folder detection and mbox format mailboxes. This was noticed with Dovecot on a default Debian unstable setup.

- Created a web browser version of the config script to accompany the cli version. These were moved in SVN from a directory called "cli" to "install_scripts". The web version lets you upload the hastymail2.conf file and will generate the required hastymail2.rc file which you can download or view in your browser. Also the "she-bang" line (#!/usr/bin/php) was removed from the cli script since we have no idea where the php cli interpreter might be installed on different setups. The INSTALL doc is updated to explain how to run the script with these changes.

- Fix for the CC header not being added to outgoing or sent mail headers

- Lots of improvements and clean up to simple mode, including a new "auto switch to simple mode for PDA's". The auto-switch uses the browsers user agent string to determine if simple mode should be used. If so then the session mechanism is automatically changed to cookie-less since this is more compatible with less capable browsers.

- Fixes for the http_prefix setting in the hastymail2.conf file. Hastymail will now use whatever scheme (http or https) that a user connects with, unless the http_prefix setting is set to https in which case they will be automatically switched to the SSL port.

-  If a user has not setup at least one profile they cannot send mail. Updated the notice on the compose page to indicate this more clearly.

- Added support to auto-detect the web server hostname. A site can still specify the hostname that Hastymail shuld use if they prefer. Web servers can have a myriad of configurations and this allows Hastymail to work properly in a wider variety of setups.

- Added an external contact system. Using this we can create plugins that merge external contact sources into the contacts dialog on the contacts page. Its a pretty neat system and includes an LDAP contacts plugin built by refactoring the LDAP related code from Hastymail 1. My LDAP skills are a bit rusty and frankly it took longer to setup a working LDAP directory than it did to write the plugin!  It has limited testing but is functional.

- Added support for a default site theme to the config file.

- Fixed a bug on the contacts page the caused the wrong contact to be loaded into the form when editing an existing contact. After adding page support to the contacts page the correlation of contact id's to contacts was broken. 

- Fixed a few problems with the unread count being incorrect. The unread count should only be the total of unread messages that are configured to be tracked for unread messages.

- Added an option to add or remove folders to be tracked for new messages (which also adds them to the new mail page) directly from the mailbox view.

- Added selective expunge support. Expunge now behaves like any other message action and requires that you select the messages you want expunged. We may want to add the ability to expunge all in a folder but for now I want to limit any accidental expunging of deleted messages.

- Fixes to the AJAX auto-save option on the compose page. The main fix here is that we now support selective expunge which we need to make sure auto-save does not inadvertantly expunge deleted messages when it updates a draft copy of the in-progress message. This option is now ready for some wider testing.


Images
preview
Mailbox view with the folder tree visible
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