A couple of years ago I've shared my expierience about how to setup
virtual mail hosting with Postfix and Dovecot. Some time ago I needed to make that accessible via Web. So, a webmail.
After trying a couple of engines I've decided in favour of
SquirrelMail. This worked like a charm with SSL, etc. so the full mailing functionality was available just out of the box. The one thing I was still missing was a possibility to change password. There are already several plugins to achieve the goal, for instance when logging in over LDAP, but nothing could really fit for me. That's because the maildir setup I'm using is non standard. Luckily, the SquirrelMail API is simple and just well documented, so I was able to write a custom change password plugin very fast.