Community  »  Applications  »  Webmail

Changes by Release



[jan] SECURITY: Fix unauthorized access in Tasks and File Manager.
[jan] Officially support PHP 7.
[jan] Fix returning to last URL after using the login link.

Calendar Changes
[jan] Fix time offsets when importing CSV data with two-digit years.
[jan] Fix updating and deleting events from external CalDAV servers
      (, Bug #14021).
[jan] Fix exporting multiple tags to iCalendar CATEGORIES (Bug #14057).

Tasks Changes
[jan] SECURITY: Fix unauthorized access to task exports.
[jan] Fix regression when exporting single tags to iCalendar CATEGORIES.
[jan] Fix parsing sub-tasks from the quick enter dialog (Bug #14681).
[jan] Fix positioning of due time drop down list (Bug #12288).
[jan] Improve compatibilty when synchronizing tasks via CalDAV/ICS (Bug
[jan] Fix exporting multiple tags to iCalendar CATEGORIES (Bug #14057).
[jan] Don't include external tasks into drop down list for parent tasks.
[jan] Fix redirecting to task list after completing a task (Bug #14678).

Notes Changes
[jan] Fix exporting multiple tags to vNote CATEGORIES (Bug #14057).

File Manager Changes
[jan] SECURITY: Fix unauthorized access to files from backends that don't
      require authentication (Reported by Tim O'Driscoll

Library Changes
[mjr] Prevent broken datetime strings from causing a fatal error (Bug #14682).

[jan] Fix RAR compressed file names with unicode characters.

[jan] Fix double line breaks in task description tooltips (Bug #14684).
[mjr] Fix issue that could break ActiveSync sync if object not found.

[jan] Correctly determine expiration dates of short living PGP keys.

[jan] Fix translating the string representation of a recurrence rule.

[jan] SECURITY: Fix remote code execution vulnerability in Im driver (Thomas
      Jarosch <>.

[jan] Fix expunging cache entries of a certain lifetime from the DB backend.

[jan] Fix bottom table line length of RAR archive summaries.


[jan] SECURITY: Fix open redirects.
[jan] Update Turkish translations (İTÜ BİDB <>).

Mail Changes
[jan] Fix finding reply or forward text from signed or encrypted messages with
      HTML content again (Bug #14656).
[mjr] Fix issue with reattaching a file after removing it on Chrome browsers
      (Bug #14657),
[jan] Allow Command-C to copy text from HTML message previews (Bug #14653).

Address Book Changes
[jan] Fix creating address books with the external API.

Calendar Changes
[mjr] Prevent broken iCalendar files from causing fatal errors (Bug #14672).
[jan] Work around calendar servers advertising as CalDAV-capable, but ignoring
      CalDAV requests (Bug #14662).
[jan] Fix displaying yesterday's event in Prior Events portal block
      (, Bug #14638).

Tasks Changes
[mjr] Fix handling of delayed start dates (Bug #14634).

File Manager Changes
[jan] Fix redirection after logins with Horde 5.2.16 and later.

Library Changes
[mjr] Fix undefined constant error (Bug #14671).
[mjr] Improve support for android Gmail application (Bug #14655).
[mjr] Fix undefined property warnings (Bug #14631).

[jan] Fix catching database backend exceptions.

[jan] Filter out control characters from file names when sending download

[jan] Fix returning to normal font after text with light colors.
[jan] Fix fatal error screen for PHP 7 error objects.
[jan] Fix header() method to print, not return the header.
[jan] Really silence errors from tput and stty (Bug #14632).
[jan] Silence errors from tput and stty (Bug #14632).

[jan] SECURITY: Fix XSS vulnerability with pathinfo component in
[jan] Deprecate Horde::redirect().
[jan] Add Horde::signUrl() and Horde::verifySignedUrl().
[jan] Fix JavaScript minifying with recent Closure compilers (Bug #14650).
[jan] Add Horde_Registry_Application#backup(), restore(), and
[mjr] Fix calculating ActiveSync SOFTDELETE times for calendar collections (Bug

[jan] More fixes for GnuPG 2 (Mathieu Parent <>).
[jan] Remove dependency on openssl executable (Hadi Nategh <>).

[jan] Add Horde_Date_Recurrence::fromHash() and toHash().

[jan] SECURITY: Fix XSS vulnerability with form sections.

[jan] Fix unescaping of commas in ADR, N, and ORG attributes.

[mjr] SECURITY: Fix more potential places for command injections.
[mjr] SECURITY: Prevent DOS attack by preventing an infinite loop in certain
      conditions (CVE-2017-9773, reported by Fariskhi Vidyan
[mjr] SECURITY: Prevent RCE attacks by properly sanitizing shell arguments
      (CVE-2017-9774, reported by Fariskhi Vidyan <>).
[jan] Add blur effect.

[jan] Fix check if QRESYNC is enabled in vanished() (i.badamshin

[jan] Add unit tests.

[jan] SECURITY: Fix XSS vulnerability with pathinfo component in toString().


Colorize output of command line scripts.

Horde Changes
[jan] Show alarm ID with error output from horde-alarms.

Mail Changes
[jan] Fix filename charset of certain attachments (Bug #14618).
[jan] Fix cursor jumping in some browser when editing address fields (Bug
[mjr] Fix auto creation of SPECIAL_USER mailboxes (Bug #14620).
[mjr] Fix sending email after the attach_body_check hook fails in Smartmobile
      view (Bug #14610).

Filters Changes
[jan] SECURITY: Fix XSS vulnerability in rule search (Andrey Zelenchuk

Calendar Changes
[mjr] Don't hide the reservee's identity on the resource calendar (Bug #14609).

Library Changes
[mjr] Fix regression that caused S/MIME messages to appear invalid on device.
[mjr] Readd timestamp to sync log entries.
[mjr] Catch leaked Horde_Idna_Exceptions from Horde_Mime.

[jan] Return the alarm ID with the getErrors() result.

[jan] Colorize output.
[jan] Add Horde_Argv_HelpFormatter#highlightHeading() and

[jan] Use rectangular background coloring for messages and errors.
[jan] Add Horde_Cli#block().
[jan] Use the system's newline character(s).
[jan] Fix color sequences for black and darkgray.
[jan] Mark PHP 7 as supported.
[jan] Wrap content matching the terminal width.
[jan] Add Horde_Cli#getWidth() to return the terminal width.
[jan] Add Horde_Cli_Color.

[jan] Add Horde_Cli_Modular_ModuleUsage to support colored output.

[jan] Add support for compressing TAR archives.
[jan] Add compressDirectory().
[jan] Fix notice when adding files older than 1988 to a ZIP archive.
[jan] Fix reading file dates after August from ZIP files.

[jan] Detect unsupported GnuPG versions.
[jan] Fix detection of new GnuPG API (Remi Collet <>, PR #220).
[mjr] Correctly specify either sha-1 or sha-256 when signing a smime message.
[jan] Support GnuPG 2.1+ too (Bug #14014).

[mjr] Fix returning stream data from NULL image driver (Bug #14608).

[jan] Don't exit after running phpunit tests.

[jan] Fix unfolding of multi-line strings and other incompatibilites with


Library Changes
[mjr] SECURITY: Fix remote code execution vulnerability (CVE-2017-7413, and

[mjr] Fix PHP error accessing logger during OPTIONS request (Bug #14601).

[jan] Fix unpacking encrypted session data ("User not authorized for ..." log
[jan] Throw an exception when accessing a non-existing API through the registry.
[mjr] Fix regression in loading vhost config files (Bug #14605).

[jan] Fix regression when submitting multiple forms (Bug #14604).


Horde Changes
[mjr] Fix errors in horde-memcache-stats script (Bug #14588).
[mjr] Remove configuration for defunct Yahoo, CloudMade, and MyTopo mapping

Mail Changes
[jan] Catch errors when converting email address to IDNA.
[jan] Correctly use preference to save attachments with sent messages in mobile
      modes (Bug #14571).

Filters Changes
[jan] Never send autoreplies again when setting zero vacation days in Procmail
      or Maildrop backends (Bug #14549).
[jan] Don't split sieve body tests on commas (Bug #14546).

Address Book Changes
[mjr] Fix importing vCard LABEL fields (Bug #14584).
[mjr] Fix saving sync preference when no default address book exists (Bug
[mjr] Fix removing virtual address books when calling the removeUserData API
      (Bug #14577).
[jan] Fix fatal error if group contacts from an LDAP server don't exist

Calendar Changes
[mjr] Fix saving sync preference when no default calendar exists (Bug #14585).
[mjr] Fix display of date in ITIP_CANCEL notifications of deleted instances of
      recurring events (PR: 214,

Tasks Changes
[mjr] Fix saving sync preference when no default tasklist exists (Bug #14585).
[mjr] Avoid PHP warnings due to corrupt preference values (Bug #14585).

Notes Changes
[mjr] Fix saving sync preference when no default notepad exists (Bug #14585).
[mjr] Fix potential infinite recursion in Mnemo_Api::listBy() due to corrupt
      preference values.

Library Changes
[mjr] Fix error in synchronizing recurring tasks (Bug #14599).
[mjr] Database compatibility improvements.
[mjr] Refactor logging to support streams and improve readability.
[jan] Fix MongoDB backend with mongodb extension.
[mjr] Add Horde_ActiveSync_Imap_EasMessageBuilder classes.
[mjr] Fix loading event file attachments on iOS.

[jan] Fix MongoDB backend with mongodb extension.

[jan] Add header() method to turn a string into an outlined header.
[jan] Add color() method to colorize output with any supported color.

[jan] Restore BC with incorrect parameter usage of
      Horde_PageOutput::addInlineScript() (Bug #14597).
[jan] Allow to specify JS framework to use for defer-loading inline scripts.
[mjr] Fix fatal error when logging a successfully sent email via ActiveSync.
[mjr] Fix adding a separator item to a custom menu (Bug #14581).
[jan] Enable LDAP rootDSE caching.
[mjr] Use new ActiveSync log handling.
[jan] Correctly encode IP address literal in first Received: header (Bug
[mjr] Remove support for defunct CloudMade, and MyTopo mapping APIs.
[jan] Fix fatal error screen for PHP 7 error objects.
[jan] Remember the configuration values of split-read database environments.
[jan] Only show $conf[sql][ca] if $conf[sql][ssl] is enabled.

[mjr] Improve Horde_Db logging options (Request #10773).
[mjr] Allow Horde_Value objects to contain stream data (Request #10805).

[jan] Keep submitted checkboxes unchecked if they default to be checked.

[mjr] Fix PHP 5.3 compatibility (Remi Collet <>).
[mjr] Fix calculating timezone offsets when parsing vTimezone components.

[jan] Check for errors when using UTS #46 algorithm.

[mjr] Fix drop shadow generation when using a background color.
[mjr] Add support for storing image data as a temporary stream.

[jan] Optionally cache rootDSE requests too.
[jan] Fix checking for existing attributes in Horde_Ldap_RootDse.

[mjr] Use protected member variables to facilitate extending the
      Horde_Log_Logger class.

[jan] Correctly encode IP address literal in first Received: header (Bug

[jan] Fix PostgreSQL backend with newer Horde_Db version.

[jan] Fix regression with PHP < 5.5.

[jan] Fix MongoDB backend with mongodb extension.
[jan] Fix returning session ID when using a PostgreSQL backend.

[jan] Fix removing custom permssions when removing a user or group from a share
      (Bug #14578).

[mjr] Fix RFC 3030 (CHUNKING) support.

[jan] Add Horde_Backtrace#createFromThrowable() to support PHP 7 error objects

[jan] Update to PHPUnit 4.8.35 and dependencies.
[jan] Colorize PHPUnit output.

[jan] Add Horde_Text_Diff_Renderer_Unified_Colored as a renderer with color

[jan] Fix generating TZOFFSETFROM attributes for certain rules.
[jan] Add parameters to Horde_Timezone_Zone#toVtimezone() to limit the
      generated STANDARD and DAYLIGHT sections.

[jan] Fix detecting locale directories of namespaced libraries.

[mjr] Allow Horde_Vfs::writeData() to accept stream input.
[jan] Fix retrieving files from root folder with SQL backends (Bug #14545).


Horde Changes
[jan] Disallow setting of creator permissions too if sharing with world is

Mail Changes
[jan] Update Greek translation.
[mjr] Fix issue when forwarding an email to multiple recipients in Mobile view
      (Bug #14060).
[jan] Fix iTip MIME viewer actions if attachment type hasn't been specified.
[mjr] Add option to reload folder tree when fetching via the API.
[jan] Update preview cache after permanently unblocking images from a sender
      (Bug #14446).

Filters Changes
[jan] Convert vacation rules in preference backend from Ingo < 2.0.
[jan] Fix some edge cases with Sieve vacation rules with date limits (Bug

Address Book Changes
[jan] Remove left over from 10-years-old code (Bug #14521).
[mjr] Fix regression in sorting contacts by a name field (Bug #14471).
[mjr] Fix regression in saving tags (Bug #14463).

Calendar Changes
[mjr] Fix allowing ics import on when user has edit permissions on a shared
      calendar (Bug #14501).
[jan] Disallow setting of creator permissions too if sharing with world is
[jan] Split shared users by linebreaks too.

Tasks Changes
[jan] Fix sorting by due date with PHP < 5.5 (Bug #14507).
[mjr] Fix fatal error caused by regression in sorting recurring tasks with due
      dates (Bug #14504).

File Manager Changes
[jan] Update Portuguese translation.
[jan] Update Basque translation.
[jan] Add Greek translation (Limperis Antonis <>).
[jan] Use access rules compatible with both Apache 2.2 and 2.4.
[jan] Fix fatal error when cutting and pasting files on the same backend.
[jan] Update Italian translation.

Timeobject Changes
[jan] Update Basque translation.
[jan] Add Greek translation (Limperis Antonis <>).

Library Changes
[mjr] Fix test issue on 32bit systems (Bug #14532).
[mjr] Improve handling of case when IMAP server returns invalid HIGHESTMODSEQ
      values (DVT - Daten-Verarbeitung-Tirol GmbH).
[mjr] Fix regression in initial synchronization.
[mjr] Attempt to work around IMAP servers that report broken HIGHESTMODSEQ
[mjr] Prevent invalid UTF-8 text in address fields.
[mjr] Add support for EAS 16 draft email sync.
[mjr] Close database connections while sleeping during PING requests.
[mjr] Fix converting charset of subject and attachment names in certain cases
      (Bug #14457).
[mjr] Changes to support attachment sync support for Appointment objects.

[jan] Use more efficient database access in SQL backend.

[jan] Fix Horde_Form dependency (Bug #14460).
[mjr] Fix BC break in Weather block (Bug #14473).
[mjr] Fix locking user account after bad logins (Bug #14467).
[mjr] Add support for EAS 16 draft email sync.
[jan] Allow administrators to log in if preference backend is not available.
[mjr] Log message headers on error when sending email via ActiveSync.
[jan] Fix warning if an old locale is longer than 255 characters (Bug #14489).
[jan] Fix abbreviated Norwegian month names in JavaScript to include trailing
      dot (Bug #14488).
[jan] Fix reading session data from the command line with PHP 7.
[mjr] Prevent building invalid HTML when building an email from a SMART_REPLY
      (Bug #14500).
[mjr] Improve handling of certain ActiveSync failures.
[jan] Fix parsing abbreviated Norwegian month names too (Bug #14503).
[mjr] Fix Google Map API warnings (Bug #14525,
[jan] Catch errors from NoSQL preference backend.
[jan] Make 'hostspec' parameter for MongoDB configuration optional
      again on PHP 7.
[jan] Fix session preference driver.
[jan] Don't pollute DB DSN with unknown parameters when using Cyrsql
      authentication driver.
[mjr] Refresh mailbox list when retrieving for ActiveSync.
[mjr] Add support for a activesync_mailboxlist hook.
[jan] Don't show apps with 'admin' status in menu (Bug #14526).

[mjr] Ensure version information is output in ASCII armored output.
[jan] Fix parsing inline signed PGP messages with PHP 7+ (Bug #14352).
[jan] Fix label for S/MIME Encrypted Key Usage attribute.

[jan] Fix some PHP 7.2 issues.

[jan] Fix parsing GETACL responses from RFC 4314 capable IMAP servers (Bug
[mjr] Fix failed connections when using unix sockets (Thomas Jarosch
[mjr] Fix command syntax for CREATE-SPECIAL-USE support.

[mjr] Fix regression caused by incorrect fix and test for Bug #14456 (Bug

[jan] Update country list.

[jan] Avoid notice if packing an invalid UTF-8 string (Bug #14522).

[mjr] Replace defunct data source for surface station data (Bug #14502).
[mjr] Create standalone CLI script for generation of metar station data.
[mjr] Improve metar table creation performance.

[jan] Use more efficient database access in SQL backend.


Horde Changes
[jan] SECURITY: Add CSRF protection tokens to portal layout forms (Reported by
      Florian Köllich <>).
[jan] Fix double loading of hooks.php.

Mail Changes
[jan] Optimize deleting or moving a large number of messages.
[jan] Fix the 'special_mboxes' backend configuration (Bug #14423).
[mjr] Fix display of application/pkcs-7-mime parts (Bug #14363).

Filter Changes
[jan] Fix using ingo-convert-prefs-to-sql for multiple users.
[mjr] Fix incorrect flag usage in Procmail vacation recipe (Bug #14397).
[mjr] Fix escaping mailbox names that contain utf7-imap encodings (Bug #14429).
[jan] Fix creating new spam folders.

Address Book Changes
[mjr] Fix synchronizing email fields in certain cases (Bug #14301).
[jan] Continue removing user data if a source doesn't have an __owner field.
[mjr] Fix over-agressive filtering of search results when searching via the API
      (Bug #13945).

Calendar Changes
[mjr] Fix potential memory issue with really long events (Bug #14453).
[mjr] Fix setting DELETE permissions (Bug #14447).
[mjr] More fixes and improvements related to preventing empty date values.
[jan] Fix losing shared users when adding invalid user name (Bug #14415).
[mjr] Fix displaying tag search results (Bug #14412).
[jan] Fix sender of event change notification messages.

Tasks Changes
[mjr] Fix sorting recurring tasks by due date (Bug #14403).

Library Changes
[jan] Use more efficient database access in SQL backends.
[jan] Run Memcache tests on PHP 7 too.

[jan] Add searchUsers() method.

[jan] Run Mongo tests on PHP 7 too.

[jan] Improve PHP 7.1 compatibility.

[jan] SECURITY: Add CSRF protection tokens to portal layout forms and fix open
      URL redirection (Reported by Florian Köllich
[jan] SECURITY: enable CSRF token for configuration form again (Reported by
      Dawid Gounski via Beyond Security's SecuriTeam Secure Disclosure
[mjr] Changes to support EAS attachment sync support for Appointment objects.
[mjr] Refactor ajax weather location autocompleter and add support for metar
[jan] Allow to specify user DN search parameters for LDAP with all bind methods
      (Request #11697,
[jan] Allow to use the pretty autocompleter without Ajax requests.
[mjr] Allow adding CSS files with Ajax response.
[mjr] Use syntaxhighlighter version 4.
[jan] Fix issue with prototype.js that keeps images in HTML messages from

[jan] Support PHP 7.1 with deprecated mcrypt extension.

[jan] Drop ereg_replace() usage (Remi Collet <>).

[jan] Make sure to return NULL values in result sets from Oracle.
[jan] Fix failing transactions if retrieving last INSERT ID from PostgreSQL
      fails on PHP 7.2.

[jan] Catch errors when checking one-time form tokens.

[jan] Fix Redis tests.

[jan] Fix parsing GPS exif data of a certain format.

[jan] Optimize deleting or moving a large number of messages.

[jan] Drop split() usage (Remi Collet <>).

[jan] Fix loading of Auth_SASL class (Ralf Becker

[jan] Fix setting compression threshold when using the memcache extension (Bug

[mjr] Fix parsing headers containing MIME encoded email addresses (Bug #14456).

[jan] SECURITY: Don't render SVG images in the browser to avoid XSS attacks
      (Reported by Dawid Gounski via Beyond Security's SecuriTeam Secure
      Disclosure program).
[mjr] Add SyntaxHighlighter version 4 support.

[jan] Support mongodb extension too (Remi Collet <>).

[jan] Fix and optimize removing preferences for a single application.
[jan] Add Horde_Prefs::removeAll().

[jan] Fix deleting retrieved tasks from SQL storage.

[jan] Add Horde_Rdo_Base#toArray() (Neal Thomas Oakey <>).
[jan] Make the JOIN type settable by mapper relationships (Neal Thomas Oakey

[mjr] Add support for METAR/TAF weather sources.

[jan] Fix tests for PHP 7.1.
[jan] Add Mongo test.

[jan] Update to PHPUnit 4.8.26 and dependencies.

[jan] SECURITY: Fix XSS via data:text/html content of form action and xlink
      attributes (Reported by Liuzhu <>).


[jan] Update Portuguese translation.
[jan] Update Basque translation.

Mail Changes
[jan] Remove <link rel=""> tags with "Previous" and "Next" from basic message
      view (Bug #14400).
[jan] Display translated mailbox names in drop down lists too.
[jan] Consistently display the raw mailbox name in mailbox element titles.
[jan] Unset window opener when opening new windows from HTML messages (João
      Machado <>).
[mjr] Fix re-adding an attachment after it has been removed from the compose
      window (Bug #14329).

Filter Changes
[jan] Don't ignore 'initial_page' registry setting.

Address Book Changes
[mjr] Fix searching via the API when specifying fields and not specifying
[mjr] Require Horde_Perms::DELETE for including an address book  as sync-able.

Calendar Changes
[mjr] Fix issue where it is possible to save an event with an empty start or
      end date on some browsers.
[mjr] Require Horde_Perms::DELETE for including a calendar as sync-able.
[mjr] Fix end date when toggling an all day event off (Bug #13979).
[jan] Fix showing error message if loading of remote calendars failed.

Tasks Changes
[mjr] Fix handling of start and due dates when syncing via EAS.
[jan] Avoid fatal errors if tasks don't have a UID.
[mjr] Fix parsing certain date formats (Bug #14348).
[jan] Fix deleteing alarms when completing a task.
[mjr] Require Horde_Perms::DELETE for including a tasklist as sync-able.

Notes Changes
[mjr] Require Horde_Perms::DELETE for including a notebook as sync-able.

Bookmarks Changes
[mjr] Honor ['content_index']['enabled'] setting (Bug #14345).

Library Changes
[mjr] Fix PHP error when handling a STATUS_FOLDERSYNC_REQUIRED.
[mjr] Protect against colliding synckeys.
[mjr] Support TLS encryption setting in Outlook autodiscovery responses.
[mjr] Fix mirroring client changes back to the client (Bug #14354).
[mjr] Fix iOS version detection for some iOS devices.
[mjr] Work around broken iOS behavior of sending empty POOMCONTACTS:Picture
      tags (Bug #14361).
[mjr] Improve performance in certain cases by updating collection syncstamps
      (Ticket #14368).
[mjr] Fix normalizing POOMCONTACTS:Birthday and other date fields for the
      "Nine" client.
[mjr] Honor the LOG_DETAILED debug log setting even when data is contained in a
[mjr] Birthday workaround fixes for BB10 (Bug #14375).
[mjr] Sanity check envelope date (Ticket #14381).
[mjr] Prevent sending empty message objects.
[mjr] Improved handling of task dates.
[mjr] Fix fatal error when handling email errors due to a typo (Bug #14398).

[jan] Update to PHP-CSS-Parser 7.0.3.

[mjr] Improve EAS logging when sending email messages.
[jan] Fix specifying custom log template (Viktor Szépe <>).
[jan] Upgrade prototype.js to version 1.7.3.
[jan] Pre-select the current locale when building the spellchecker languages
      (Request #14244).
[jan] Fix pre-selecting an item in key-navigation-lists.
[jan] Add classes to support the Horde 6 davusername hook.
[jan] Fix session_regenerate_id() warnings with PHP 7.
[jan] Fix running garbage collection on cached CSS and JS files (Bug #14285).

[jan] Add old Olson timezone names as aliases.

[jan] Drop ereg_replace() usage (Remi Collet <>).
[mjr] Fix setting Oracle charset in certain cases.

[mjr] Fix handling of incomplete date arrays (Neal Thomas Oakey
[mjr] Fix bug when using multiple sections (Neal Thomas Oakey

[jan] Fix tests.

[jan] Support HTTP PECL extension version 3.x.

[mjr] Add sanity check for malformed offset in Date header (Bug #14381).
[mjr] Fix fatal error in certain cases when performing a BODY[HEADER.FIELDS]
[jan] Avoid notice with Horde_Mongo on PHP 7.
[mjr] Catch incorrectly localized Date headers.

[jan] Drop split() usage (Remi Collet <>).

[jan] Avoid notice with Horde_Mongo on PHP 7.

[jan] Fix locking.
[jan] Add support for memcached extension and PHP 7.

[mjr] Add sanity check for malformed offset in Date header (Bug #14381).
[jan] Add Horde_Mime_Part#isAttachment().
[mjr] Add workaround for failures due to sending broken rfc822/message
      attachments (Bug #14324).
[mjr] Catch incorrectly localized Date headers.

[mjr] Fix fatal error related to setting timezone in WWO driver (Bug #14289).
[jan] Fix translations of weather alert types and significances.
[jan] Calculate time of last condition update more precisely.

[mjr] Fix handling of text/clob fields (Bug #14357).

[jan] Update bundled code from github.

[mjr] Fix detecting certain types of broken UTF-8 strings.

[jan] Fix creating the vfsroot when using paths in the 'hostspec' parameter of
      the Smb driver.
[jan] Don't change directory when listing folders in File backend.
[jan] Allow to specify root folder ('/') as 'vfsroot' parameter.


[jan] Update Greek translation (Limperis Antonis <>).

Mail Changes
[mjr] Fix renaming subfolders in basic view (Bug #14254).
[mjr] Fix display of mailbox sizes in basic view (Bug #14308).
[mjr] Fix fatal error when deleting messages in basic view when IMAP server
      does not support QRESYNC or CONDSTORE (Bug #14257).

Filter Changes
[jan] Don't duplicate messages in Procmail's vacation recipe if excluding email
      addresses (, Bug #14275).
[jan] Remove stop-script feature from Procmail driver.

Address Book Changes
[mjr] Fix persisting tags when moving or copying a contact to another address
      book (Bug #14312).
[mjr] Fix resetting state when changing sync_book prefs and device has forced
[mjr] Fix synchronizing contact notes via ActiveSync when no truncation value
      is requested by the client (Bug #14307).

Tasks Changes
[jan] Fix regression with date picker in tasks form (Bug #14303).
[mjr] Fix handling EAS categories/tags.

Library Changes
[mjr] Improve handling of when a client sends an incorrect synckey.

[mjr] Fix creating/removing mailbox in cyrsql driver
      (, Bug #14295).

[jan] Work around broken PGP key servers.

[jan] Update to PHP-CSS-Parser 7.0.2 (Request #14297).

[jan] Fix down migration of database schema.

[jan] Add a few common aliases for the log level constants.
[jan] Allow to have mltiple log level names with the same value.

[jan] Add Horde_Nls::getTimezonesWithAbbreviations().


[jan] Update Greek translation (Limperis Antonis <>).

Horde Changes
[mjr] Remove broken Facebook posting functionality from the Facebook block.
[jan] Check if temporary directory is writable
      (, Request #14237).

Mail Changes
[mjr] Fix opening compose window on IE when uploads are disabled (Bug #14267).
[jan] Fix creating new trash folder from preference screen.
[jan] Fix finding reply or forward text from signed or encrypted messages with
      HTML content.

Filter Changes
[mjr] Fix PHP deprecated warnings in unit test (PR #176, Mathieu Parent
[mjr] Honor 'date', 'echo', and 'ls' path overrides (Bug #14284).
[jan] Fix Oracle compatibility (Bug #14262).

Address Book Changes
[mjr] Honor alternative_name mapping (Bug #14280).
[mjr] Fix dealing with orphaned virtual address books.

Calendar Changes
[mjr] Fix updating list of resource calendars in resource group dialog (Bug
[jan] Fixed several issues with resource management.
[mjr] Fix typo preventing deletion of events from dynamic view (Bug #14256).
[jan] Handle gracefully if the base event of an imported recurrence exception
      is no longer recurring (Bug #14249).
[mjr] Fix issue deleting and closing event dialog during event deletion.
[mjr] Honor the SCHEDULE-AGENT attribute during CalDAV import.
[mjr] Add missing EAS ghosted property support for all EAS versions. Prevents
      potential loss of event data during synchronization.

Tasks Changes
[mjr] Honor date_format prefs in Task form (Bug #14287).

Bookmarks Changes
[cjh] Fix error when deleting bookmarks.

Library Changes
[jan] Mark PHP 7 as supported.

[mjr] Fix possible leaking of Horde_Imap_Client Exceptions.
[mjr] Fix reversed login in GHOSTED element handling.
[mjr] Changes for EAS 16.0 support.
[mjr] Fix error when attempting to rewrite previous syncstate.
[mjr] Another fix for GHOSTED support on certain clients.
[mjr] Fix regression in handling all day events in EAS versions prior to 16.0.
[mjr] Fix undefined variable notices (Bug #14251).
[mjr] Fix WBXML output when allday event exceptions have no starttime set (Bug
[mjr] Fix calculation of when to send MOREAVAILABLE tag.
[mjr] More fixes for allday exception events (Bug #14255).
[mjr] Improvements to ActiveSync SETTINGS_ACCOUNTS response data.
[mjr] Prevent mirroring back email category changes.
[mjr] Fix the workaround for some versions of Outlook's broken behavior
      regarding moving email messages.
[mjr] Improve allday event handling in appointment objects (Bug #14278).
[mjr] Work around BC break in PHP 5.5.10 with converting timezone abbreviations
      to full timezone names.

[jan] Fix incomplete migration from old to new garbage collection in file
      backend (Bug #14258).

[mjr] Improvements to GHOSTED/SUPPORTED handling for ActiveSync.
[mjr] Do not throw a fatal error if a meeting request can not be deleted after
      responding to it.
[mjr] Changes for EAS 16.0 support.
[mjr] Honor the disabled property when rendering boolean form types.
[jan] Fix returning to last page after problem reporting from AJAX pages (Bug
[jan] Fix updating group cache with LDAP backend.
[jan] Horde_Registry_Nlsconfig#validLang() checks now if a locale is installed
      (Request #10457).
[jan] Add option to always lowercase user names after logging in.
[mjr] Improvements to ActiveSync SETTINGS_ACCOUNTS response data.
[mjr] Fix issues with ActiveSync clients and user defined message flags.
[jan] Fix logging in from a different page than the login page (Bug #14231).
[jan] Add Horde_Core_Auth_Application#listNames().
[jan] Don't call authusername() hook on administrator names when running CLI
[mjr] Fix fatal error with broken EAS clients searching the Outbox.

[jan] Try three times to retrieve public PGP if the keyserver pool contains
      broken servers.
[jan] Fix throwing exception if verifying a PGP signature failed.

[jan] Add Horde_Date::getTimezoneAlias().

[mjr] Fixes for PHP 7.1.

[jan] Fix compression with Closure.

[jan] Fix usage of 'tlsv1' connection setting (Ralf Becker
[jan] Fix setting authentication credentials from login() (Ralf Becker
[jan] Fix throwing exceptions (Ralf Becker <>).

[jan] Bump earliest supported PostgreSQL version to 8.3.
[jan] Improve getting tables and indexes from PostgreSQL servers (Ivan Sergio
      Borgonovo <>).

[mjr] Allow non-breaking space to match in a telephone field (Request #14235).

[mjr] Work around BC break in PHP 5.5.10 with converting timezone abbreviations
      to full timezone names.

[jan] Add temp_dir configuration parameter to OpenOffice/LibreOffice viewer
      (Request #11756).

[jan] Protect against certain share tables corruption (Bug #14259).

[jan] Support more timezone names in Horde_Timezone#getZone().


[jan] Use access rules compatible with both Apache 2.2 and 2.4.

Horde Changes
[jan] SECURITY: Fix XSS vulnerability in menu bar exposed by few applications
      (Bug #14213).
[jan] Add more detailed user DN settings to Kolab group configuration (Request
[jan] Fix returning to last page after problem reporting from AJAX pages (Bug
[jan] Fix custom database configuration for groups (Bug #11664).
[mjr] Fix reporting results for non-select queries in administrative sql shell
      (Bug #14216).

Mail Changes
[jan] Don't strip PGP mime parts when saving sent messages (Bug #14233).
[jan] Fix retrieving public PGP keys with certain HTTP client backends.
[jan] Send MDNs from the correct identity (Bug #14034).
[jan] Fix autocompleter filtering if items exceed the maximum size
      (, Bug #13984).
[jan] Allow to disable remote accounts by locking the preference.
[jan] Fix setting title with newmail count in IE11 and Edge (Bug #14189).
[jan] Fix wrapping of plain text converted from HTML MIME parts.

Filters Changes
[jan] Fix editing shared rulesets (Bug #12694).
[jan] Allow to edit permissions of another user's rules if that user assigned
[jan] Fix variable name in vacation_addresses hook example.
[jan] Correctly save names of mailbox created from the rule form (Bug #14150).
[mjr] Fix invalid URLs in certain forms when cookies are disabled (Bug #14148).

Address Book Changes
[jan] Fix building search query if some fields are set for strict search (Bug
[mjr] Fix splitting tags over ActiveSync (Bug #14218).
[mjr] Fix searching within virtual address books (Bug #14155).
[mjr] Fix import of vCard with single component via API.
[mjr] Fix regression in removing all contacts from a single address book in the
      SQL driver (Bug #14145, Guenter Bartsch

Calendar Changes
[mjr] Fix missing truncated event description when using ActiveSync.
[jan] Fix week number in basic view if week starts on Sundays.
[mjr] Fix issue where new event could be created with exceptions from
      previously edited event.
[jan] Mark preferences only available in basic mode.
[jan] Fix accidental deletion of events if importing recurring events without a
      UID attribute (Bug #14208).
[mjr] Honor confirm_delete preference in dynamic view (Bug #14188).
[mjr] Correctly deal with cancelled meetings via ActiveSync.
[mjr] Fix visibility of alarm titles when alarm is generated via CLI (Bug
[mjr] Fix display of embed code by adding the full url.

Tasks Changes
[mjr] Enforce child tasks must be completed before parent tasks in edit form
      (Bug #12308).
[mjr] Fix possible fatal error due to tasks created with an alarm but no due
      date (Bug #14214).
[mjr] Fix storage of parent field when using Kolab driver (Bug #14197,
[mjr] Fix switching tab/filters when using Kolab driver (Bug #14196,
[mjr] Fix moving subtasks to another tasklist when parent task is moved (Bug
[mjr] Fix fatal error when saving tasks when system shares are present in
      certain cases.
[mjr] Return recurring tasks via listTimeObjects API (Bug #14137).
[mjr] Prevent orphaning tasks via the API.

Notes Changes
[mjr] Fix fatal error when removing notepads in certain cases.

File Manager Changes
[jan] Fix fatal error when cutting and pasting files on the same backend.

Bookmarks Changes
[mjr] Fix tag links when tags contain URL special characters.

Timeobject Changes
[jan] Add Italian translation (Massimo Balestrieri <>).

Library Changes
[jan] Improve Oracle compatibility.

[mjr] Fix RECUR_YEARLY_DAY recurrences showing up every day.
[mjr] Fix regression introduced by checking device remote wipe during PING
[mjr] Fix mailbox searches with non 7-bit characters.
[mjr] Allow global request window size limit to be overridden.
[mjr] Fix issue where global request window size was being reached prematurely.
[mjr] Fix potential fatal error due to incorrect exception name.
[mjr] Fix issue that prevents new device being added if an entry exists in the
      device user table but not the device table (Bug #14147).
[mjr] OL2016 added to device multiplex settings.
[mjr] Improved workaround for clients with broken picture tag handling.

[mjr] Don't set the empty_file_input_value quirk for recent Safari versions
      (Bug #14207).

[jan] Improve performance and memory consumption of garbage collection in File
[jan] Fix garbage collection in File driver.
[jan] Fix caching issues within the same request in the Memcache driver.
[jan] Fix the Mongo driver's expire() if not using a logger.
[jan] Add unit tests.

[mjr] SECURITY: Fix XSS in Horde_Core_VarRenderer_Html (reported by Centurion
      Information Security <>).
[jan] Pass Horde_Cache to Horde_Group if group caching enabled.
[mjr] Fix handling of empty tags strings in certain use cases (Bug #14203).
[mjr] Fix fatal error when using count_bad_logins in SQL auth driver.
[mjr] Support sending MDN via ActiveSync (Request #23080).
[mjr] Fix issue with synchronizing IMAP folder names that contain only numbers.
[mjr] Small logging improvements for ActiveSync.
[mjr] Match various session parameters in the NULL driver.

[jan] Add Horde_Crypt_Pgp::pgpPacketInformationMultiple() and
      Horde_Crypt_Pgp_Backend_Binary::packetInfoMultiple() (Request #13190).
[jan] Fix retrieving PGP keys from the keyserver with certain HTTP client
[jan] Fix creating PGP keys with comments (Bug #14125).

[mjr] Add Horde_Date_Recurrence::isEqual().

[jan] Bump earliest supported PostgreSQL version to 8.3.
[jan] Improve getting tables and indexes from PostgreSQL servers (Ivan Sergio
      Borgonovo <>).
[mjr] Fix SQL error when setting blob fields to empty in oracle driver (Bug
[jan] Add 'status' argument to horde-db-migrate-component (Nicolas Rochelemagne

[jan] Fix field types being overwritten in certain cases.
[jan] Allow any empty format specifiers for the monthdayyear field (Bug #14130).

[jan] Add caching support.

[jan] Fix disabling SSL certificate hostname check (Thomas Jarosch
      <>, Bug #12929).

[mjr] Fix cases where incorrect transition times were being returned (Bug

[jan] Don't try LOGIN authentication over secure connections if explicitly
[mjr] Fix fatal error during shutdown due to incorrect exception name.
[jan] Fix broken ID requests under certain circumstances.
[jan] Fix parsing IMAP responses with tilde characters.

[mjr] Fix decoding base64 encoded Kolab objects (Bug #14199,
[mjr] Fix updating Kolab data that contains non 7-bit data (Bug #14201).
[mjr] Implement a token based syncronization strategy for servers with
      QRESYNC/MODSEQ support.
[mjr] Improve debug logging.
[mjr] Add full Horde_History support for better Kolab<->Horde<->Sync client

[jan] Add temp_dir configuration parameter to OpenOffice/LibreOffice viewer
      (Request #11756).

[mjr] Use NULL instead of an empty string in the perms_parents field for root

[jan] Catch Horde_Date exceptions and try harder to provide dates for weather
[jan] Fix undefined variable warnings.

[jan] Fix updating large files in Oracle backends.
[jan] Fix writing big session data to Oracle (Bug #14175).

[jan] Enable TLS 1.1 and 1.2 connections (Request #14190).

[jan] Split large objects into multiple messages (, Request
[jan] Remove workarounds for ancient Synthesis clients (Bug #10942).

[jan] Add Horde_Test_Stub_Registry#setConfigFile() to provide pre-configured
      Horde_Test_Stub_Registry_Loadconfig objects.

[mjr] Fix generation of broken VTIMEZONE components for certain Rules (Bug


[jan] Update Italian translation.
[mjr] Remove object reference from Content when object is deleted (Bug #14112).
[mjr] Remove tags from Content when tagged object is deleted (Bug #14112).

Horde Changes
[mjr] SECURITY: Protect against CSRF attacks on various admin pages.
[jan] Don't apply access keys to checkbox and radiobox rows in the sidebar
      (Bug #14103).
[jan] Send correct MIME type for non-statically cached javascript files.
[mjr] Added configuration support for version 2 of WorldWeatherOnline's API.

Mail Changes
[mjr] Request that the contacts API only consider email fields when detecting
      duplicates during automatic saving of attendees to the address book (Bug
[jan] Don't show "Create Keys" button if creating PGP keys is disabled
      (, Request #14096).
[mjr] Fix displaying iTips with certain locale/date_format preference
      combinations (Bug #14076).

Filters Changes
[mjr] Add database migration for fixing corrupt rule ordering.
[mjr] Fix corruption of rule order when reordering rules in certain cases.

Address Book Changes
[mjr] Better prevention of importing duplicate contacts with same email
      addresses via the API (Bug #14119).
[mjr] Allow API to search all email type fields when calling getField().
[mjr] Fix removing all contacts owned by a specific user.
[jan] Fix inserting and updating photos with Oracle backends.
[mjr] Fix incorrectly populating email field when importing vCard (Bug #14046).

Calendar Changes
[mjr] Fix issue when replacing an event via the API when the attendee list
[mjr] Fix exporting events from Horde_Perms::SHOW calendars over DAV (Bug
[mjr] Send CANCEL iTip when attendee is removed from a meeting (Request
[mjr] Fix incorrect offset of freebusy times in certain cases (Bug #14084).
[mjr] Fix handling of email groups as attendees (Bug #14093).
[mjr] Fix importing text/calendar data via API (Bug #14089).

Library Changes
[jan] Catch possible exceptions in shutdown methods.

[mjr] Fix issue in sending email from client due to input stream not being
      seekable on some systems (Bug #13160).
[mjr] Work around bug in early versions of iOS that could cause a contact's
      picture to be removed on the server.
[mjr] Improved client and version detection, especially for iOS devices.
[mjr] Fixed bug that was causing SUPPORTED data to be overwritten.
[mjr] Change some ERR log level entries to WARN and some other small logging
[mjr] Don't take sub-parts of rfc822/message parts as attachments.
[mjr] Fix handling of meeting requests that contain no DTEND attribute.
[mjr] Fix parsing of SETTINGS request that was causing a harmless WBXML parsing
[mjr] Explicitly request a FOLDERSYNC when backend id is not found.
[mjr] Fix corruption of base64 encoded text parts in certain cases (Bug #14092).
[mjr] Work around bug in various versions of PHP 5.5 and 5.6 regarding
      base64-encode stream filters (Bug #14086).
[mjr] Fix issue where incorrect text/html part is choosen as the main body part.

[mjr] Fix ajax updating of Weather block when weather map is shown.
[mjr] Fix detecting an application's ability to send Horde_Alarm notifications
      (Bug #14098).
[mjr] ActiveSync logging improvements.
[mjr] Add support for OpenWeatherMap layers in Horde_Map.
[mjr] Fix edge-case issue with ActiveSync folder list generation when installed
      application contains no user writable sources.
[mjr] Fix dependency on possibly missing Horde_Kolab_Storage_HistoryPrefix
      interface (Bug #14099).
[mjr] Add beforeUpdate callback to prettyautocompleter.js.
[mjr] Support configuration for version 2 of WorldWeatherOnline's API.

[mjr] Fix PHP 5.3 incompatibility (Bug #14090).

[cjh] Fix EXIF data not being returned in Bundled driver.

[mjr] Avoid PHP warning when listing mailboxes without LIST-STATUS (Bug #14097).
[mms] Improved performance of Horde_Imap_Client_Data_Thread object when
      containing large number of messages (Request #14075).
[mms] Catch translation errors when creating Exceptions (PR #143;

[mjr] Correctly work around PHP bug 65776.

[jan] Add ALPHA-3 country codes.

[jan] Do not silent the potentially fatal require_once.

[mjr] Avoid some PHP warnings.

[jan] Remove unnecessary include.

[mjr] Add support for OpenWeatherMap API.
[mjr] Add support for radar maps if provider provides them.
[mjr] Add support for weather alerts.
[mjr] Update WWO to support the v2 API (Request #14094).

[jan] Test environment improvements.


File Manager Changes
[mjr] SECURITY: Fix XSS vulnerability when viewing directory contents
      (Discovered by


[mjr] Bundle release to fix version numbers in package file.


[jan] Update Czech translation.
[jan] Update Italian translation.
[jan] Update German translation.
[jan] Update Hungarian translation.

Horde Changes
[mjr] Don't create a session for Webdav requests (Bug #14040).
[jan] Mark PHP 5.6 as officially supported.
[mjr] Fix some issues with the permission interface when a value of 0 is a
      valid permission value (Bug #14025).

Mail Changes
[mms] Ensure mailbox name is a valid string (Bug #14049).

Filters Changes
[mjr] Fix using transport parameters in Procmail driver.
[mjr] Fix selecting incorrect rule when performing any action after reordering
      (Bug #14064 and Bug #13643).
[jan] Fix duplicate messages when using the redirect-and-keep rule with
      Procmail backends.

Address Book Changes
[mjr] Fix issue where sidebar links point to incorrect address book.

Calendar Changes
[mjr] Fix enabling deletion of resources for non-admin users (Bug #14069).
[mjr] Honor workweek view as the login_view (Bug #14042).
[mjr] Fix Permission Denied error after removing a currently displayed
      timeObject (Bug #14022).
[jan] Enable purge calendar checkbox if user has delete permissions.
[mjr] Honor locking the remote_cals preference.
[mjr] Fix detecting duplicate events during import via the API (Bug #14018).

Notes Changes
[mjr] Fix inconsistent handling of incoming HTML notes from ActiveSync clients
      (Bug #14045).
[mjr] Allow more reasonable length of description field to interop better with
      synchronized clients (Bug #14041).

Bookmarks Changes
[mjr] Fix shebang (after install) for trean scripts (Remi Collet
[mjr] Use the favicon when returning tag search results via the API if

Library Changes
[jan] Update Galician translation.
[jan] Update Ukrainian translation.
[jan] Fix Composer files.

[mjr] Fix display of certain Multipart/Report messages, on certain clients.
[mjr] Improve handling of authentication/policy errors.
[mjr] Fix renaming email folder when using PostgreSQL state storage (Bug

[jan] SECURITY: Don't allow to login to LDAP with an emtpy password.
[mjr] Ensure we rebind as configured user after testing auth user credentials.

[jan] SECURITY: Don't allow to login with an empty password.
[mjr] Map Kolab distribution-list items to the contacts API (Bug #14038).
[mjr] Prevent various broken behaviors on ActiveSync clients due to errors
      copying an email to sent mail folder or updating the maillog (Bug
[jan] Give administrators access to all groups, even with
      $conf['share']['any_group'] disabled.

[jan] Fix issues with certain locales like Turkish.
[mms] Split gnupg command-line binary specific code out into a separate PGP
      backend driver.
[mms] S/MIME encryption is now done only with AES (if using PHP 5.4+) or 3DES.

[jan] Prevent segfault due to non-ascii characters on some systems.
[jan] Fix PHP7 error because of reserved "String".

[jan] SECURITY: Fixed XSS in form renderer.
[mjr] Prevent empty email addresses from being detected as a valid "multiple"
      email (Bug #14063).

[jan] Improve performance of database migration.

[jan] Fix generated VALARM TRIGGER attributes with empty duration (Ralf Becker

[mms] Ensure FETCH stream data is rewound before returning (Bug #14013).
[mjr] Fix detecting empty ID queries (Bug #14044).

[mms] Fix validating sent messages if the driver supports EAI addresses.
[mjr] Fix sending mail via PHP's mail function (Steffen Lindner

[mjr] Fix issues when a value of 0 is a valid value for the permission (Bug

[mjr] Send more appropriate HTTP status codes on ActiveSync authentication

[jan] Fix test that could fail due to changes in glibc.

[jan] Make 'port' parameter of Smb driver optional.
[jan] Add 'domain' parameter to Smb driver.
[jan] Allow to specify a fixed leading directory in Smb driver.


Horde Changes
[jan] Use Horde_Ldap in example preference hooks.
[jan] Convert REDIRECT_HTTP_AUTHORIZATION to HTTP authentication headers too.
[jan] Display MOTD on mobile login screen.

Mail Changes
[jan] Don't focus body field when composing message with HTML editor.
[jan] Protect against infinite request loop if expanding all mailboxes.
[jan] Fix redirecting in smartmobile mode (Bug #14002).
[jan] Fix address autocompletion in redirection window of smartmobile mode
      (Bug #14002).
[jan] Fix setting single recipients in redirection window in basic mode (Bug
[jan] Don't switch to regular compose view after an error in the redirection
      view in basic mode.
[jan] Fix cancelling redirection window in basic mode (Bug #14002).

Address Book Changes
[jan] Fix error when removing user data.

Calendar Changes
[jan] Don't delete existing exceptions and completions when editing recurring
      events or tasks.
[jan] Fix importing iCalendar events via the API (Bug #13975).

Tasks Changes
[jan] Fix positioning of dialog windows.
[jan] Don't delete existing completions when editing a recurring task.
[jan] Only delete the last completion when toggling a recurring task to

Library Changes
[mjr] Reduce memory usage during IMAP FETCH with very large mailboxes.
[mjr] Workaround broken CGI behavior of sending incorrect authentication
[mjr] Fix issues with detecting changes in FILTERTYPE.
[mjr] Performance improvements during IMAP server change detection for
      CONDSTORE servers, especially during FILTERTYPE changes.
[mjr] Fix issue when using REPLACEMIME feature of SENDMAIL and some other edge
      cases (Bug #13901).
[mjr] Fix off by one error that could cause some errors in downstream client
[mjr] Fix detecting changes in email message "Flag" sent from certain clients.
[mjr] Fix regression causing useless backend query.
[mjr] Fix bug causing changes to be sent as new messages, thus causing them to
      be ignored by most clients.
[mjr] Fix sending SMIME signed/encrypted mail when using streams.
[mjr] Fix regression that could cause loss of mailbox sync.
[mjr] Fix issue that could cause sending the same email to the client multiple
      times (Bug #13985).
[mjr] Performance and memory improvements, especially during initial sync to
      Outlook clients.

[mjr] Fix typo that was causing ActiveSync FILTERTYPE changes to go undetected.
[mjr] Support for Horde_History in Horde_Kolab_Storage. Requires
      Horde_Kolab_Storage 2.2.0+.
[jan] Don't allow empty From: addresses if verifying identities.
[mjr] Fix fatal error when disconnecting a user Twitter account.
[mjr] Work around broken ActiveSync clients that send incorrect line lengths
      for text/html parts (Bug #13901).
[mjr] Fix issue causing message text from email forwarded from ActiveSync
      clients to be missing (Bug #14000).
[mjr] Fix duplicate attachments in certain messages that were forwarded by
      ActiveSync clients.
[mjr] Fix issue that could cause sending the same email to an ActiveSync client
      multiple times (Bug #13985).
[mjr] Performance and memory improvements to ActiveSync.

[mms] Add Horde_Crypt_Blowfish_Pbkdf2.

[jan] Support monthly recurrence by last weekday (Request #1922).
[jan] Support negative occurrences in Horde_Date#setNthWeekday().
[jan] Add Galician translation.

[mms] Add Horde_Icalendar#getAttributeSingle().

[mjr] Fix detecting changes when using tokens.
[mms] Add support for SCRAM-SHA-1 authentication (RFC 5802) for both IMAP and
      POP3 drivers.
[mms] Directly store literal data in a separate stream when parsing IMAP
      tokens, so we don't have to duplicate the stream later when processing it.
[mms] Don't load literal IMAP data into a string variable when tokenizing IMAP
[mms] Fix search queries where ID list given is explicitly empty, indicating
      that a match can never be successful (Bug #13971).
[mms] Fix expunging in certain cases when UIDPLUS is not available (Bug #13970;
      Robin McCorkell <>).

[mms] Correctly output MIME headers when generating multipart/digest parts (RFC
      2047 [5.1.5]).

[mjr] Remove obsolete end_session endpoint.

[jan] Fix returning user and group permissions for system shares using the
      SQLNG driver.

[mms] Fix some autoloading issues.


Horde Changes
[jan] SECURITY: Fix XSS vulnerability in group administration.
[mjr] Fix display of Facebook block by removing no longer allowed notification

Mail Changes
[mms] SECURITY: Fix XSS vulnerability when manually switching between plaintext
      -> HTML compose mode.
[jan] Update Bcc address when switching identities (João Machado
      <>, Bug #13922).
[jan] Fix protocol name in POP3 example backend configuration.
[mms] Don't honor linked attachment limit configuration options if linked
      attachments are disabled (Bug #13665).

Filters Changes
[jan] Add Galician translation.
[mms] Enforce selection of a target folder for the spam filter in the UI (Bug
[jan] Fix Sieve error if days of vacation is unset (Bug #13890).

Address Book Changes
[jan] Don't try to load Content application if tags are disabled.
[mjr] Fix adding tags to new contacts (Bug #13884).
[jan] Fix waiting for replication on LDAP backend.

Calendar Changes
[jan] Fix building recipient list for event update notifications.
[mjr] Honor background color for listTimeObjects API calendars (Bug #13951).
[jan] Always sort users in advanced sharing dialog (Bug #13938).
[mjr] Fix saving recurring event after a change in resources (Bug #13921).
[mjr] Fix creating recurrence exceptions from CalDAV clients.
[jan] Added an index to find base events of recurrence exceptions faster.
[jan] Fix finding duplicate events by UID.
[mjr] Fix updating FB data when start date changes.
[mjr] Fix detecting attendees when email address is not lowercase (Bug #13905).
[jan] Fix duplicate group names in sharing dialog.
[jan] Fix JavaScript error when saving an unselected calendar.
[mjr] Fix using custom SQL configuration parameters.

Notes Changes
[mjr] Fix using custom SQL configuration parameters.

Library Changes
[jan] Fix issues with certain locales like Turkish.

[mjr] Fix issue where badly formed emails could cause out of memory error.
[mjr] Fix issue that could break sync if a badly formed email address could not
      be parsed.
[mjr] Fix PARTIAL SYNC handling when no COLLECTIONS are provided (Bug #13912).
[mjr] Detect stock Android 5.0 multiplex settings.
[mjr] Fix broken sync due to clients that send badly formatted date strings.
[mjr] Fix fatal error when dealing with iTip replies from vTodo requests.
[mjr] Return email search results in descending order by arrival date.
[mjr] Add HTCOne Mini to device detection and set multiplex ability
[mjr] Fix handling of PARTIAL and EMPTY sync requests in certain cases (Bug

[jan] Improve salt generation for Blowfish hashes.

[jan] Fix fatal error due to incorrect class name case (Ralph Becker
[mms] Fix leaking Horde_Date exceptions.
[mjr] Improve detection of ORGANIZER when decoding MAPI encoded vTODOs.
[mms] Fix decoding of Unicode Strings in TNEF MAPI attributes.
[mjr] Fix possible fatal error when parsing certain types of Vtodo files.
[mjr] Add support for generating vTodo from TNEF embedded MAPI TASK objects.
[mjr] Add option to inject a logger object.
[mjr] Improve support for decompressing TNEF data.

[jan] Upgrade prototype.js to version 1.7.2.
[jan] Fix editing existing LDAP timeout configuration (Bug #13949).
[mms] Fix regression in removing CBC cipher mode when encrypting data within a
      session (Bug #13869).
[mjr] Fix combination X509 and http plain authentication with ActiveSync.
[jan] Revert to using ECB mode for encryption, to not break existing
      credentials (Bug #13869).
[mjr] Fix replying to email from search results in some broken ActiveSync
      clients (Bug #13878).
[jan] Fix propagating the LDAP hostspec configuration field (Bug #13872).

[jan] Add schema definition for LDAP groups.
[jan] Don't throw exception from listUsers() if group not found in LDAP
      directory (Bug #13879).

[jan] Fix setting key prefixes.

[jan] Make cached entries available to garbage collection.

[jan] Allow to pass Horde_Url objects as URI (Bug #13897).
[jan] Make Horde_Http_Base_Response::headers array keys lowercase again (Bug
[jan] Fix return code from multi-request actions in Peclhttp2 driver.

[mms] Use intl extension, if installed, and fallback to a locally-patched
      version of the true/php-punycode package.

[jan] Fix transparent rectangles in SVG backend.
[jan] Fix setting background color in SVG backend.
[jan] Add 'ratio' parameter to Horde_Image_Effect_Imagick_LiquidResize.
[jan] Fix catching exceptions from imagick extension.
[jan] Complete the backends' capabilities properties.
[jan] Fix SVG and SWF backends.
[jan] Fix setting background color in Horde_Image_Swf constructor.
[jan] Send Content-Type header in Horde_Image_Svg#display().
[jan] Improve arc rendering with Im backend.
[jan] Enable antialiasing in GD backend if available.
[jan] Implement Horde_Image_Imagick::arc().
[jan] Fix rounded rectangle drawing with GD backend.
[jan] Fix transparency issues with GD backend.
[jan] Fix autoloading of effect classes.
[jan] Fix border effect with GD driver.
[jan] Don't error out in effects if a logger hasn't been set.
[jan] Make getImageAtIndex() always return an image.
[jan] Don't error our when calling unsupported manipulation methods.
[jan] Make Horde_Image::arcPoints() work with any angles.
[jan] Fix some HTML color name to RGB value mappings.
[jan] Add Horde_Image_Rgb class and remove $horde_image_rgb_colors global.
[jan] Add Null driver for basics like just displaying the image.
[mjr] Fix incorrect color renderings in certain situations.

[mms] Fix parsing mailbox name from STATUS response on servers that have the
      UTF8 extension enabled.
[jan] Fix searching with non-ASCII strings in AND/OR-combined searches.
[jan] Fix issues with certain locales like Turkish.
[mms] Pipeline ID command with other commands, if possible.
[jan] Add parameter for stream context settings (Request #13730).

[mjr] Add support for iTip responses to vTodo requests.

[jan] Fix deleting object attachments from cache (Bug #13268).

[jan] Fix connection if using ldaps:// scheme (Bug #13858).

[mms] Add support for outputting comment information when writing an address.

[mjr] Remove bcmath extension requirement and add PEAR Math_BigInteger package
      in it's place.

[mms] Fix rare errors when multiple iterations are occurring on the same set of
      MIME parts.
[mms] Fix indexing MIME part when base is a multipart object.
[mms] Ignore broken headers when parsing header text.
[mms] Subpart manipulation should now be done via array access.
[mms] Add recurisve iteration to the Horde_Mime_Part object.
[mms] Work around broken line-oriented data when transfer encoding (Bug #13835).
[mms] Fix regression in using the deprecated Horde_Mime::generateMessageId()
      method (Bug #13846).
[mms] Add Horde_Mime_Headers_ContentId class.
[mms] Add Horde_Mime_Headers_ContentTransferEncoding class.
[mms] Added Horde_Mime_Headers_Element#isDefault().
[mms] Add interface to differentiate between MIME and non-MIME headers.
[mms] Content-Type and Content-Disposition related data is now handled
      internally in Horde_Mime_Part object by using Horde_Mime_Headers.
[mms] Added the Horde_Mime_Headers_ContentLanguage class.
[mms] Fix cloning of the Content-Type and Content-Disposition header objects.
[mms] Ensure that null bytes are filtered from MIME data that is contained in
      the headers.
[mms] Fix cloning of the Content-Type and Content-Disposition header objects.

[mms] Add optional support to determine if link text is a hostname when doing
      phishing analysis for the HTML driver.

[mjr] Fix fatal error when using pecl_http2.
[mjr] Fix possible PHP error when returning HTTP 500 response.

[mjr] Fix fatal error when using pecl_http2.

[mjr] Fix fatal error when using pecl_http (Bug #13897).

[jan] Add parameter for stream context settings (Request #13730).
[jan] Allow to pass hostname with protocol scheme prefix.
[jan] Add getStatus(), gets(), read(), and write().

[mms] Fix sending BODY keyword when debugging and SMTP server does not support
      8BITMIME extension.
[jan] Add parameter for stream context settings (Request #13730).
[jan] Fix notice if server doesn't support ENHANCEDSTATUSCODES.
[mms] Add 'localhost' parameter to Horde_Smtp (Request #13832).

[mms] Update to PHPUnit 4.5.0 and dependencies.

[mjr] Prevent malformed urls from leaking exceptions (Bug #13965).
[mjr] Fix failing tests on MacOS related to mulitbyte data contained in links.
[mjr] Add nestingLimit parameter to Html2text filter.
[jan] Add 'html' hint to Simplemarkup filter to indicate the input format.
[jan] Match simple markup spanning a complete line too.

[mms] Fix handling broken text input with all multibyte drivers.
[mms] Fix error detection when using Horde_String::substr() with mb_substr().

[jan] Fix PHP 7 compatibility (Remi Collet <>).


Horde Changes
[mms] Make dynamic context menus scrollable if taller than the browser screen
      height (Bug #13833).
[jan] Fix horde-import-squirrelmail-prefs script (Bug #13780).
[jan] Don't instantiate notification system for RPC requests.

Mail Changes
[mms] Fix rebuilding the folder tree translations when the language is changed
      in a session (Bug #13821).
[jan] Fix adding addresses from address book popup (Bug #13806).
[mjr] Fix fatal error when viewing a vTodo with attendees.
[jan] Make dependency on File_ASN1 optional.
[mms] Fix double listing of mailboxes in certain instances when subscriptions
      are active and unsubscribed mailboxes are shown.
[mms] Fix advanced search (Bug #13773).
[mjr] Fix handling of iTips indicating a change to a series exception (Bug
[mms] Fix parsing broken S/MIME messages that don't include the smime-type
      content-type parameter (Request #13661).
[mms] Fix regression when working with multiple selected messages with a POP3
      server (Bug #13759).
[mms] Only count successful compose mails when determining recipient limits
      (Bug #13751).

Filters Changes
[mms] Rate-limit filters drag/drop changes to prevent race conditions (Bug
[mms] Fix filter drag/drop ordering working in basic view (Bug #13820).
[mms] Maildir requires UTF7-IMAP encoding for folder names (Bug #13378).

Address Book Changes
[jan] Fix export format of tags to vCard 3.0 categories (Bug #13800).

Calendar Changes
[mjr] Fix generating calendar embed code (Bug #13828).
[jan] Don't wipe out whole calendars when PUTing individual events via WebDAV.

Tasks Changes
[jan] Don't list task lists without SHOW permissions (Bug #13837).
[jan] Use consistent checkbox.
[jan] Don't allow deletion of tasks with sub-tasks (Bug #13809).
[jan] Don't allow completion of tasks with incomplete sub-tasks and vice versa.
[jan] Don't wipe out whole task lists when PUTing individual tasks via WebDAV.

Notes Changes
[jan] Don't list notepads without SHOW permissions (Bug #13838).
[jan] Fix using custom SQL driver configuration.
[mjr] Fix truncation of body text when synchronizing over EAS when no
      truncationsize option is sent from client (Bug #13755).

Library Changes
[jan] Improve PSR-2 compatibility.

[mjr] Fix moving a mailbox to a new parent (Bug #13839).
[mjr] Always send the attachmentsenabled policy, even when it's the default
      value of 'enabled' (Bug #13827).
[mjr] Improve handling of FILTERTYPE changes after initial SYNC (Bug #13781).
[mjr] Add Date header to emails sent from broken HTC clients (Bug #13784).
[mjr] Add some more TRUNCATION related workarounds/fixes.
[mjr] Improve/fix support for handling OOF messages (Bug #13719).
[mjr] Fix incorrect converting of HTML to plaintext causing incorrect
      truncation size.
[mjr] Fix BC break due to MessageBodyData improvements (Bug #13768).
[mjr] Fix some WBXML parsing issues due to empty GET tags in SETTINGS requests.
[mjr] Correctly implement BODYPART handling (Bug #13729).
[mjr] Workaround some broken clients that send null content inside open/close
      tags instead of an empty tag (Bug #13719).
[mjr] Fix regression in detecting iTip requests (Bug #13739).
[mjr] Add support for clients that issue BODYPARTPREFERENCE options (Bug
[mjr] Fix handling POOMCALENDAR_UID values to prevent broken meeting request
[mjr] Fix handling of certain types of broken MIME messages (Bug #13728).
[mjr] Fix issue that could cause broken sync when an email contains no text
      parts (Bug #13711).

[mms] Fix fatal errors when stored alarm data cannot be unserialized.

[mms] Handle a cache miss by trying to load the class in its new location.

[mms] Add zlib driver and allow it to be considered a 'fast' compression driver
      (disabled by default).

[jan] Fix notice when deleting identities.
[jan] Fix NoSQL database name setting getting lost during configuration.
[jan] Allow to configure multiple LDAP servers and timeout value.
[mjr] Fixes for using ActiveSync without email sync enabled on Android 5
      (Niklas Forsdahl <>).
[mms] Calling an application's changeLanguage method on language change now
      handled by Horde_Registry.
[jan] Support non-ascii latin characters as access keys.
[mms] Use more secure CBC block cipher mode when storing encrypted Blowfish
      data inside the session.
[mms] If compressing/packaging javascript files, don't use pre-compressed
      version (if one exists) when generating.
[mjr] Improvements in ActiveSync to handling the case when FILTERTYPE changes
      (Bug #13781).
[mjr] Fix missing Date and From headers when saving sent mail from broken HTC
      clients (Bug #13784).
[jan] Fix user names via DAV access when using authusername hooks.
[jan] Fix updating of location in weather portal block.
[mjr] Improve/fix support for handling OOF messages in ActiveSync (Bug #13719).
[mms] Upgrade jQuery to v1.11.2.
[jan] Call preference hooks for default values of new identities.
[mms] Only load application notify handlers on demand.
[mjr] Allow disabling maillog synchronization with EAS clients (Bug #13747).
      the correct level.
[mjr] Add support for ActiveSync clients that issue BODYPARTPREFERENCE options
      (Bug #13729).

[jan] Make all PGP features locale-independent.
[mms] Fix parsing GPG packet information using the gnupg v2.1 binary.

[mms] Update PHP-CSS-Parser lib to latest dev to fix issues on PHP < 5.3.9 (Bug
[mms] Use composer to generate the distributed version of the PHP-CSS-Parser

[jan] Add unit tests for Memcache and Redis backends.

[jan] Add unit tests for PECL HTTP 1.x/2.x drivers.
[mms] Horde_Http_Base_Response#getHeader() is now case-insensitive for the
      header input (Bug #13736).

[jan] Fix install paths (Bug #13785).
[mms] Initial release.

[mjr] Improve stream handling in bundled EXIF driver (Request #13788).
[mms] Horde_Image_Exif_Bundled now supports reading data from a PHP stream,
      rather than a file.

[mms] Fix serialization of Horde_Imap_Client_Data_Fetch objects.
[mms] Workaround broken in-memory stream filter handling.
[mms] Fix handling mailbox cache data when the mailbox returns NOMODSEQ.
[mms] IMAP alerts can now be handled by registering an observer with the new
      Horde_Imap_Client_Base_Alerts object.

[mms] Silence code warnings for Closure compiler (Bug #13789).

[jan] Remove PHPUnit dependency.

[jan] Fix error when using custom separators in
[jan] Fix casefolding option not being passed to multivalued RDNs.
[jan] Fix exists() with multivalued RDNs.
[jan] Add 'timeout' parameter.

[mms] IDN support no longer requires intl to be built-in to PHP.

[mms] Fix setting a MIME part's contents when the data is the current stream
      resource of that part.
[mms] Fix MIME encoding the Content-Description header (Bug #13814).
[mms] Fix setting MIME IDs when a message/rfc822 part is the base of the part
[jan] Fix Horde_Mime::quotedPrintableEncode() (Bug #13769).
[mjr] Fix issue where long lines were not properly dealt with when binary
      transfer encoding was used (Bug #13709).
[mms] Added Horde_Mime_Filter_Encoding class.
[mms] MIME decoding uses windows-1252 charset by default when iso-8859-1 is
      identified in the MIME encoded string.
[mms] Move mime.mapping.php generation code from horde-support repository into
      doc/ directory.

[mms] Removed unused 'password' parameter.
[mms] Fix Horde_Prefs#isDefault() to return true if the given pref name doesn't
      exist in a scope.

[jan] Fix return errors from jsonrpc requests.

[mms] Failed recipients can now be determined via the
      Horde_Smtp_Exception_Recipients exception thrown when calling

[mms] Fix possible infinite loop when reading from a combined stream.

[mjr] Add method to obtain all logged events.
[mms] Fix install location for the phpunit libraries packaged locally via
[mms] Update to PHPUnit 4.4.0 and dependencies.
[jan] Add remoteHost() to Horde_Test_Stub_Registry.

[mms] Support display of IDN domains in URLs.

[jan] Use grapheme functions in Horde_String if intl extension is available.
[mms] Fix deleting multi-level temporary directories in

[jan] Fix updating quota when overwriting existing files.
[jan] Fix updating quota when using writeData() with FTP driver.
[jan] Fix setting permissions in Ssh2 driver (Bug #13783).


Horde Changes
[mjr] Fix performing actions from ActiveSync user preference page (Bug #13657).
[jan] Add missing 'secure' configuration for SMTP.

Mail Changes
[mms] Don't persist dynamic filter views across page reloads.
[mms] Fix message saving when using a POP3 server.
[jan] Fix JS error when using regexp characters in search string.
[mjr] Ensure we have a valid MIME part to display in thread view (Bug #13653).

Filters Changes
[mms] Fix determination of preferred backend (Bug #13548).

Address Book Changes
[jan] Use the SHOW permission to determine the sidebar address book list.

Calendar Changes
[mjr] SECURITY: Don't show private event details in daily agenda emails if not
      the owner (Bug #13660).
[jan] Make access to non-CalDAV remote calendars faster (Bug #12379).
[jan] Continue with further events if parsing of one remote event date fails.
[jan] Fix JS error in month view with more events today than the maximum
[mjr] Fix fatal error when creating or modifying an entry via PUT.

Tasks Changes
[mjr] Fix issue with initially creating nag_shares table.

Notes Changes
[jan] SECURITY: Fix permission check when editing notes (found by Christopher
      Neuhaus <>).
[mms] Added ability to link to note via API.

Library Changes
[mjr] Fix incorrect default values for BODYPREF TRUNCATIONSIZE values (Bug
[mjr] Fix regression in sending MIME messages as a result of a FETCH operation
      (Bug #13714).
[mjr] Fix issue that could cause mime boundry strings to leak into the message
      body when the message contained only a single part.
[mjr] Improvements and fixes to MIME truncation truncation handling.
[mjr] Fix limiting To: field in email sent to ActiveSync clients.
[mjr] Provisioning requirement is now set after the device object is obtained.
[mjr] Fix handling of MIME truncation in certain cases.
[mjr] Change the order various SYNC reply structures are sent to be more
      in-line with the spcification.
[mjr] Fix issue where sticky OPTIONS values were lost resulting in incorrect
      values for MIMESUPPORT and other values (Bug #12970).
[mjr] Added support for differentiating between S/MIME signed and S/MIME
      encrypted so the content-class property can be properly set (Bug #12970).

[jan] More compatibility fixes for Oracle.

[jan] Consider all user agents with "bot" in the name as robots.

[mjr] Fix broken MIME messages constructed from ActiveSync SMART replies to
      messages that contained a mulitpart/alternative part (Bug #13720).
[mjr] Fix issue that could cause incorrect truncation of ActiveSync emails.
[mms] Added Horde_Core_Mime_Headers_Received.
[mms] Added Horde_Registry#remoteHost().
[mms] Fix file permissions of dynamically generated static CSS/JS files.
[jan] Use correct user name as a fallback for identity full names with existing
      authusername hook.
[mjr] Add the activesync_provisioning_check hook.
[mjr] Fix determining multiplex settting for EAS notes (Bug #13637).
[mjr] Fix adding new tasklists from EAS (Bug #13642).
[jan] Update Czech translation (Michael Grafnetter

[jan] Fix using non-deprecated Content-Type for encrypted messages (Bug #13659).

[jan] Fix DAV client always using Digest authentication (Bug #13319).
[jan] Fix PUT request not passing content to the backend.

[jan] Make Oracle's updateBlob() compatible with PHP 5.3.
[jan] Fix using addColumn() with autoincrementKey types in SQLite.
[jan] Fix several issues with changing autoincrementKey columns in Oracle.
[mms] Fix SplitRead driver to work with the recent blob changes.
[jan] Fix returning primary key value from insertBlob().
[jan] Add Horde_Db_Adapter::updateBlob().
[jan] Add Horde_Db_Value_Text to encapsulate long text values.
[jan] Add missing insertBlob to adapter interface.

[jan] Fix migration with Oracle.

[mms] No longer call code that depends on Horde_Mime, which is not a required

[mms] Better cache unserialization error handling for all backends.
[mjr] Fix broken IMAP cache behavior in the DB driver when unserialization of a
      cached object fails.
[mms] Better error handling when IMAP connection is prematurely disconnected.
[mms] Fix regression in listMailboxes() for POP3 servers when 'flat' option is
[mms] Fix determining whether a command requires a continuation request, when
      the literal occurs within a nested list.
[mms] Ensure we don't use the same authentication method multiple times when
      logging into IMAP server.

[jan] Raise log level of errors from Closure compiler.

[mms] Added Horde_ListHeaders#listHeadersExist().

[mms] Added Horde_Mail_Rfc822_List#first() function.
[mms] Add property to address object to indicate whether it is an EAI address.
[mms] Transport driver now indicates whether it handles EAI data.
[mms] Support validation of EAI addresses (RFC 6532).
[mms] Add Horde_Mail_Mbox_Parse.

[mms] Fix race condition where memcache lock could be removed before the
      underlying locked data could be updated.

[mms] Improved sanity checking when adding header data.
[mms] Fix Horde_Mime_Headers_Deprecated#addReceivedHeader().
[mms] Fix Horde_Mime_Headers_Deprecated#listHeadersExists().
[mms] Horde_Mime_Headers has been rewritten.
[mms] Correctly handle content parameters in a case-insensitive manner.
[mms] Correctly pass the 'no_body' parameter to parts embedded in a
      message/rfc822 part in Horde_Mime_Part#parseMessage().
[mms] Fix parsing a base MIME-compliant message with no Content-Type
[mms] Horde_Mime::is8bit() no longer requires the charset parameter.
[mms] Improved MIME encoding.
[mms] Deprecated Horde_Mime::quotedPrintableEncode() and move to
[mms] Moved MIME ID manipulation/query methods out of Horde_Mime and into
[mms] Use string-based ABNF-based parser for scanning MIME content parameters
      instead of a regular expression (Bug #13587).
[mms] Moved content parameter handling methods out of Horde_Mime and into
[mms] Deprecated Horde_Mime::generateMessageId() and move to Horde_Mime_Headers.
[mms] Deprecated Horde_Mime::uudecode() and move to new Horde_Mime_Uudecode
[mms] Add Auto-Submitted header to outgoing MDN messages.

[mms] More thorough handling of tar.gz data.

[mms] Catch unknown errors when unpacking data.

[mms] Added Horde_Smtp_Exception property indicating whether error is permanent
      or transient.
[mms] Determine EAI and Body transport information by analyzing the message
      data, instead of requiring a parameter.
[mms] Add support for ETRN extension (RFC 1985).
[mms] Add support for BINARYMIME extension (RFC 3030).
[mms] Add support for CHUNKING extension (RFC 3030).

[jan] Throw InvalidArgumentException if passing incorrect arguments to

[mms] COPYING file did not contain the LGPL-3.0 addition to GPLv3.

[jan] Fix exporting notes to Funambol clients (, Bug #9487).
[jan] Fix creating server-client-mapping if backend returns multiple server IDs
      per client ID (, Bug #13706).

[jan] Add convertUsername() to Horde_Test_Stub_Registry.

[jan] Add Horde_Translation_Autodetect to support loading translations from
      Composer-installed packages (Renan Gonçalves <>).


Horde Changes
[mjr] Honor date_format_mini in Moon block (Bug #13628).
[jan] Fix spacing in top menu (Bug #13617).
[jan] Don't show password reset preferences if disabled in configuration (Bug
[mjr] Remove non-existent Yahoo Maps option for map tile provider.
[mms] Fix display of Horde stylesheets not served from the local server (i.e.
      via a CDN).
[jan] Hide weather portal block if weather configuration is disabled (Bug
[jan] Add show_encryption setting to HTTP authentication configuration
      (, Bug #13444).

Mail Changes
[mms] Fix handling authentication errors when they take place during an attempt
      to determine a mailbox's namespace.
[mms] Fix some folder display issues when not using IMAP subscriptions in
      dynamic view (Bug #13553).
[mms] Fix accessing dynamic compose page when file uploads are not available
      (Bug #13580).
[mms] Fix saving unique browser preferences for a specific backend in dynamic
[mms] Fix toggling select all checkbox in both dynamic mailbox layouts.

Filters Changes
[jan] Disable forward rule by default.
[mms] Fix checking the 'max_forward' permission (Bug #13568).
[mms] IMAP driver needs to explicitly search for UTF-8 text, since we don't
      restrict charset input at the UI level (Bug #13554).
[mjr] Fix issues when preferred configuration contains an array (Bug #13548).

Address Book Changes
[jan] Fix importing empty birthdays/anniversaries from vCard.
[mjr] Fix defaulting to the defined search fields when searching via the API.
[mjr] Fix broken EAS synchronization due to incorrect setting of the
      Categories field.

Calendar Changes
[jan] Support time label rotation in week and day views on IE 11.
[jan] Fix updating of task list view if no tasks are returned from server.
[jan] Fix ordering of sub-tasks.
[jan] Send iTip notifications even to attendees that are not required to attend
      (Bug #13600).
[jan] Fix notification and alarm issues if alarm is longer than a day (Bug
[jan] Fix closure compiler errors (Bug #13593).
[mjr] Fix checking resource availability when adding multiple resources (Bug

Tasks Changes
[jan] Fix search attribute of SQL shares on Oracle.
[mjr] Fix adding a new tasklist to the syncronized tasklists (Bug #13642).
[jan] Pass current start date of recurring tasks to dynamic interface.
[jan] Fix setting task list name for external tasks.
[jan] Fix link to create sub-task from a task view.
[jan] Fix listing of recurring tasks with start dates.
[mjr] Add missing categories to EAS tasks.
[jan] Fix sidebar display of system task lists in basic view.
[jan] Fix retrieving individual tasks via WebDAV.

Notes Changes
[mjr] Fix adding new notepads via the API.
[jan] Hide PDF button if Horde_Pdf_Writer is not installed (Bug #13624).
[mjr] Fix replacing tags in existing notes (Bug #13417).

Library Changes
[mjr] Fix adding new tasklists from EAS client (Bug #13642).
[mjr] Fix some issues related to synchronizing recurring tasks (Bug #13636).
[mjr] Some fixes for POOMCONTACT date fields on Samsung Android clients.
[mjr] Fix issue with returning proper RI cache data in certain cases.
[mjr] Added ability to sniff out Nine and Samsung Android clients.
[mjr] Improvements to the workaround for broken POOMCONTACTS date field
[mjr] Fix handling of EAS categories containing spaces in the name.

[jan] Update Czech translation (Michael Grafnetter

[mjr] Fix fatal error viewing certain MIME parts due to incorrect method name
      in the MimeViewer factory.
[mjr] Add support for moving calendar items on EAS clients.
[mjr] Fix generating reply text from EAS clients that only reply in HTML (Bug
[mjr] Remove Yahoo related code from HordeMap API.
[mjr] Add Reply-To header to email sent via ActiveSync if available in identity
      (Ticket #13592).
[mjr] Prevent sending contact lists as results in GAL searches.
[mjr] Fix handling of EAS categories containing spaces in the name.
[jan] Catch exceptions if not being able to find an LDAP user DN (Bug #13571).
[mms] Fix using master SMTP credentials when a CLI script uses the 'user_admin'
      registry flag.

[mms] Correctly handle full URLs in background-* properties.

[jan] Support returning of custom WebDAV properties.
[jan] Return ETags with WebDAV requests.
[jan] Support for WebDAV DELETE requests.

[jan] Fix migrating NULL values to BLOB on Oracle.
[jan] Catch exceptions from PDO result set methods.

[jan] Fix catching exceptions from Horde_Db.

[mms] Add support for UTF8 extension for POP3 servers (RFC 6856).
[mms] Add support for LANG extension for POP3 servers (RFC 6856).
[mms] Fix IMAP search results for recent and total messages when it is the only
      query and the mailbox is not selected.
[mms] Fix client-side message sorting when there are multiple sort criteria and
      at least one tie in the first sorting criteria.
[mms] Better error handling when attempting to authenticate via IMAP LOGIN
      command with non-ASCII credentials (Bug #13554).
[mms] Fix sending IMAP APPEND data when the UTF-8 capability is enabled.
[mms] Fix parsing IMAP mailbox list requests when UTF-8 mode is enabled.
[mms] Ensure client sorting tests work reproducibly across systems with varying
      default locales.

[mms] Support IDN hostnames in e-mail address queries.

[mms] Re-enable igbinary driver (requires igbinary >= 1.2.0).

[jan] Revert: Only store keys in cookie if cookies are in use
      (, Bug #13284).

[mjr] Add missing percent sign for humidity when using WWO.
[mjr] Fix detected errors returned from WWO.

[mms] Initial release.

[jan] Update to PHPUnit 4.3.4 and dependencies.
[jan] Raise priority of Horde_Test autoloader.
[jan] Don't report hooks loading as successful.

[jan] Fix format of UNTIL attribute when exporting to iCalendar (Joerg Pulz

[mms] Allow extension to be built with system lz4 library (Remi Collet
[mms] Add --with-liblz4 option to use system liblz4 (Remi)


Mail Changes
[mms] Ensure that search/POP3 mailbox listings are saved even if there is an
      issue with the underlying cache backend.
[mms] Fix replying to non-UTF-8 messages when the 'reply_charset' preference
      is true.
[jan] Fix vCard MIME viewer.
[jan] Fix MIME viewer form actions in basic view (Bug #12677).
[mms] Don't store/retrieve message history data if the Message-ID is
[mms] Fix resuming draft from mailbox page in basic view.
[mms] Fix displaying Virtual Trash mailbox (Bug #13418).
[mms] Fix menu actions on the minimal message page (Bug #13440).
[jan] Fix switching to HTML editor in basic mode if signature display is not
[mms] Fix expiring session cached mailbox data when mailbox information
[mms] Fix updating viewport immediately after deleting messages on POP3

Filters Changes
[mms] Fix performing more than one filter drag/drop action on a single page
      (Bug #13434).
[mms] Add support for a negative regex test to the Maildrop driver.
[mms] Add support for a negative regex test to the Sieve driver (Pete Beardmore
      <>, Request #12671).
[mms] Fix vacation in the maildrop driver (, Bug

Address Book Changes
[jan] Fix duplicate searching in address books without owner field.
[jan] Fix duplicate search form (, Bug #13528).
[mms] Make case-insensitive API e-mail search work on non-ASCII data (Request
[jan] Fix listing group members that contain colons in their IDs.

Calendar Changes
[mjr] Fix removing resource event when editing the bound event causes the
      resource to reject the event (Bug #13466).
[mjr] Fix refreshing resource events in the UI when the host event changes
      (Bug #13465).
[mjr] Fix updating the exceptionoriginaldate field when the base event changes
      (Bug #13512).
[mjr] Fix moving recurring events with exceptions from one calendar to another
      (Bug #13524).
[mjr] Fix honoring resource_management permission (Bug #13049).
[jan] Fix visual overlapping of certain events (Bug #13376).
[jan] Fix error editing events if using exotic date formats.
[jan] Fix JavaScript error if not showing all events in month view (Jasper
      Olbrich <>, Bug #13433).
[jan] Fix displayed CalDAV URLs for shared calendars in basic view too
      (, Bug #12380).

Library Changes
[mjr] Added Horde_ActiveSync_Rfc822::replaceMime().
[mjr] Added Horde_ActiveSync_Mime class.
[mjr] Added Horde_ActiveSync_Exception_EmailFatalFailure.
[mjr] Fix issues with 8-bit characters in Subject header in some cases (Bug
[mjr] Fix POOMTASKS_SUBORDINALDATE parsing (Bug #13461).
[mjr] Prevent folder cache from being overwritten (Bug #13273).
[mjr] Add Horde_ActiveSync_Imap_Adapter::emptyMailbox().
[mjr] Fix sending ItemSettings responses for EAS 14.1.
[mjr] Add unofficial WindowsLive codepage extensions.
[mjr] Fix yearly recurrences appearing on incorrect day in certain cases.
[mjr] Add support for synchronizing user-defined IMAP flags as EAS Email
[mjr] Prevent infinite loops due to broken clients sending invalid OPTIONS data
      (Bug #13405).
[mjr] Prevent fatal WBXML parsing error due to broken BlackBerry clients (Bug

[mjr] Fix dependency on Horde_HashTable (Bug #13549).
[mjr] Add activesync_email_presend hook.
[mjr] Fix issue where replying or forwarding broken email messages would break
      ActiveSync synchronization when saving to Sent mail.
[mjr] Fix issues with 8-bit characters in Subject header when sending smart
      replies via ActiveSync (Bug #13456).
[mjr] Fix GAL searches returning all address book entries.
[jan] Improve positioning of date picker popup (Karim Geiger
[jan] Really fix returning session start time from session handler (Bug
[mms] Ensure persistently stored data is not overwritten by another session.
[mms] Fix boostrapping DB object when using SQL as the Horde cache driver (Bug
[mjr] Support ITEMOPERATIONS_EMPTYFOLDER requests via ActiveSync.
[mjr] Fetch correct data for EAS ItemSettings requests.
[jan] Catch exception from application in portal block (Bug #13427).
[jan] Fix returning session start time from session handler (Bug #13428).
[mjr] Add support for synchronizing user-defined IMAP flags as EAS Email
[mjr] Fix BC break when detecting the ActiveSync state driver.

[mms] Add support for Gmail-specific WEBALERT response code.
[mms] IMAP/POP3 URL generation split into a more modular library structure.
[mms] Ignore message-specific URL parameters if a search query appears in an
      IMAP URL.
[mms] Fix encoding/decoding URL elements in IMAP/POP3 URLs.
[mms] Fix setting default port for POP3 URLs.
[mms] Fix client-side reverse sorting.
[mms] Fix client-side sequence sorting, when that is the only sort criteria.
[mms] Use Collator class, if present, to sort string fields on the client side.
[mms] Fix client-side sorting of display addresses.
[mms] Even more improved pseudo-UIDNEXT value for POP3 servers.
[mms] Improved sanity checking so that non-ASCII data is not sent to server in
      commands where it is not supported.
[mms] Fix typo in Horde_Imap_Client_Data_Sync (Bug #13430; Jasper Olbrich
[mms] Fix regression in reporting capabilities (Bug #13421).

[jan] Fix tests including Horde_Mime_Part.

[mms] Fix generation of Original-Message-ID header in MDN notification (Bug
[mms] Fix determination of MDN user confirmation in certain instances.

[mms] Attempt to workaround broken JSON-C decoder regarding null characters.

[mms] Add ArrayAccess, Countable, and Iterator functionality to the
      Horde_Prefs_Identity object.

[mms] Fix determination of test cases using AllTests.php.
[mms] Fix AllTests.php when dealing with test cases that inherit from parent
      test cases.

[jan] Fix "Undefined offset" notice (Bug #13455).

[mms] Fix another issue with older versions of PHP in
[mms] Fix regression in Horde_String_Transliterate for PHP 5.3 (Bug #13419).
[mms] Added Horde_String::ipos() and Horde_String::ripos().
[mms] Fallback to lesser priority transliterator driver when an error is


Horde Changes
[mjr] Fix cancelling remote wipe of EAS client from user prefs.
[mms] Fix fatal error in signup confirmation script.
[mjr] Fix removing ActiveSync device state from administrative interface when
      multiple user accounts exist on the same device (Bug #13336).

Mail Changes
[mjr] Fix iTip handling when recurrence exceptions are present (Bug #13399).
[mms] Fix displaying Sent mailbox label when multiple sent-mail mailboxes are
[mms] Fix advanced search in all mailboxes if virtual folders or remote
      accounts exist (Bug #13384).
[mms] Fix regression in automatically expanding deeply nested mailboxes in the
      dynamic folder list.
[mms] Fix regression where containers could not be moved via drag/drop in
      dynamic view.
[mms] Don't perform purge sentmail login task unless at least one sentmail
      mailbox exists.
[mms] Don't perform purge Spam login task unless Spam mailbox exists.
[mms] Fix dragging a mailbox to the base level in dynamic view.
[mms] Add ability to drag/drop text to dynamic HTML compose window on Chrome
      and IE.
[mms] Re-enable drag/drop of text to dynamic plaintext compose window (Bug

Address Book Changes
[jan] Display correct address books in WebDAV folders.
[jan] Fix displayed CardDAV URLs for shared address books (Bug #12380).
[mms] Only include e-mail addresses that match the search string in the return
      from the search() API call (Request #12480).
[mjr] Fix exporting tags via vCard and ActiveSync (Bug #13393).
[mjr] Add EAS client created shares to the sync_books preference (Bug #13359).
[mjr] Add missing API support for searchTags API (Bug #13362).
[mjr] Fix issue that caused contacts to be tagged with a broken username.

Calendar Changes
[jan] Fix displayed CalDAV URLs for shared calendars (Bug #12380).
[jan] Don't show today's events that are over in portal (Bug #13368).
[mjr] Fix exporting to ics file when event contains exceptions and an explicit
      timezone (Bug #13369).
[mjr] Fix importing iCalendar data that contains timezone parameters.
[mjr] Fix both importing and replacing text/calendar data via the API when
      recurrence exceptions are present (Bug #13399).
[mjr] Ensure default share attribute is set when auto determining a default
[mjr] Fix fatal error when calculating alarms on a recurring event that has
[mjr] Fix catching minical clicks on browsers that return element names in
      uppercase (, Bug #13370).

Tasks Changes
[jan] Don't include external tasks with WebDAV task list.
[jan] Fix displayed CalDAV URLs for shared task lists (Bug #12380).
[mjr] Fix remembering auto determined default share (Bug #13360).
[mjr] Add EAS client created shares to the sync_lists preference (Bug #13359).
[mjr] Add missing API support for searchTags API (Bug #13364).
[mjr] Fix detecting task completion when sending task change notifications
      (Alfonso Marín Marín <>, Bug #13350).

Notes Changes
[mjr] Ensure default share attribute is set when auto determining a default
[mjr] Fix showing the notepad name in list view when show_notepad preference is
      set (Bug #13352).
[mjr] Add EAS client created shares to the sync_notpads preference (Bug
[mjr] Add missing API support for searchTags API (Bug #13361).
[mjr] Fix issue that caused notes to be tagged with a broken username.

File Manager Changes
[jan] Update Polish translation (Maciej Uhlig <>).
[jan] Make shares table compatible with Oracle.

Bookmarks Changes
[mjr] Fix fatal error due to botched merge.

Library Changes
[mjr] Prevent another issue that could cause an error when attempting to update
      a non-existent state (Bug #13338).
[mjr] Prevent error caused by attempting to update a non-existent state (Bug

[mms] Add Horde_Core_Script_Package_Autocomplete.
[mms] Fix broken parse_url() behavior for PHP < 5.3.6.
[mms] Horde_Data now stores temporary data using Horde_Vfs to ensure data
      persists and that it doesn't overload session storage (Request #11335).
[mms] Add method to allow any code to register tasks to run on logout.
[mjr] Ensure EAS client created collections are requested to be added to the
      application's sync preference (Bug #13359).
[mjr] Fix fatal error when executing a FOLDERDELETE command on certain
[mjr] Fix regression in sending email via ActiveSync when no properly
      configured identity exists (Bug #13346).
[mjr] Fix broken CHANGEFOLDER functionality for ActiveSync NOTES collections
      (Bug #13334).
[mms] Better error handling when trying to load config files from the conf.d

[mms] Fix Horde_CssMinify_CssParser#setOptions().

[jan] Fix calculating recurrence end if UNTIL property of iCalendar data is
      DATE value (Bug #13401).

[mms] Add Horde_Vfs driver.

[mms] Determination of approximate part size should be done at IMAP level, not
      within Horde_Mime_Part.
[mms] Fix regression in handling invalid DateTime data due to a BC-incompatible
      change in PHP.

[mms] Added the 'noquote' option to Horde_Mail_Rfc822_Object#writeAddress().

[mms] Fix fatal error in Horde_Mime_Mail#getBasePart() (Thomas Müller
[mms] Fix determination of part size when the part contains explicit sizing

[mms] Added support for sending internationalized header data (RFC 6531).

[mjr] Hotfix to deal with failure exporting non-contact data due to
      inconsistency in export methods between applications (Bug #13394).


Horde Changes
[mms] Add configuration to allow for SMTP authentication if the current Horde
      access does not have an authenticated user.

Mail Changes
[mms] Fix some regressions in linked attachments behavior (Bug #13232).
[mjr] Fix fatal error when printing empty HTML attachments (Bug #13322).

Address Book Changes
[jan] Fix fatal error if importing CSV data with date fields.

Calendar Changes
[jan] Fix selecting days in the sidebar mini calendar (Bug #13327).
[mjr] Issue a cancellation iTip when an event's status changes to cancelled
      (Bug #13321).
[jan] Fix loading events for intial view in smartphone mode.

Tasks Changes
[mjr] Fix returning to previously selected tab after task is saved (Bug
[mjr] Fix fatal error when saving a task, only one tasklist exists, and at
      least one SmartList exists.

Bookmarks Changes
[mjr] Fix creating tags from folder names when importing bookmarks.

Library Changes
[mms] Add configuration to allow for SMTP authentication if the current Horde
      access does not have an authenticated user.
[mjr] Fix closing smartmobile dialog pages (Bug #13316).
[mjr] Fix issue that could cause multiple tabs to be shown as active when
      tab_name could be a mix of integers or strings.


[jan] Update Polish translations (Maciej Uhlig <>).
[jan] Update Japanese translations (Hiromi Kimura <>).
[jan] Make SQL backends compatible with Oracle.
[jan] Make shares tables compatible with Oracle.

Horde Changes
[mjr] Fix removing EAS device pairings via the removeUserData API (Bug #13278).
[jan] Add configuration for searching user DNs in LDAP groups (Bug #12128).
[jan] Don't try to write to read-only group backends when removing user data
      (, Bug #13248).
[mms] Cleaner indication on login page that an authenticated user is logging
      into specific application rather than Horde in general.
[mjr] Fix blocking an ActiveSync client through the admin interface.
[mjr] Add an ActivSync device's currently used heartbeat interval to the device
      information display.
[mms] Fix regression in displaying MOTD content on login screen.
[mms] Support LMTP servers when sending mail.
[mms] Add more advanced configuration options for the Redis HashTable driver
      (Michael Cramer <>).
[jan] Add script to import user preferences from Open-Xchange.
[mms] The location of dynamically served static files is now configurable
      (Request #13070).
[jan] Update Korean translation (Deokgon Kim <>.
[mms] Add a NoSQL driver for history storage.
[mms] The history driver can now be configured via conf.php.
[jan] Add mysql encryption option for SQL backends (Request #12962).
[rla] Add joomla-md5 encryption option for SQL backends (Request #12889).
[mms] By default, enforce maximum storage size on preferences values.
[mms] Support UglifyJS for compressing javascript.
[mjr] Add improved ActiveSync device administration page.
[mms] Display indication that Caps Lock key is on when entering password on
      login page (Request #7178).
[mjr] Add support for configuring a NoSQL driver for ActiveSync state storage.
[mms] Added 'filemtime' configuration option for CSS caching.
[mjr] Add support for X509 authentication support.
[mjr] Improve logging options for ActiveSync logging configuration.
[mjr] Add support for managing ActiveSync devices through the API.
[mjr] Add prefs for selecting From address when sending email via ActiveSync.

Mail Changes
[mms] Fix handling image attachments when added via the HTML editor Image
[mms] Fix saving attachments to sent-mail message in smartmobile view (Bug
[mms] Remove the 'default_msg_charset' preference.
[mms] Rewritten folder list code for dynamic view.
[mms] Fix saving expanded state when expanding all mailboxes when all mailboxes
      are already cached in the browser.
[mms] Allow drag/drop to HTML compose body work with text data.
[mms] Cache mailbox exists results in the current access.
[jan] Add Japanese help file (Hiromi Kimura <>).
[mms] Add automatic configuration of remote account connection details.
[mms] Support LMTP servers when sending mail.
[mms] Fix regression where creating a mailbox that is currently a container
      would not subscribe to that mailbox.
[mms] Add checks to ensure that saved session expiration message was created by
      the user rather than an outside source.
[mms] Improved handling for multiple expand/collapse actions in the dynamic
      folder list (Bug #13170).
[mms] Provide visual UI info to user that file is uploading when drag/drop
      attachments in dynamic view.
[mms] Don't set References header in reply message if equal to In-Reply-To
      header (RFC 5322 [3.6.4]).
[mms] Add configurable IMAP quota checking interval (Request #12907).
[mms] Honor 'from_link' preference in dynamic view.
[mms] Add support for storing image data within HTML signatures.
[mms] Ensure that viewing large mailboxes does not overload the session
      storage size.
[mms] Implement web notifications for new mail alerts.
[mms] Add bare address information to title attribute in viewport on dynamic
      mailbox page
[mms] Display flags on the smartmobile mailbox page (Request #12687).
[mms] Support non-ASCII characters in user-defined flag names (Request #12335).
[mms] Potentially save a call to the contacts backend when viewing HTML
      messages if no image data is present in the message.
[mms] Improved styling of dynamic mailbox page, to fix issues when resizing the
      browser font size (Bug #13071).
[mms] Don't send as multipart/alternative if plaintext part is empty.
[mms] Add smiley data to message when added via the HTML editor (Request
[mms] Add mailbox size information retrieval to dynamic view (Request #12965).
[mms] Display unread message count in title via favicon bubbles, if browser
[mms] Abstracted maillog code.
[mms] Enable configuration of IMAP cache lifetime for Horde_Cache and
      Hashtable backends.
[mms] Only refresh quota information when switching to a mailbox the first
[mms] More efficiently store mailbox cache information in the session.
[mms] Load copy/move mailbox selection list on-demand in smartmobile view.
[mms] Cache results of inline image view status.
[mjr] Add IMP_Api::logRecipient.
[mms] Remove the mail_domain preference.
[mjr] Add display of reccurence data to iTip viewer (Request #12919).
[mms] Allow HTML data to be pasted within HTML compose editor paste dialog.
[mms] Filter outgoing HTML compose messages for XSS vulnerabilities.
[mms] Add permission to limit the maximum body size of a composed message.
[mms] Show placeholder image when dropping onto HTML editor while the image is
      uploaded to the server.
[mms] Add rate limiting to new mail notification alerts to prevent flooding of
      the remote mail server (Request #12705).
[mms] Browser stored preferences are now prefixed by user information.
[mms] Strip PGP armor text when replying to a message.
[mms] Move determination whether to scan plaintext messages for PGP data from
      preferences to MIME viewer configuration.
[mms] Add copy email option to the address context menu in dynamic view.
[mms] Better reporting of e-mail address errors when composing.
[mms] Add list information display to dynamic view.
[jan] Add signatures to compose view.
[mms] Add keyboard shortcuts to allow a more granular scroll of the dynamic
      preview pane (Request #12750).
[mms] Add country flag graphic to contact image information in dynamic view.
[mms] Address autocompleter on dynamic and basic page now uses a fancy UI.
[mms] Add ability to specify maximum total attachment size in composed message
      before all attachments are converted to links.
[mms] Cache generation of print-specific CSS.
[mms] Add support for showing a contact image in the contacts popup box in
      dynamic view.
[mms] Add ability to create a new filter rule from context menus in the
      dynamic view.
[mms] More intelligent sizing of raw message parts opened in a popup window.
[mms] Load sent-mail mailbox list on demand in dynamic view.
[mms] Allow configurable access to remote accounts from within a session
      (Request #8077).
[jan] Display "Other Options" icon instead of "New Window" icon in collapsed
      preview headers.
[mms] More advanced auto-completion for smartmobile view.

Filters Changes
[mms] Fix mailbox selection on Spam page (Bug #13298).
[mms] Fix regression in deactivating scripts (Bug #13297).
[mms] Honor 'auto_update' preference when re-sorting filters list (Bug #13216).
[mms] Fix regression in copying a rule when storing in SQL backend (Bug
[jan] Pass current vacation addresses to hook
      (, Request #13185).
[mms] Use standardized 'enotify' sieve extension (RFC 5435) by default instead
      of deprecated 'notify' extension (Request #8784).
[mms] Use standardized 'imap4flags' sieve extension (RFC 5232) by default
      instead of deprecated 'imapflags' extension (Request #8784).
[mms] Add ability to filter rules by mailbox.
[mms] Add 'max_forward' permission (Request #10332).
[mms] Permissions can now be applied per backend, rather than globally.
[mms] Replace max blacklist/whitelist configuration parameters with equivalent
      permissions options.
[mms] Sorting of rules now done via drag/drop javascript (Request #1993).
[mms] Validate e-mail addresses on the forward and vacation pages (Request
[mms] Add 'newEmailFilter' API link.

Address Book Changes
[mjr] Fix another regression with exporting photos in vCard when we are
      ignoring empty values.
[mjr] Fix regression with exporting photos in vCard when we are ignoring empty
[jan] Export composite attributes to vCard too.
[jan] Don't export binary fields to CSV/TSV.
[mms] Fix search in Facebook driver.
[jan] Add script to import contacts from Open-Xchange.
[jan] Don't remove missing contacts from distributions lists in Kolab backends
      (Bug #12861).
[jan] Support binary fields (photos) in Kolab backends.
[mjr] Fix importing certain vCards to sources only using the 'email' attribute
      (Bug #12955).
[jan] Export free/busy URL to vCard (Request #12915).
[mjr] Fix listTimeObjects API when format_in attribute parameter is changed
      from default (Bug #11891).
[mjr] Add API support for supporting multiple addressbooks via ActiveSync.
[jan] Remember currently open tab when switching or saving contact views
      (Request #12609).
[jan] Replace categories with tags (Request #9544).

Calendar Changes
[jan] Fix issues with event URL field not updating (Carlos Timóteo
[jan] Fix error when deleting unselected calendars.
[jan] Improve DTEND compatibility with other programs using iCalendar.
[mjr] Fix sending iTip invitations when Save As New is used (Bug #13239).
[jan] Fix free/busy display with 24-hours-busy days.
[jan] Fix navigating free/busy dates.
[jan] Fix hover style in year view (Bug #13057).
[jan] Add synchronization of attendees via CalDAV (Request #13027).
[mjr] Fix moving an event from one calendar to another while resources are
      disabled (Bug #13201, Carlos Timóteo <>)
[mjr] Do not include resources with no email address when synching to EAS
[jan] Fix dependency on Nag (Bug #13166).
[jan] Use the event's or calendar's owner identity when sending notifications
      (Bug #13158).
[mjr] Gracefully handle import errors in dynamic interface (Bug #11127).
[mjr] Show reservee of a resource in resource's event description (Request
[mjr] Add resource_management permission (Request #13049).
[jan] Allow to synchronize shared calendars via CalDAV (Request #12380).
[jan] Add script to import events from Open-Xchange.
[mjr] Fix various issues with alarms for recurring events.
[jan] Add calendar legend to print output.
[mjr] Allow for exporting of resource calendars (Request #12372).
[mjr] Make event url property a true hyperlink in dynamic view (Request
[jan] Support task assignees.
[jan] Support parent tasks.
[jan] Indent sub tasks.
[mjr] Improve display of Free/Busy information and add pagination (Requests
      #12899, #12676).
[mjr] Add ability to export event to a timeslice (Request #11307).
[mjr] Add API support for supporting multiple calendar sync via ActiveSync.
[jan] Improve sort order of events in month view (Request #11155).

Tasks Changes
[jan] Always display system task lists to administrators.
[mjr] Group task fields into tabs on edit form (Request #13228).
[jan] Only use URL rewriting for saving/completing tasks if pretty URLs are
      enabled in the configuration.
[jan] Don't include smart lists in top menu.
[jan] Fix top menu URLs to create new tasks in specific task lists.
[jan] Show external tasks in the correct task type.
[jan] Purge old tasks from versions < 2.3 too.
[jan] Allow to synchronize shared task lists via CalDAV (Request #12380).
[jan] Add script to import tasks from Open-Xchange.
[jan] Add recurrence controls to basic view (Request #11545).
[mjr] Add button for creating sub-task from task view (Request #12309).
[mjr] Add ability to return to existing search results after navigating to a
      task (Request #12879).
[mjr] Add API support for multiple tasklists via ActiveSync.

Notes Changes
[jan] Fix error after successful import (Thomas Jarosch
      <>, Bug #13272).
[jan] Fix link on edit form to delete notes (Thomas Jarosch
      <>, Bug #13271).
[jan] Fix exporting tags to CSV (Thomas Jarosch <>,
      Bug #13269).
[jan] Fix adding and editing notes with Kolab backend (Bug #13269).
[jan] Make notepad checkbox links switches instead of toggles.
[jan] Replace categories with tags.
[jan] Convert to Horde_View.

Bookmarks Changes
[jan] Add Hungarian translation (Andras Galos <>).
[jan] Add Danish translation (Erling Preben Hansen <>).
[mjr] Add support for importing bookmarks from Mozilla's JSON format.

Library Changes
[mjr] Fix issue sending email via EAS when the imap client throws an error when
      synchronizing the maillog (Bug #13276).
[mjr] Improvements to vcard mime handler to allow for ajax updating (Bug
[jan] Fix delay when fading the same dialog more than once.
[jan] Catch exceptions from NoSQL backends when building indices.
[mjr] Fix incorrect processing of autocompleted data when using
      prettyautocompleter (Bug #13256).
[mjr] Fix updating attendee response status when received via ActiveSync.
[jan] Add <configldapuser> configuration item.
[jan] Add base DN to LDAP configuration for searching user DNs.
[jan] Allow to specify port for PostgreSQL socket connections (Request #13250).
[mms] Allow any HordeCore AJAX response object to return JSON-HTML output,
      instead of pure JSON.
[mjr] Fix copying forwarded messages to Sent mail folder when using EAS.
[mjr] Fix generating From address when sending email via ActiveSync when
      personal part must be quoted (Bug# 13208).
[mjr] Fix tracking bad login count and honoring the lock setting when using
      Application auth backend.
[mms] Support LMTP servers when sending mail.
[mms] Add Horde_Registry#hasLink() (Bug #13175).
[mjr] Fix returning mailbox list for ActiveSync clients when not using IMAP
      subscriptions (Bug #13177).
[jan] Update Hungarian translation (Andras Galos <>).
[mms] Allow CKeditor 3 to work with IE 11.
[jan] Fix translation of portal block names (Bug #13116).
[mms] Add Horde_Registry#getAuthInfo() and Horde_Registry#getAuthApps().
[mms] Add Horde_Core_Cache_Session.
[mms] Add abstracted web notifications interface to the Horde_Notification
[mms] Upgrade prototype.js to most recent git version
[mjr] Fix issue that causes enter to submit the form when inside the pretty
      autocompleter (Bug #12923).
[mms] Don't store preference UI elements in the session cache storage.
[mjr] Send the PRIMARYSMTPADDRESS to EAS clients, if appropriate (Request
[jan] Fix loading of configuration screen with basedir restrictions or libxml
      entity loading disabled (Bug #13025).
[mms] The location of dynamically served static files is now configurable
      (Request #13070).
[jan] Update Korean translation (Deokgon Kim <>).
[mms] Support new configuration options for history storage.
[mms] Fix for prototype.js to correctly recognize IE 11 as IE, not Gecko (Bug
[mjr] Added the nonotificationinit parameter to Horde_Registry::appInit().
[mjr] Fix issue authenticating to certain applications when accessed via RPC.
[mms] Move CSS minification to the Horde_CssMinify package.
[mjr] Work around parsing broken incoming ActiveSync SMARTREPLY requests with
      incorrect character sets (Bug #12969).
[mms] Add null driver for the content tagger.
[jan] Add database configuration for Oracle.
[mms] Add Horde_Registry_Application#getInitialPage().
[mms] Add Horde_Core_Script_Package_Sortable.
[mms] Abstract Horde configuration parsing into Horde_Registry_Hordeconfig
[mms] Abstract CSS caching/compressions into Horde_Themes_Css framework.
[mms] Abstract javascript caching/compression into Horde_Script_Cache
[mms] Allow jQuery Mobile script to be packaged in same file as other jquery
[mms] Move configuration loading code to Horde_Registry_Loadconfig class.
[mjr] Fix saving S/MIME signed emails sent via ActiveSync to sent folder (Bug
[mms] Store registry cache on the local filesystem.
[mms] Refactor alarm code to prevent the need from accessing the themes cache
      on every server access.
[mms] Prevent avalanche effect from occurring when re-creating cached JS files.
[mms] Use Horde_JavascriptMinify package to compress javascript.
[mms] Combine all javascript to compress into a single string.
[mjr] Improve ActiveSync searches by no longer limiting available searched
      fields (Request #12917).
[mms] Support UglifyJS for compressing javascript.
[mjr] Add support for DocumentLibrary via the files API.
[mjr] Cache ActiveSync mailbox search results for improved performance during
[mms] Predis client should only use clustering if necessary.
[jan] Fix retrieving value lists from Horde_Session.
[mjr] Use webnotifications.js to normalize various browsers to the standard
      Notification API.
[mjr] Fix desktop style notifications in Ajax applications (Bug #12835).
[mms] Fix jquerymobile icons (Bug #12876).
[mms] Don't add 2 entries to history when opening a jquery mobile dialog (Bug
[jan] Fix padding of drop down lists with scrollbars (Bug #11971).


[jan] Update Korean translation (Deokgon Kim <>).

Horde Changes
[jan] Detect REPORT queries as DAV requests in RPC server (Bug #13124).
[jan] Fix fatal error in LDAP account portal block (Bug #12910).

Mail Changes
[mms] SECURITY: Fix XSS in displaying user-defined flags in basic mailbox and
      message view.
[mms] SECURITY: Fix XSS in displaying user-defined flags in dynamic mailbox
      view (João Machado <>).
[mms] SECURITY: Fix XSS in displaying mailbox name in dynamic mailbox view
      (João Machado <>).
[mms] Fix scrolling through large search mailboxes in dynamic view (Bug
[mms] Better handling of malformed message dates in mailbox listing (Bug

Filters Changes
[mms] Fix blacklist/whitelist matching with IMAP backend (Bug #13031).
[mms] Fix procmail reject recipe (, Bug #13060).

Address Book Changes
[mjr] Fix pagination of search results (Bug #13047).
[mjr] Don't output empty properties for CardDAV requests (Bug #12782).
[jan] Fix portal serach block response when no contacts have been found
      (dulinux <>, Bug #13044).

Calendar Changes
[jan] Fix history not always returning the last modification time of an event
      (Bug #13113).
[jan] Support timezone aliases when importing events (Bug #13100).
[mjr] Honor the no_sharing configuration option in dynamic view (Bug #13002).
[mjr] Fix issue that could remove all events from shared calendars if a user
      with Horde_Perms::EDIT on that calendar is removed via the removeUserData
      API (Bug #12524).
[jan] Fix TRIGGER generation if alarm value is negative (Bug #13064).

Tasks Changes
[jan] Fix link to task in alarm emails.

Tagging Changes
[jan] Fix date format for 'created' column.

Timeobject Changes
[jan] Update to changed Facebook events API.
[jan] Add Danish translation (Erling Preben Hansen <>).
[jan] Fix returning Facebook event URLs.
[mjr] Cache Facebook queries.

Library Changes
[jan] Update Spanish translations (Manuel Perez Ayala
[jan] Update Japanese translations (Hiromi Kimura <>).
[jan] Update Hungarian translations (Andras Galos <>).
[jan] Update Danish translations (Erling Preben Hansen <>).

[mjr] Force multiplex contact collections for Outlook 2013.
[mjr] Fix issue sending email when the imap client throws an error when
      synchronizing the maillog (Bug #13276).
[mjr] Fix issue related to clients with enabled SMS sync causing broken email
      deletion behavior.
[mjr] Fix ignoring incoming SMS CHANGE commands.
[mjr] Fix removing orphaned device entries (Bug #13277).
[mjr] Prevent sending non-UTF8 data due to meeting response emails.
[mjr] Remove Horde::debug output.
[mjr] Fix requesting remote wipe when using the MongoDB state driver.
[mjr] Truly fix duplicate email in Outlook 2013 when moving/deleting messages.
[mjr] Fix detecting forced multiplex values for Android 4.4.0 and greater (Bug
[mjr] Fix issue with renaming folders (Bug #13196).
[mjr] Fix duplicate items in mailboxes after handling MOVEITEMS requests.
[mjr] Allow saving just dirty deviceProperties, and not deviceInfo.
[mjr] Fix return status for SETTINGS_DEVICEINFORMATION requests (Bug #13191).
[mjr] Fix regression that could cause some clients to no longer sync.
[mjr] Fix issue with clients that support EAS 12.1+ but still use PING commands
      that would cause the cached heartbeat interval to be cleared.
[mjr] Fix issue where the device managed heartbeat interval would be ignored
      during PING requests.
[mjr] Fix issue that would cause a SYNC loop when changing FILTERTYPE in
      certain clients (Bug #13182).
[mjr] Fix regression with renaming email folders.
[mjr] Improve workarounds for certain clients that send broken authentication
      information (Bug #13184).
[jan] Make SQL state backend compatible with Oracle.
[mjr] Improve detection of Android devices for the purposes of determining
      support for non-multiplexed collections.
[mjr] Prevent possible PING loop due to PING requests incorrectly containing
      collections that haven't had a SYNC issued yet.
[mjr] Add Horde_ActiveSync_Rfc822::addStandardHeaders().
[mjr] Support sending PRIMARYSMTPADDRESS in EAS 14.1 (Request #13062).
[mjr] Change the order of WBXML tags for Horde_ActiveSync_Message_Exception to
      make some older clients happy.
[mjr] Fix some cases where removing a device's state could cause a PING and/or
      SYNC loop on some older clients.
[mjr] Fix regression that broke synchronization in clients that don't support
      EAS 14.1 (Bug #13038).
[jan] Optimize SQL query for garbage collection (, Bug
[mjr] Fix regression that could prevent stale sync requests to persist (Bug
[mjr] Fix regression in sending non Mime encoded messages (Bug #13029).

[jan] Test all available SQL backends.
[jan] Make tests work with PEAR-installed package.
[jan] Use correct schema table name when running tests.
[mjr] Add support for multiple instances of the same alarm, such as for a
      recurring event.

[jan] Update Ukrainian translation.

[jan] Add Polish translation (Maciej Uhlig <>).

[mms] Abstract caching logic into Horde_Autoloader_Cache_Bootstrap class.

[mms] Correctly identify MSIE 11.
[mms] Fix checking for upload errors if an array of files was uploaded.
[mms] Catch newer PHP upload errors when checking for upload data.

[mms] Add Memory driver.
[mms] Deprecate Memoryoverlay and Mock drivers.
[mms] Hashtable driver now respects lifetime parameter in the get() and
      exists() methods (Bug #13085).

[jan] Fix printing of structured fatal error details.

[jan] SECURITY: Fix broken encryption of session data if regenerating session

[mms] Fix reference to constant outside of the package.

[mms] Initial release.

[jan] Add importing of IMC (iCalendar/vCard) data from a URL.
[mms] Store CSV and TSV data in storage object, instead of temporary file, to
      ensure import can work across a PHP cluster.

[jan] Update Brazilian Portuguese translation (Luis Felipe Marzagao
[mjr] Fix setting timezone parameter when parsing certain string

[jan] Allow the same external object UID in multiple resources to fix moving
      objects (Bug #13102).
[jan] Fix synchronization with Mac Calendar application after adding events.
[jan] Update to SabreDAV 1.8.10.
[jan] Update to VObject 2.1.4.

[mms] SECURITY: Don't leak PDO DSN authentication/connection information in
      exception messages.
[jan] Fix changing columns to NULL/NOT NULL on Oracle and SQLite.
[jan] Fix migrating large values to BLOB on Oracle.
[jan] Fix certain migrations with Oracle.
[mms] Fix regression preventing caching of any internal DB information.
[jan] Fix columnCount() result of PDO result objects.

[jan] Fix loading of local files with basedir restrictions or libxml entity
      loading disabled.

[jan] Check for read-only LDAP configurations in removeUser()
      (, Bug #13247).

[mms] In the Predis driver, ramp up to the maximum unlock wait interval
      (Request #13231).
[mms] Implement logging.
[mms] Fix inconsistent usage of 'expire' and 'timeout' options (standardize on
      'expire', which is more semantically correct).

[jan] Fix migrating from systems older than Horde 4.
[mms] Add composite driver.
[mms] Add Null driver.
[mms] Add MongoDB driver.

[jan] Fix HTTP authentication with PECL HTTP drivers.
[jan] Always cast reponse body to string with pecl_http 2.0 (Michael Cramer
[jan] Add support for PECL http 2.0 extension (Michael Cramer

[jan] Fix detecting the current DST rule from certain VTIMEZONE components (Bug
[jan] Export VTIMEZONE components only once per TZID (Bug #12988).

[mjr] Add Horde_Image_Exif::getDescriptionFields() and
[mjr] Add "Title" and "Description" XMP fields.
[mjr] Update maximum allowed version for the PECL Imagick extension.
[jan] Fix converting to grayscale with imagick driver.
[jan] Add optional dependency on imagick PECL extension.

[mms] Fix regression in handling invalid DateTime data due to a BC-incompatible
      change in PHP.
[mms] Fix regression where INBOX subscription status was based on server
      status, instead of always being treated as subscribed (Bug #13261).
[mms] Delimiter information is now always returned from
[mms] Fix broken MBOX_UNSUBSCRIBED behavior on IMAP servers that support
[mms] Added the MBOX_ALL_SUBSCRIBED mode to
[mms] Workaround PHP DateTime regression in 5.4.29 & 5.5.13.
[mms] Fix translating error messages if they contain printf placeholders.
[mms] Fix working with mailboxes containing entirely integers (Bug #13157).
[mms] Horde_Imap_Client_Base#getNamespaces() can now return a
      Horde_Imap_Client_Namespace_List object instead of an array.
[mms] Use the new command length limitations defined in RFC 7162.
[mms] A noop() call before authentication will now correctly throw an exception
      on a connection issue (Bug #13205).
[mms] Fix instantiating base object with an empty password.
[mms] Better error checking when writing data to the server (Bug #13187; Thomas
      Jarosch <>).
[mms] Support partial search limitation even if the PARTIAL search return
      option is not available on the server (Request #13153).
[mms] Added the 'max' and 'min' properties to Horde_Imap_Client_Ids.
[mms] Workaround broken MIME parts that cannot be binary decoded on the server.
[mms] Correctly handle partial search limiting for a single ID (Bug #13153).
[mms] Workaround bug in Dovecot where improperly encoded body part returns NIL
      data when using the BINARY extension.
[mms] Handle IN-USE, LOGIN-DELAY, and SYS/TEMP error codes when authenticating
      to POP3 servers.
[mms] Fix TLS negotiation with POP3 servers.
[mms] Fix throwing authentication exception when using Digest-MD5.
[mms] Fix parsing a reply/forward subject with no blob content.
[mms] Ensure integer value returns from Horde_Imap_Client_Base#status() are
      truly integers.
[mms] Prevent unnecessary cache writes when list of UIDs passed to deleteMsgs()
      is empty.
[mms] Fix stripping non-ASCII characters in
[mms] Don't allow PREAUTH on unencrypted connection if a secure connection
      (e.g. STARTTLS) is requested.
[mms] Password is no longer a necessary parameter.
[mms] Fix regression in parsing empty string values in IMAP tokenizer.

[mms] Add commented list of original source URLs in minified output, in order
      to comply with any license terms contained in original files.

[mms] Add commented list of original source URLs in minified output, in order
      to comply with any license terms contained in original files.

[jan] Consistently return a stream from the getBodypart() methods.
[jan] Add Horde_Kolab_Storage_Object#getBackendId().
[jan] Implement saving and loading of attachments to Kolab objects (backward
      compatibility break in Horde_Kolab_Storage_Data#getAttachment()!).
[mms] Fix grabbing annotation list from IMAP server.

[jan] SECURITY: Stricter parameter check in bind() to detect empty passwords.
[jan] Fix compatibility with PHP 5.3 (Bug #11888).
[jan] Allow to specify base DN for searching user DNs.
[jan] Support multi-value RDNs in Horde_Ldap::quoteDN() (Request #11888).
[jan] Fix creating filters with the less (<) operator (Bug #13154).
[jan] Fix approximate search operator (Leandro Damascena
      <>, Bug #9094).

[jan] Add German translation.
[mms] Better translations of the list header fields.

[jan] Fix and improve tests.

[mms] Add Horde_Mail_Transport_Lmtphorde driver.
[mms] Be more lenient in parsing RFC 5322 identification field values.
[mms] Add Horde_Mail_Rfc822_Identification class.
[mms] Optimizations to address parsing.

[mjr] Make bcmath an optional, not required, extension (Bug #13285).

[mms] Ramp up to the maximum unlock wait interval (Request #13231).

[mjr] Fix returning raw data of sent email.
[mjr] Fix returning stream containing raw email data.
[mjr] Add Horde_Mime_Mail#getRaw() for returning the raw email email data.
[mms] Ensure return from Horde_Mime_Part#getBytes() is an integer.
[mms] Fix regression in part size calculation for parts that contain the raw
[mms] Add Importance to list of headers that expects a single value.
[mms] Correctly set size of part when using Horde_Mime_Part::parseMessage() and
      the 'no_body' option.
[mms] Fix Horde_Mime_Part#buildMimeIds() when called on the base embedded
      object of a parent part (Bug #13117).

[mms] Fix fatal error if using TNEF viewer and bcmath extension is not
      installed on the system.

[mms] Don't use JSON driver to pack if input contains non-UTF8 data (Bug
[mms] Due to issues with igbinary 1.1.1, disable the igbinary driver.

[mms] Add Horde_Prefs#getCache().
[mms] Add Horde_Cache based cache driver.
[mms] Pref scopes are now loaded on-demand.
[mms] Add Horde_Prefs#changeScope().

[mms] Only store keys in cookie if cookies are in use
      (, Bug #13284).
[mms] Correctly clear secret key from cookie data
      (, Bug #13283).

[jan] Fix broken translations of wind forecasts.
[mjr] Adjust to changes in Wunderground API (Bug #13299,
[mjr] Add cardinal direction abbreviations (Bug #13186).
[mjr] Fix fetching local observation time from Wwo (Bug #13083,

[mms] Fix harmless undefined error when accessing certain configuration
[mms] Horde_Smtp#send() now returns recipient status information if at least
      one recipient was successfully accepted.
[mms] Added an LMTP (RFC 2033) driver.
[mms] The mail submission port (587) should be default of this library.
[mms] Better exception message for a 550 error, since it is common and may be
      displayed to an end user (Request #12990).

[mms] Fix BC-breaking regression with self-signed TLS certificates introduced
      by PHP 5.6.

[jan] Update to PHPUnit 4.1.3.
[jan] Fix running tests from PEAR-installed version.
[jan] Bundle PHPUnit and dependencies.
[mms] Fix loading PHPUnit from PHAR file.

[jan] Fixed inline renderer breaking line breaks. (Petr Kalivoda
[jan] Assume Unicode input when splitting on character level (Petr Kalivoda
[jan] Fix signature of Horde_Text_Diff_Mapped constructor (BC break!) (Bug

[mms] Javascript minification has been deprecated and moved to the
      Horde_JavascriptMinify package.

[mms] Javascript minification has been deprecated and moved to the
      Horde_JavascriptMinify package.

[jan] Use passive FTP for downloading the timezone database
      (, Request #13024).

[mms] Catch/ignore invalid RFC 2397 data strings.

[mms] Add Horde_String_Transliterate class.
[mms] Support deeply nested HTML documents (requires PHP 5.4.0+ and libxml
      2.7.0+) (Bug #13086).

[jan] Change Horde_View_Helper_Date#distanceOfTimeInWords() to not round up the
[jan] Make Horde_View_Helper_Text#truncate() and truncateMiddle()
      multibyte-safe (Bug #13163).

[jan] Update lz4 source to r119 (CVE-2014-4715).
[mms] Fix compilation on ancient versions of PHP 5.3 (Bug #13310).
[jan] Update lz4 source to r118 (CVE-2014-4611).


[jan] Update Danish translation (Erling Preben Hansen <>).

Horde Changes
[mms] Fix regression where AJAX actions were not correctly checking permissions
      and potential authentication expiration actions.

Mail Changes
[mms] Add Save All link to the popup message page in dynamic view.
[mms] Cleaner handling of broken S/MIME signed messages.
[mms] Fix displaying user-defined message headers when multiple-headers exist
      in a single message.
[mjr] Honor recurrence-id range values when deleting recurring events (Bug
[mms] Don't provide links to view attachments in compose screen unless the
      attachment can be displayed (Bug #12841).
[mms] Fix regression where auto-saved drafts were not being deleted when
      cancelling compose message in dynamic view.
[mms] Fix regression in parsing permission values (Bug #12812).
[mms] Fix regression in showing non-available actions in dynamic mailbox view
      when ACL rules prevent them (Bug #12808).

Filters Changes
[jan] Make spam level a required form field (Bug #12964).
[jan] Fix behavior of 'utf' parameter (Bug #12937).
[mms] Fix sieve driver correctly identifying mailing lists when determining
      whether to send vacation messages
      (, Bug #12938).

Address Book Changes
[jan] Fix importing vCard fields with lowercase TYPE attributes (Bug #13006).
[jan] Store full name in Kolab contacts.
[jan] Fix distribution list support in Kolab driver (Bug #12450).

Calendar Changes
[mjr] Fix triggering alarms for cancelled events (Bug #12928).
[mjr] Fix exporting recurring events with no recur_end value to CSV.
[mjr] No longer include AIRSYNCBASEBODY when exporting for ActiveSync if there
      is no description.
[mjr] Properly set event status to Cancelled on Resource calendars when the
      original event status is set to Cancelled.
[mjr] Fix updating free/busy display when updating event times (Bug #12676).
[mjr] Fix issue that could cause calendar sync to break when creating an
      exception on EAS versions < 14.0
[jan] Fix rounding of start time when dragging events (Bug #11904).
[mjr] Fix fatal error when searching if Holiday driver is disabled (Bug
[jan] Ignore iCalendar alarms without action, and use first, not last alarm
      (Bug #12865).
[mjr] Fix incorrect case comparison when synchronizing tags with Kolab (Bug
[mjr] Honor recurrence-id range values when deleting recurring events (Bug
[mjr] Fix deleting and sending iTip notifications for recurring events (Bug
[jan] Fix calculation of work week start if on a weekend.
[jan] Fix deleting calendars with exceptions to recurring events.
[jan] Fix fatal error if recurrence exceptions have timezones set (Bug #12801).

Tasks Changes
[jan] Don't return future tasks from cost objects API.

Notes Changes
[jan] Add Korean translation (Deokgon Kim <>).
[mjr] Fix unencrypting and saving a previously encrypted note (Bug #12890).
[mjr] Fix fatal error when exporting encrypted notes via ActiveSync.
[mjr] Fix saving note after saving failed due to mismatched passwords (Bug

Library Changes
[mjr] More workarounds for PHP 65776, preventing segfaults for text attachments
      that contain inconsistent line endings.
[mjr] Rely on the IMAP adapter for returning accurate UID values after a
      message move (Bug #13010).
[mjr] Expose public Horde_ActiveSync_Utils::ensureUtf8() method.
[mjr] Fix some issues caused by attempting to process iTip responses when
      saving to sent mail folder (Bug #12956).
[mjr] Work around issues with clients that crash when receiving an empty body
      element (Bug #12956).
[mjr] Improve device property management and forced-multiplex detecection.
[mjr] Attempt a fix for clients that duplicate calendar entries when tags are
      received in a certain order (Bug #12741).
[mjr] Transparently handle moving from a non-MODSEQ IMAP server to a MODSEQ
      server (Thomas Jarosch <>, Bug #12941).
[mjr] Fix handling of empty OPTIONS tags.
[mjr] More fixes for handling meeting responses sent by Outlook (Bug #12934).
[mjr] Fix some edge case issues that could cause issues in sending changes to
      the client.
[mjr] Fix handling MEETING_RESPONSE requests for certain broken clients (Bug
[mjr] Add support for Recipient Information Cache collection.
[mjr] Fix issue with synchronizing recurring event series exceptions due to
      missing properties in the exception object.
[mjr] Fixes to S/MIME support for issues that prevent the decrypting of S/MIME
      encrypted email on certain clients.
[mjr] Improve error handling when state is lost and device continues to request
      the same state despite being sent the proper status code.
[mjr] Fix returning device information from Mongo driver when multiple user
      accounts exist on the same device.
[mjr] Improve detection of devices that cannot support non-multiplexed
[mjr] Add support for DocumentLibrary.
[mjr] Fix mailbox searching when number of results exceeds the requested RANGE
[mjr] Fix issue where attachments are not downloaded in certain situations on
      EAS version 14+.
[mjr] Some fixes for EAS 14.0/14.1 ITEMOPERATIONS request parsing. Fixes issues
      on some clients with broken email sync on Android 4.3 and 4.4.
[mjr] Fix issue that causes sync to break when SMS messages are deleted on the
      client (Bug #12887).
[mjr] Add support for parsing TNEF data when possible (Bug #12882).
[mjr] Fix typo that was causing server side searching of mailboxes to fail (Bug
[mjr] Add workaround for inconsistent handling of POOMCONTACTS date fields that
      causes fields like birthdays to become offset.
[mjr] Add ability to flag a specific device as blocked.
[mjr] Add ability to filter the list of devices on more than username.
[mjr] Attempt to recover old serialized data before forcing a repairing of
      Email collections.
[mjr] Fix generating EAS folder uids for devices that can't tell the difference
      between a string and an integer.
[mjr] Changes to support multiple non-email collections of the same type.
[mjr] Improvements to memory and database usage.
[mjr] Add MongoDB state driver.

[jan] Add getErrors() to return errors from alarm notifications.
[jan] Catch errors from alarm notifications (Bug #12951).
[jan] Fix compatibility with Oracle.

[jan] Add MySQL password hashing (Request #12962).
[rla] Add joomla encrypted password format (Request #12889).
[mms] Fix parsing salted SHA256 entries (Adam James

[mms] Remove duplicate paths when initializing the default Autoloader.
[mms] Add Horde_Autoloader_ClassPathMapper_PrefixString mapper implementation.

[mms] Use more efficient hashing algorithm, if available.
[mms] Saving cache data should be handled in a shutdown function, not a
[mms] Add Horde-specific prefix to filesystem cache name to allow for easy
[mms] Support msgpack for serializing the map lookup.

[mms] Detect Internet Explorer 11.

[mms] Cache prefix should be handled by Hashtable driver, not underlying
      backend object.
[mms] Fix lifetime usage in the file driver.
[mms] Add 'no_gc' parameter to the Horde_Cache_Storage_File driver.

[mjr] Fix parsing TNEF data that does not contain a meeting request (Bug
[mjr] Fix tests when Horde_Mapi is not available.
[mjr] Add initial support for decoding TNEF meeting requests.

[jan] Don't try authentication to SMTP server if explicitly disabled (Bug
[mms] Fix hiding preferences if they are contained within a prefs container.
[mms] Added standardized/normalized mousewheelY javascript event handling to
[mms] Add nonce generation/checking to Horde_Session.
[mms] Application hook methods moved from Horde:: to Horde_Core_Hooks::.
[mms] Add 'fallback' option for the Horde_Registry#appInit() 'authentication'
[mms] Fix deauthenticating when a system-level logout event occurs.

[mms] Ensure that all text parts are Q-P encoded when signing a MIME part.
[mms] More efficient parsing in Horde_Crypt_Pgp_Parse.
[mms] Remove Horde_Crypt_Pgp#generateRevocation() (Bug #7375).
[mms] Fix submitting PGP keys to a public keyserver (Bug #10931).
[mms] PGP keyserver code now uses Horde_Http_Client to connect to the
[mms] Move PGP keyserver code to a separate Horde_Crypt_Pgp_Keyserver class.
[mms] Add Horde_Crypt_Pgp_Parse#parseToPart().
[mms] Move Horde_Crypt_Pgp#parsePGPData() to separate class
      (Horde_Crypt_Pgp_Parse), since it can be used even if GnuPG binary is not
[mms] Horde_Crypt_Pgp#parsePGPData() now accepts a Horde_Stream object as an

[mms] Fixed comments parsing.

[jan] Fix date calculation if providing both a timestamp and a timezone (Bug
[mjr] Add ability to return human readable description of recurrence rules.
[mjr] Fix issue that could cause incorrect month values when populating an
      empty date object.
[mjr] Fix handling of RRULE with full datetime UNTIL values (Bug # 12869).
[rla] Add aliases for Windows and Lotus timezone identifiers (Bug #11688).

[jan] Update to SabreDAV 1.8.9.
[jan] Fix synchronization with SOGo connector.
[jan] Update to SabreDAV 1.8.7/VObject 2.1.3.

[jan] Return generated (or manipulated) index name from addIndex().
[jan] Avoid cache collisions when changing adapters or configurations.
[jan] Add Horde_Db_Adapter_Base#writeCache() and readCache().
[jan] Add Horde_Db_Adapter#insertBlob().
[jan] Make value of Horde_Db_Value_Binary publically accessible.
[jan] Add Oracle driver (Request #11974).
[jan] Add Horde_Db_Adapter_Base_Schema#column() method.
[jan] Always re-throw PDOExceptions as Horde_Db_Exceptions.
[jan] Fix issues with active Turkish locale.
[jan] Always return a Horde_Db_Adapter_Base_Result sub-class from the select()
[jan] Don't ping server before each query in PDO drivers (Bug #12656).
[jan] Re-organize unit tests.
[jan] Make several methods abstract in Horde_Db_Adapter_Base.
[jan] Deprecate external usage of execute() method.

[jan] Don't submit disabled fields.

[jan] Make SQL backend compatible with Oracle.

[mms] Fix getting data from Redis clusters.

[mms] Fopen driver needs to handle URIs without a protocol scheme - default to
      http (Bug #12991).

[mms] Fix updating cached flags list on a CONDSTORE-only server.
[mjr] Fix regression in obtaining bodypart size when BINARY extension is
[mms] Improved/more concise debug output.
[mms] Optimize sorting in Horde_Imap_Client_Ids object.
[mms] Workaround broken SASL capability responses from POP3 servers.
[mms] Prevent PHP error when a FETCH call is unsuccessful.
[mms] Relax type checking on cache driver object.
[mms] Fix obtaining bodypart size (Bug #12992;
[mms] More correct fix for Exception construction.
[mms] Fix regression where Horde_Imap_Client_Exception was inheriting from a
      different class than before.
[mms] Use more efficient FNV1-32 hashing algorithm for internal hashtable
      storage, if available.
[jan] Make SQL cache backend compatible with Oracle.
[mms] Optimizations to IMAP tokenizer.
[mms] Add raw error message text (in English) to Exceptions.
[mms] Add debug timing information for connection/commands.
[mms] Fix resetting capability list when internally cached authentication
      information becomes invalid.
[mms] Fix updating message list in the hashtable cache driver when deleting.
[mms] When determining a sequence -> UID mapping, do sanity checking to make
      ensure data is valid (Bug #12911).
[mms] Add a Horde_Hashtable specific cache driver.
[mms] Add remove() method to Horde_Imap_Client_Ids.
[mms] Don't login to IMAP server if namespace information is already cached.
[mms] Fix intermittent error when purging messages using a Horde_Cache caching
      backend (Bug #12827).
[mms] Workaround broken IMAP servers that don't support the required AUTH=PLAIN
      authentication method (Bug #12817).
[mms] Added direct TLS v1.x connection option when connecting to remote server.
[mms] Use SHA-1 instead of MD5 for internal hashing.
[mms] Correctly handle untagged BAD IMAP responses.
[mms] Added Horde_Imap_Client_Password_Xoauth2 class.
[mms] Fix harmless PHP undefined error when using with an IMAP server that
      supports XOAUTH2.

[mms] Cache creation of Reflection objects when binding.

[mms] Initial release.

[mms] Initial release.

[jan] Correctly translate display-name attribute of distribution lists.

[mms] Only run shutdown task if the tasklist is currently incomplete.

[mms] More thorough job trying to parse addresses that contain an @ but no
      domain information.
[mms] Correctly identify e-mail addresses without domain information when

[mjr] Clarify license is LGPL and fix package.xml/composer.json files.
[mjr] Initial release.

[mms] Fixed access to a non-visible internal method when performing actions on
[mms] Fix parsing MIME message that contains mixed EOLs (Bug #12842).

[mms] Initial release.

[mms] Need to expire SQL cache for all sub-permissions when deleting a parent

[mms] Correct fix for iteration of Horde_Prefs_Scope object.

[mms] More efficient reading of session data from filesystem in file driver.

[jan] Make SQL backend compatible with Oracle.

[mms] Add raw error message text (in English) to Exceptions.
[mms] Fix handling servers that don't support ESMTP (Bug #12853).
[mms] Fix returning reply code in Exceptions.
[mms] Added direct TLS v1.x connection option when connecting to remote server.
[mms] Added Horde_Smtp_Password_Xoauth2 class.

[mms] Handle transient socket connection issues.
[mms] Add 'tlsv1' as a secure parameter option in the Client constructor.

[mms] Fix packaging error.
[mms] Add the Horde_Stream_TempString class.
[mms] Add the Horde_Stream_String class.
[mms] Add 'all' parameter to Horde_Stream#getToChar().

[mms] Add unit tests.
[mms] Add Horde_Stream_Wrapper_Combine::getStream().
[mms] Add Horde_Stream_Wrapper_String::getStream().
[mms] Fix documentation regarding proper license for this package (BSD).

[jan] Add stubs for Horde_Registry_Loadconfig and
[mms] Add factory for a HashTable instance.
[jan] Correctly set up include paths on installed packages.
[mms] Restore error reporting level after running tests via

[mms] Move JSMin code to a separate package.

[mms] Initial release.

[mms] Add Horde_Translation#r() (raw gettext strings).

[mms] Optimize Horde_Url#toString().

[jan] Remove broken Kolab driver.
[mms] Add null VFS driver.
[jan] Support Oracle with SQL driver.

[mms] Update lz4 source to r108.


Horde Changes
[jan] SECURITY: Protect against CSRF attacks on share permissions form (Bug
[jan] SECURITY: Fix XSS vulnerabilities in top and left menu (Bug #12803).
[jan] Don't show admin alarm form if alarms are disabled.
[mms] Add horde-remove-user-data command-line script.
[mms] Add additional syntax checking for the configuration files in the test
[mms] Only update topbar if the underlying tree data has changed.

Mail Changes
[mms] SECURITY: Fix XSS in message and search screens resulting from a
      user-defined flag label (João Machado <>).
[mms] Send linked attachment download notification message in language of the
      sending user (Bug #12783).
[mms] Fix populating search fields when editing an advanced search query.
[mms] Trigger auto save draft in dynamic view if attachments have changed.
[mms] Improved UI for dropping attachments on dynamic compose screen.
[mms] Fix manually loading all addresses in a header.
[mms] Fix regression where reloading dynamic view would not load the previously
      selected message.
[mms] Fixed regression in enforcing max_recipients and max_timelimit
      permissions (Bug #12674).
[mms] Correctly enforce file size attachment limits on the first attachment
      (Bug #12663).
[mms] Don't attempt to get quota information from non-IMAP mailboxes (Bug
[jan] Don't attach address book behavior if contacts API is unavailable.
[mms] Fix regression where MIME headers were being displayed for PGP decrypted
      messages (Bug #12648).
[mms] Improved error handling when creating a new flag in dynamic view.
[mms] Make addresses in smartmobile full message header display clickable to
      open a compose window.
[mms] Don't display empty containers in dynamic folder list (Request #11425).

Filters Changes
[mms] SECURITY: Protect against CSRF attacks by using tokens on destructive
      actions (Bug #12796; CVE-2013-6275; found by Marcela Benetrix

Address Book Changes
[jan] SECURITY: Fix XSS vulnerabilities when deleting address books.
[jan] Fix exporting selected contacts (Bug #12759).
[mms] Improved UI when viewing search results from Advanced Search.
[mms] Remove features from UI when VFS is not available or disabled.
[mjr] Fix filtering Facebook driver results (Bug #12739).
[jan] Gracefully deal with columns removed from the backend.

Calendar Changes
[jan] SECURITY: Protect against CSRF attacks on share permissions form (Bug
[jan] SECURITY: Fix XSS vulnerabilities when deleting calendars and resources.
[jan] Fix edge case that allowed to enter start time after end time (Bug
[mjr] Expire fb cache when fb_cals preference changes (Bug #12714).
[jan] Fix setting DTEND in iCalendar data if event has a timezone (Bug #12693).
[mjr] Fix importing new ActiveSync events created on the client with
[mjr] Fix some issues with recurring event exceptions due to improper timezone
      handling (Bug #12630).

Tasks Changes
[jan] SECURITY: Fix XSS vulnerabilities when deleting task lists.
[jan] Fix updating alarm if completing a task recurrence.
[jan] Fix editing tasks via CalDAV (Bug #12745).

Notes Changes
[jan] SECURITY: Fix XSS vulnerabilities when deleting notepads.
[mjr] Fix removing a list of UIDs via the API (Bug #12790,
[mjr] Fix exporting memos as v-note (, Bug #12622).

Library Changes
[mjr] Improve performance related to conflict detection and change mirroring
[mjr] Return proper status codes when OOF is unavailable (Bug #12757).
[mjr] Fix fatal crash when conflict is detected (Thomas Jarosch
      <>, Bug #12755)
[mjr] Fix returning contact image in GAL search for those clients that support
[mjr] Fix GAL searching for clients that depend on SEARCH_RANGE values.
[mjr] Fix some authentication issues when certain clients issue broken
      AutoDiscover requests.
[mjr] Fix some minor issues with Autodiscover requests caught by unit testing.
[mjr] Remove dependency on unreleased Horde_Stream code.
[mjr] Work around for PHP bug 65776, preventing segfaults with certain emails.
[mjr] Remove loop counter code that was incorrectly growing sync_cache data
      (Bug #12707).
[mjr] Ignore incoming SMS delete command. Prevents breaking sync on clients
      that send SMS data, even though we do not return it as an available
[mjr] Prevent sending invalid UTF-8 data in the Subject header, which could
      break sync in some clients.
[mjr] Support for SOFTDELETE.
[mjr] Fix possible infinite loop when a requested message is not found on the
      serer during a SYNC request.

[mjr] Fix initializing Alarms when using PDO_Oci or PDO_PostgreSQL.

[mms] Password strength testing is now case-insensitive
      (, Request #12708).

[mms] Fix key expiration for APC, Eaccelerator, and Xcache (Bug #12735).
[mms] Add Horde_Cache_Storage_Memoryoverlay driver.

[mms] Fix prototype.js issue in IE 9 regarding array iteration in a parent
[mjr] Ensure Bcc is removed from headers when sent via ActiveSync (Bug #12771).
[mjr] Fix calculating calendars to use for SOFTDELETE commands in certain
      configurations (Bug #12765).
[mms] Upgrade jQuery Mobile to v1.3.2/jQuery Core to v1.9.1.
[mms] Add Horde_Core_Ui_FlagImage#getFlagImageObByHost.
[mms] Add base64img property to Horde_Themes_Image.
[mjr] Do not assume that the filter API is available (Bug #12757).
[mms] Add ability to load javascript via a HordeCore AJAX response (Request
[mms] Add ability to expire CSS cache based on file modification time.
[mms] Allow disabling VFS via the configuration interface.
[mjr] Send back dummy mail folders when the Mail API is not available (Bug
[mms] Upgrade prototype.js to most recent git version
[mms] Cache permission results within a PHP access.
[mms] Don't initialize unnecessary prefs object when creating the topbar.
[mjr] Support ActiveSync SOFTDELETE.
[mms] Respect 'nobase64_img' configuration when generating image tags (João
      Machado <>).
[mjr] Support for X509 certificate authentication in ActiveSync requests.
[mjr] Fix calculating policy value for SD card encryption and device encryption

[mms] Merge from upstream - handle keywords/dimensions case-insensitively.
[mms] Performance optimizations in the parser.

[jan] Correct dates with very large days-of-month more efficiently (Bug #12615).
[jan] Don't limit the argument to Horde_Date_Utils::isLeapYear() to 4 digits.

[mms] Remove duplicate constructor.

[mjr] Only query History when we have a range of modSeq values to query
      (, Bug #12660).

[mms] Explicitly reject XOAUTH2 as a authentication mechanism if it is not
      configured in the client (Bug #12756).
[mms] Sort UID list before sending in QRESYNC parameter.
[mms] Ensure that INBOX always appears in subscribed mailbox list when using a
      server that supports LIST-EXTENDED.
[mms] Fix regression where INBOX may not be recognized as subscribed, if the
      server doesn't list it in the subscribed list.
[mms] Handle case-insensitive INBOX return from the server.
[mms] Use strict RFC-compliant workaround for servers that don't support the
      UNSELECT IMAP extension.
[mms] Ensure Horde_Imap_Client_Base#search() always returns the 'count' value
      (Bug #12682).
[jan] Fix incorrect usage of Horde_Db API in cache backend.
[mms] Workaround servers that don't advertise UIDL until after authentication.
[mms] Fix parsing continuation requests sent in SASL AUTH command (RFC 5034).
[mms] By default, use TLS if available and necessary to login to server.
[mms] Fix adding status information to listMailboxes() return when LIST-STATUS
      is not available.

[jan] Fix modifying entries with modify().
[jan] Try starting TLS without querying the rootDSE (Bug #12157).

[mms] Add Horde_ListHeaders#headers().

[jan] Add a CLI formatter and handler.

[mms] Discard personal information when it is identical to e-mail address.

[mms] Fix regression that broke quoted-printable encoding.
[mjr] Work around broken PHP behavior that could cause a segfault when encoding
      certain strings as quoted-printable.

[mjr] Prevent data loss due to forced selection of incorrect database.

[mms] Fix iteration of Horde_Prefs_Scope object.

[mjr] Correctly catch HTTP client exceptions.

[mjr] Correctly catch HTTP client exceptions.

[mms] Fix handling EOLs split on a stream bucket boundary (Bug #12763).
[mms] Fix escaping periods that begin a line of DATA input.
[mms] Explicitly reject XOAUTH2 as a authentication mechanism if it is not
      configured in the client.
[jan] Fix reading translations in PEAR-installed package.
[mms] Fix parsing SMTP error message on servers that support
[mms] Fix aborting a pipelined DATA command if only a subset of recipients were
      rejected (Bug #12659).
[mms] Don't auto-detect TLS availability again once we have done initial

[mms] Initial release.

[mms] Fix spellchecking within the ALT HTML tag (Bug #12610).

[mms] Add Horde_Stream#substring().
[mms] Fix getString() in certain use cases.
[mms] Horde_Stream#getToChar() now supports multiple characters in search
[mms] Horde_Stream#search() now supports multiple characters in search string.
[mms] Add ability to get UTF-8 character length of stream from
[mms] Add length argument to peek().
[mms] Add Horde_Stream#close().
[mms] Add support for parsing UTF-8 characters in stream via
[mms] Add Horde_Stream#eof().
[mms] Add Horde_Stream#end().
[mms] Add Horde_Stream#seek().
[mms] Add Horde_Stream#rewind().
[mms] Add Horde_Stream#pos().
[mms] Add Horde_Stream#__destruct().

[mms] Fix EOL filter when multi-character EOL is split between incoming buckets
      (Bug #2673).

[mms] Fix autoloading from a PHP-defined namespace.

[mms] Fix issue from upstream jsmin.c that was breaking parsing of a keyword
      immediately followed by a regexp (Bug #12787).
[mms] Merge upstream updates to JsMin filter.

[jan] Fix broken offsets during first zone rules.
[jan] Make BYMONTHDAY property as short as possible.
[jan] Fix missing time of day in DTSTART and UNTIL properties.
[jan] Don't create transitions that overlap.
[jan] Use orginally requested time zone instead of alias in TZID.

[jan] Bump minimum version of SSH2 extension to 0.12.


[jan] Fix fatal errors if DAV support is disabled (Bug #12481).

Horde Changes
[jan] Fix fatal error on ActiveSync preferences page (Bug #12631).
[mjr] Fix issue displaying ActiveSync pref page when it contains a wiped
      device entry.
[mms] Allow non-authenticated AJAX actions to be defined.
[mms] Improved session administration UI (Request #12515).
[jan] Make "Others" and cogwheel menu entry available on iOS (Bug #11937).

Mail Changes
[mms] Fix auto-complete of addresses on the dynamic redirect page.
[mms] Fix updating flags in dynamic search view (Bug #12594).
[mms] Use Horde_Smtp to send messages via SMTP.
[mms] Fix applying the 'allow_folders' permission.
[mms] Fix canceling/discarding compose message in basic view (Bug #12555).
[mms] Fix updating message index when deleting a message in basic message view
      (Bug #12539).
[mms] 'trailer' hook now has the user's identity and the list of recipients
      passed as parameters.
[mms] Add ability to access all reply methods in smartmobile view.
[mms] Smarter sizing of popup windows in dynamic view.
[mms] Correctly save multipart/related data when saving compose message as a
[mms] When checking for newmail in a mailbox, use the total number of recent
      messages seen at any time during the page access (Request #12447).
[mms] Workaround IE8's broken XMLHttpRequest when sending data in dynamic
      compose view (Bug #12474).

Address Book Changes
[mjr] Fix deleting multiple contacts via the API (Bug #12554).
[mjr] Fix issue generating contact hashes from EAS contacts that could prevent
      duplicate contact detection from working when certain properties have
      empty values (Bug #12506).

Calendar Changes
[jan] Fix inconsistent handling of all-day events (Bug #12627).
[mjr] Fix infinite loop for Kolab driver when event has recurrence (Bug #12160,
      Thomas Jarosch <>).
[jan] Fix synchronization of shared events in Kolab driver (Thomas Jarosch
      <>, Bug #12585).
[jan] Link to CalDAV help text from calendar dialog.
[mjr] Fix requesting changes by modification sequence (Bug #12508, Thomas
      Jarosch <>).
[mjr] Fix subscribing to internal calendars via subscription URL (Bug #12495).

Tasks Changes
[jan] Fix highlighting task type tabs in list view.
[mjr] Fix requesting changes by modification sequence (Bug #12507, Thomas
      Jarosch <>).

File Manager Changes
[jan] Fix saving columns preference if only one backend exists (Bug #12003).

Timeobject Changes
[jan] Fix timeobjects not showing up in the administration (Bug #12365).
[jan] Add Spanish translation (Manuel P. Ayala <>).

Library Changes
[mjr] Allow authentication to still be attempted without an available password,
      allowing for the use of setups using client certificates.
[mjr] Fix Wbxml output of SEARCH_TOTAL and SEARCH_RANGE values in SEARCH
      responses (Bug #12624).
[mjr] Allow reducing the amount of tag content that is logged to the Wbxml log.
[mjr] Fix broken wbxml in certain cases due to incorrect handling of encoding
      empty array values (Bug #12595).
[mjr] Detect IMAP message deletions on non-CONDSTORE servers during PING
      requests (Request #12597, Thomas Jarosch <>).
[mjr] Do not initiate a looping SYNC if there were any incoming changes, this
      prevents an unnecessary backend ping for each collection.
[mjr] Fix issue that could cause message deletions on the server to not be
      trasmitted to the client if the message falls outside of the FILTER
      window and the IMAP server does not support CONDSTORE.
[mjr] Don't filter out messages flagged as DELETED during initial sync request.
[mjr] Fix issue that could cause corrupt email attachment downloads on certain
      webservers due to PHP flushing the output buffer (Bug #12486).
[mjr] Output X-MS-RP header to advertise to clients that a more recent EAS
      version is supported on the server.
[mjr] Fix issue that could lead to email being duplicated on client due to
      incorrect Collection Type being detected for unsolicited SMS data (Bug
[mjr] Fix decoding EAS Timezone blobs on Big Endian systems.
[mjr] Fix race condition where changes may not be sent to the client due to a
      combination of a long running MOREAVAILABLE sync and server side changes.
[mjr] Do not ask the IMAP server to fetch flags if we don't have an empty imap
      search result (Bug #12551).
[mjr] Fix typos that could cause some sync actions to fail (Bug #12548 and
      #12523, Thomas Jarosch <>).
[mjr] Ensure proper failure codes are returned when a client addition fails to
      be added to the backend during a PARTIAL sync.
[mjr] Fix obtaining the timestamp of the last successful sync when backend uses
      modification sequences (Bug #12529).
[mjr] Fix broken Email sync due to clients that send unsolicited SMS data (Bug
[mjr] Fix returning incorrect syncstamp when adding, editing, or deleting
      messages and backend uses modification sequences (Bug #12523).
[mjr] Fix bug that could cause a sync loop if history data is removed or a
      collection is empty and therefore has no history data (Bug #12531).
[mjr] Fix filtering out changes due to incoming client email requests in
      certain cases.
[mjr] Send empty POOMMAIL_CATEGORIES tag as Exchange does.
[mjr] Fix sending deletion commands to clients when an item is created on one
      EAS client, but deleted on another EAS client.

[mjr] Add X509 authentication driver.

[mms] Improved error handling/logging when system temporary directory is not
[mms] Don't cache missing class paths.
[mms] Purging the autoloader cache no longer requires knowledge of the various
      SERVER_NAME settings used on a given system.

[mms] Detect stock N900 browser as mobile browser (Request #12613; Thomas
      Jarosch <>).

[jan] Fix certain sizes reduced by factor ten (Bug #12462).

[mjr] Always honor activesync_replyposition pref (Bug #12636, Thomas Jarosch
[rla] Add support for external links in topbar (Request #11977).
[mms] Fix active session counting from CLI script (Bug #12628).
[mms] Fix regression in authenticating to an application when a session is
[mms] Update session data stored with secret key if session ID changed and we
      are using non-cookie based sessions.
[mms] Horde_Session now handles resetting the secret key on login.
[mms] Add Horde_Session::ENCRYPT flag for session data.
[mms] The Horde_Mail factory now uses Horde_Smtp as the underlying SMTP driver
      instead of Net_SMTP.
[mms] Don't redirect to current page's URL when logging out with a custom
      message (Bug #12538).
[mjr] Ensure modseq values are always integers which prevents sync loops when
      no history data is available (Bug #12531).
[mms] Ensure Registry exists in error handler before attempting to access it
      (Bug #12540).
[jan] Remove text overlaying menu icon (Bug #12496).
[mms] Log unexpected authentication errors at a NOTICE level instead of EMERG.
[mms] SessionHandler should not use HashTable wrapper, as it explicitly can't
      be serialized.

[jan] Fix detecting bad PGP signatures on some systems with non-English locales
      (Bug #10273).

[jan] Fix installation path for translations.

[jan] Fix schema version table names when using horde-db-migrate-component.

[jan] Update Ukrainian translation.

[mms] Add read-only property indicating whether driver supports locking.

[mjr] Add method to get the most recent history entry for any given id (Thomas
      Jarosch <>, Request #12558).
[mjr] Further fixes for database migration issues, very index name and
      existence before removing (Bug #12498).
[mjr] Correctly remove unused index, readd erroneously removed indexes.
[mms] Fix usage of removeIndex().
[mms] Fix migrations nos. 4 & 5.
[mjr] Add index for better modseq query performance in sql driver (Bug #12476).
[mjr] Fix expiring the log cache when logging a new entry.

[jan] Provide more useful messages when throwing exceptions.

[mms] Added the 'statuscache' property to Horde_Imap_Client_Base (Request
[mms] The 'xoauth2_token' parameter now accepts a
      Horde_Imap_Client_Base_Password object.
[mms] Deprecated the 'encryptKey' parameter and instead support passing a
      Horde_Imap_Client_Base_Password object into the 'password' parameter.
[mms] Added the Horde_Imap_Client::STATUS_FORCE_REFRESH flag.
[mms] Fix regression in setting CAPABILITY for IMAP servers that don't
      automatically send this information after login.
[mms] Fix regression in POP3 SASL PLAIN authentication command.
[mms] Fix regression in mapping message sequence numbers to UIDs when doing an
      'all' activity in POP3.
[mms] Added support for the Google XOAUTH2 authentication mechanism for the
      IMAP Socket driver.
[mms] Fix regression in retrieving CAPABILITY information after we login.
[mms] Fix regression in caching for POP3 servers.
[mms] Cache any data returned from POP3 capability sniffing.
[mms] Add remote POP3 server test.
[mms] Fix sniffing capabilities for POP3 servers that don't support the CAPA
[mms] Fix returning list of expunged UIDs when expunging all messages in a
      mailbox that doesn't support CONDSTORE (Bug #12559).
[mms] Translate mailbox names from UTF7-IMAP -> UTF-8 in return from
      Horde_Imap_Client_Base#getMetadata() (Bug #12541).
[mms] Added the Horde_Imap_Client::STATUS_RECENT_TOTAL return option to
[mms] More graceful handling of servers that return broken FETCH information
      (Request #12441).

[jan] Fix saving all day events when the end date is on the next day (Thomas
      Jarosch <>, Bug #12627).

[jan] Catch errors in Kolab_Storage_Driver_Imap#fetchComplete() (Thomas Jarosch
      <>, Bug #12584).
[jan] Retrieve status changes during running requests (Thomas Jarosch
      <>, Bug #12589).

[mms] Workaround broken Net_SMTP handling regarding the end of message data
      (Bug #12614).
[mms] Added the Horde_Mail_Transport_Smtphorde driver.
[mms] Added the 'bare_addresses_idn' property to Horde_Mail_Rfc822_List.
[mms] Added the 'bare_address_idn' property to Horde_Mail_Rfc822_Address.

[jan] Fixed connection to Memcache servers.
[mms] Immediately throw exception when no servers can be connected to.
[mms] No need to serialize logging object twice.

[mms] Remove stream filters before returning stream to calling code.
[mms] Support Horde_Mail_Transport_Smtphorde when sending messages.
[mms] Net_SMTP does not support sending via BINARYMIME.
[mms] Fix parsing broken multipart messages (Bug #12536).
[mms] Use the correct EOL string when transfer encoding content (Bug #12452).

[jan] Fix unserialization notices in SQL driver.

[jan] Don't set default value for TEXT column.
[rla] Add Db backend for Queues.
[cjh] Add Horde_Queue_Runner#runTask().
[cjh] Allow RequestShutdown runner to handle tasks that spawn other tasks.

[jan] Try to parse error message from json-formated error response.

[mms] Fix session ID tracking for the Hashtable driver.
[mms] Fix rare race condition when creating file-based session data for the
      first time (Thomas Jarosch <; Bug #12557).
[mms] More robust way of checking for locking in a HashTable instance.

[mms] Transparently handle required TLS connection when no security was
[mms] Change default security to use TLS, if available.
[mms] Fix storing password object in the Horde_Smtp object.
[mms] Deprecated the 'password_encrypt' parameter and instead support passing a
      Horde_Smtp_Password object into the 'password' parameter.
[mms] Fix DIGEST-MD5 authentication method.
[mms] Added support for the Google XOAuth2 authentication mechanism.
[jan] Fix detecting if connection to SMTP server fails.
[mms] Initial release.

[mms] Add Horde_Stream#getEOL().

[mms] Horde_Support_Stub now handles array-like accesses.

[jan] Define missing Horde_Test_Stub_Registry property.

[mms] Use strpos() instead of preg_match() for simple string searches (Thomas
      Jarosch <>, Request #12603).

[jan] Allow collections with arbitrary keys when rendering partials.

[mms] Update LZ4 source to r99.


[mjr] Add API methods for using history modification sequences.

Horde Changes
[jan] Set Basic Authentication HTTP headers if running PHP as CGI.
[jan] Return to original URL after logging in.
[jan] Fix login icon.
[jan] Enable Turkish translation on PHP 5.5.
[rla] Add a cli script for running queue tasks.
[jan] Create parent permissions too if automatically creating permissions (Bug
[mjr] Update Twitter block layout to honor Twitter's API version 1.1 display
      requirements, and add support for updating favorites.

Mail Changes
[mms] Workaround Chrome bug preventing drag/drop of attachments in dynamic
      compose (Bug #12418).
[mms] Better handle transient mail server connection issues in basic and
      minimal views.
[mms] Fix regression of redirect message not working in dynamic view (Bug
[jan] Fix link to setup browser for mailto: protocol.
[mms] Fix uploading attachments on Firefox 22+ in dynamic view.
[mms] Fix image upload dialog in the HTML compose editor.
[mms] Fix purging search previews from browser cache when switching mailboxes
      (Bug #12384).
[mms] Fix parsing signed & encrypted S/MIME messages sent from Outlook
      2007/2010 (Bug #12374).
[mms] Fix updating mailbox list when changing sort direction in search
      mailboxes (Bug #12369).
[mms] Fix saving S/MIME certificate to addressbook when message is both signed
      & encrypted (Bug #12354).
[jan] Fix displaying photos in rendered vCard files.
[jan] Fix detecting capability to list users if called via RPC (Bug #12305).
[mms] Clear cached previews in dynamic view when changing or refreshing a
      search mailbox (Bug #12349).
[mms] Fix adding an HTML trailer to a compose message.
[mms] Fix regression preventing ACLs from being added (Bug #12346).
[mms] More fixes for regressions in linked attachment behavior.
[mms] Fixes for regressions in linked attachment behavior.
[mms] Catch invalid characters in user-defined flag names (Bug #12335).
[mms] Workaround IE javascript limitations preventing attachments from being
      uploaded in dynamic view.
[mms] Remember mailbox list position when viewing messages in smartmobile view.
[mms] Fix handling unsuccessful mailbox import in dynamic view.
[mms] Mailbox imports are now limited to 2500 messages by default.
[mms] Fix adding addresses from the contacts popup in certain situations (Bug
[jan] Fix fatal error when importing a PGP key (Bug #12318).
[mms] Fix regressions in navigation arrow links on basic message page.
[mms] Fix regression preventing Virtual Inbox from refreshing once opened in
      dynamic view (Bug #12304).
[mms] Don't show option to add senders to safe images list if the current
      address cannot be added to the safe list.
[mms] Don't log authentication exception messages from the IMAP library;
      authentication failures are already logged by the authentication code.

Filters Changes
[mms] Disable links if the underlying preferences are locked.
[jan] Fix setting excluded addresses and mailing list flag in Sieve vacation
[jan] Fix option to filter by user-defined headers (Bug #12345).
[jan] Fix highlighting of menu entries.
[jan] Restore compatibility with PHP 5.3 (Bug #12306).

Address Book Changes
[jan] Import and export UID vCard attributes (Bug #12427).
[mjr] Honor the 'browse' setting when attempting empty searches.
[jan] Set generic 'phone' attribute when importing from vCard (Bug #12329).

Calendar Changes
[jan] Display CalDAV URL of system calendars and tasklists (Bug #12342).
[jan] Fix system calendar listing via WebDAV.
[rla] Add system calendar support for Kronolith CalDAV access (Request #12342).
[mjr] Fix automatically adding organizer as attendee in dynamic view.
[mjr] Prompt for sending cancellation iTip when deleting an event (Bug #12415).
[rla] Properly display system-owned calendars when browsing DAV (Bug #12325).
[mjr] Fix setting RECURRENCE-ID field when exporting ics file (Bug #12368).
[jan] Fix propagating calendar URLs if import/export is turned off.

Tasks Changes
[jan] Display CalDAV URL of system tasklists (Bug #12342).
[mjr] Only query Horde_History when it's required.
[jan] Fix system tasklist listing via WebDAV.
[rla] Add system tasklist support for Nag CalDAV access (Request #12342).
[jan] Fix task description tooltip (Bug #12421).
[mjr] Persist the tasklist and parent when creating a new task and using "Save
      and New" (Bug #12400).
[mjr] Fix tag browsing of shared tasklists (Bug #12405).
[mjr] Fix importing VTODOs containing RELATED-TO fields (Bug #12355).

Bookmarks Changes
[mjr] Fix some minor issues with crawling bookmarks.
[mjr] Show recently used tags on-demand (Bug #11712).

Tagging Changes
[mjr] Fix obtaining tag cloud information when filtering by objectIds.

Library Changes
[mjr] Fix off by one error when checking WINDOWSIZE, which breaks syncing with
      clients that have broken WINDOWSIZE implementations (Bug #12443).
[mjr] Fix bug that causes incorrect MIME truncation when the client requests no
      MIME truncation (Bug #12437).
[mjr] Fix returning proper values for the
      Horde_ActiveSync_Message_SendMail::replacemime property. The could cause
      replying to email with some EAS 14+ clients to fail.
[mjr] Fix SmartReply/SmartForward commands when the client does not send Wbxml.
[mjr] Fix some fringe cases where client initiated message deletion may fail.
[mjr] Work around some broken behavior in Blackberry clients (Bug #12370).
[mjr] Fix regression that caused MEETINGRESPONSE requests to fail (Bug #12403).
[mjr] Fix ITEMOPERATIONS requests under 14.1.
[mjr] Fix issue the could cause sync to fail if an incorrectly formatted email
      date header is encountered.
[mjr] Filter out email that falls outside of FILTERTYPE on CONDSTORE servers as
      well (Bug #12360).
[mjr] Fix detecting changes for servers without CONDSTORE and a non-zero
      FILTERTYPE (Bug #12316).
[mjr] Fix fetching email messages from search results using ITEMOPERATIONS
      command (Bug #12212).
[jan] Add Spanish translation (Manuel P. Ayala <>).
[mjr] Add support for SyncStamps - either timestamps or backend controlled
      modification sequences.

[jan] Add password policy for minimum number of non-alphabetic characters
      (Friedrich Haubensak <>, Request #12243).
[jan] Fix resetting passwords with LDAP driver (Bug #12317).
[mms] Fix authentication with the Http auth driver.

[mms] Fix explicit key expiration (João Machado <>).

[jan] Print additional error details in fatal errors if available.

[jan] Fix Dbx and Tar unpacking on PHP 5.5+.

[mms] Silence decompression warnings.

[mjr] Fix sending s/mime signed email from EAS clients (Bug #12445).
[mms] Correctly logout when a Horde_Exception_AuthenticationFailure is handled
      by the default Horde error handler.
[mms] Don't convert image data URLs already contained within a CSS file when
      compressing (João Machado <>).
[mms] Prevent endless loop when checkExistingAuth() test fails when
      initializing an application.
[mjr] Fix issue with replying to emails using EAS 14+ that was causing
      duplicated original message bodies for some clients.
[mjr] Performance improvements to Horde_Core_TagBrowser when fetching related
[mjr] Fix bug in TagBrowser causing shared resources to be ignored (Bug
[jan] Fix returning the default from address from a different user without
[jan] Fix inactive email fields with multiple addresses if disabling linking
      (Bug #12051).
[mms] Use built-in ISO 639 mapping in LanguageDetect factory if the underlying
      library supports it.
[jan] Fix rendering of email addresses in inactive forms.
[jan] Fixed displaying photos in rendered vCard files.
[jan] Fix CalDAV/CardDAV access from iOS devices.
[mjr] Fix obtaining IMSP objects from Horde_Core_Factory_Imsp_Auth.
[mjr] Fix ActiveSync folder generation when email support is disabled (Bug
[mms] Fix language selection at login (Bug #12338).
[mjr] Add support for history modification sequences in ActiveSync driver.
[mjr] Fix incorrect offsets when generating free/busy data for ActiveSync
[mms] Add Horde_HashTable to dependency list (Bug #12314).
[jan] Don't overwrite host part of parsed email addresses (Bug #12302).

[mms] SECURITY: Fix XSS vulnerability in Horde_Crypt_Smime#certToHTML() (João
      Machado <>).

[jan] Fix installation path of \Sabre\VObject\Document.
[rla] Add system share support for CalDAV (Request #12342).
[jan] Fix PUTing content from the input stream to the backend.
[jan] Update to SabreDAV 1.8.6.

[mms] Use changed behavior of '_formvars' in Horde_Variables.

[mms] Workaround broken redis installations that don't support the keys()
      command (Bug #12416).

[jan] Use Horde_Cache instead of Horde_HashTable for caching.
[mjr] Add support for modification sequences.
[mms] Abstract history query caching to use Horde_HashTable.
[cjh] Add ability to cache history queries.

[jan] Fix generating DATE-TIME attributes with timezone information (Bug
[jan] Fix returning multiple attribute properties of the same name (Bug
[jan] Remove group identifiers from attribute types (Bug #12329).

[mjr] Fix generating center image crops on Solaris systems that still use older
      Bourne shell.

[mms] Fix regression in handling response codes in POP3 driver.
[mms] Fix clearing data from the MongoDB cache.
[mms] So many IMAP servers have issues with BINARY, that we should not send
      literal8 data unless we absolutely have to.
[mms] Remove read/write buffering from stream connection to remote server.
[mms] Ensure we only use literal8's in APPEND commands.
[mms] Abstract connection code into separate library, to better handle output
      buffering and error handling.
[mms] Fix regression in throwing exceptions when parsing POP3 server responses.

[mjr] Fix some undefined constant errors.

[jan] Re-throw ReflectionExceptions as Horde_Injector_Exceptions.

[mms] Honor 'pipelining' configuration option in SMTP transport driver.

[mms] Fix handling of large items (João Machado <>).

[jan] Fix setting a different body if reusing a Horde_Mime_Mail object.
[mms] Update MIME extension mapping.
[mms] Fix Horde_Mime_Part::getRawPartText() when obtaining the first body part
      of a single part message.

[mms] Fix checking/creating indices when a MongoCollection object is passed to
      checkIndices()/createIndices() (Bug #12353).

[mms] Add ability to override locked pref status when setting value via

[mjr] Fix fetching user mentions.
[mjr] Use API version 1.1
[mjr] Add support for favorites.

[mjr] Fix setting permissions while saving shares when using the sqlng driver
      (Bug #12413).

[mms] SECURITY: '_formvars' form input must now be JSON encoded, not PHP

[jan] Return more detailed error messages from File driver.

[mms] Change license from PHP -> MIT.


Mail Changes
[mms] Fix fatal error when importing a S/MIME key (Bug #12290).
[mms] Fixed segfaults caused by SMTP debugging.

Filters Changes
[mjr] Fix fatal error when updating filters.

Address Book Changes
[jan] Fix searching in LDAP address books (Bug #12297).

Calendar Changes
[jan] Add help text for CalDAV usage.

Library Changes
[mjr] Fix some issues caused by broken non-mime part truncation.
[mjr] Fix handling MIMETRUNCATION for emails with attachments (Bug #12289).
[mjr] Fix missing email body data for certain clients (Bug #12203).
[mjr] Fix requesting email data via ITEMOPERATION command (Bug #12292).
[mjr] Fix a BC break that was causing FOLDERSYNC requests to f fail.
[mjr] Fixes for broken clients like the S3 that request SMS sync even when told
      there is no SMS collection.

[mms] Fix return from get() when using the Hashtable driver.
[mms] Fix hashtable driver name.
[mms] Horde_Memcache cache driver is now deprecated in favor of the
      Horde_HashTable driver.
[mms] Add Horde_HashTable cache driver.

[jan] Don't break existing unchanged sources in the preferences.

[mms] Be more lenient about mailboxes containing null characters in
      Horde_Imap_Client 2.x for BC reasons.
[mms] Fix flushing debug buffer when unexpected data is returned from the
      remote server.
[mms] Improved detection of client-side command errors before sending to the
      remote IMAP server.
[mms] Better sanity checking that we don't send binary data for mailbox

[mms] Horde_Memcache driver is now deprecated in favor of the Horde_HashTable
[mms] Added Horde_HashTable driver.
[mms] Implement logging for all storage drivers.


[jan] Add file manager and bookmarks manager.

Horde Changes
[mms] Add 'ajaxaction_handle' hook and deprecate 'ajaxaction' hook.
[mms] Add configuration option to configure the e-mail address reset password
      confirmation messages should be sent from.
[mms] Treat an AJAX session token failure as a session timeout.
[mms] Add ability to update/create NoSQL indices from the admin config page.
[mjr] Add activesync device hooks.
[mms] Add a global default NoSQL driver configuration.
[mms] Allow MongoDB to be used as a cache backend.
[jan] Check all installed PEAR packages when checking for updates.
[mms] Add 'ajaxaction_data' hook.

Mail Changes
[mms] Add ability to (un)subscribe to all subfolders in dynamic view.
[mms] When checking for personal addresses when deciding whether to display
      images, only check against e-mail field.
[mms] Correctly notify dynamic mailbox view if sent-mail mailboxes are created
      in compose page.
[mms] Fix sending group addresses from smartmobile view.
[mms] Add 'horde_auth' option to SMTP configuration in backends.php.
[mms] Add null spam reporting driver.
[mms] Display information to user if incorrect character set data is preventing
      a text part from being displayed.
[mms] Fix regression in renaming mailboxes (Bug #12260).
[mms] Directly output image thumbnails via data URIs when possible.
[jan] Fix incorrect dependencies.
[mms] Add ability to create new flag directly from dynamic mailbox screen.
[mms] Implement 'refresh_time' preference in smartmobile view.
[mms] Add taphold message action menu to smartmobile mailbox page.
[mms] Add MongoDB driver for sentmail log storage.
[mms] Add IMAP cache specific purge action to the imap cache query script.
[mms] Add support for using SQL and NoSQL backends for IMAP/POP caching.
[mms] Add thumbnail generation for video attachments.
[mms] Convert Data URLs in a reply message into attachments so that compose
      attachment limits can be enforced (Bug #12167).
[mms] Allow attachments to be dragged/dropped from local filesystem on the
      dynamic compose page.
[mms] Hide browser generated file input widget for attachment upload in dynamic
      compose page.
[mms] Add attachment upload capability to smartmobile compose page.
[mms] Add HTML image/style blocking to smartmobile view.
[mms] Improved autocompleter in smartmobile compose view.
[mms] Add saving compose drafts in smartmobile view.
[mms] Rename 'compose_attach' hook as 'compose_attachment'.
[mms] Honor forward_default preference in smartmobile view.
[mms] Add PGP keylength configuration option (Request #12099).
[mjr] Expose the Maillog via the public API.
[mms] Better handling of flag change attempts when browser cached state
      (dynamic/smartmobile view) is different than the server state.
[mms] Move backend configuration parsing/retrieval to IMP_Imap_Config.
[mms] Spam reporting configuration has been moved to the backends file.
[mms] Support showing blocked Data URIs in HTML message data.
[mms] Add the 'mbox_acl' hook.
[mms] Move folder disabling configuration into the permissions system.
[mms] Upgraded IMP permissions to allow permissions to be set per active
[mms] Allow the active search query to be edited in the smartmobile view.
[mms] Add link to exit out of search view in smartmobile view into the
      original mailbox.
[mms] Allow default special mailbox names to be overriden by a backend.
[mms] Move special mailboxes autocreation configuration into backends.php.
[mms] Add SMTP debugging.
[mms] Disable mailbox sorting by default if the remote server does not natively
      support it (Bug #12001).
[mms] Add the 'msg_filter' hook.
[mms] Added the 'attach_body_check' hook.
[mms] Add linked attachment information directly to main body text.
[mms] Added argument to the 'trailer' hook to allow HTML trailers to be
[mms] Attachments can now be configured to be linked only if over a
      configurable size threshold.
[mms] Linked attachments are no longer a user-configurable action.
[mms] Spam/innocent reporting on the smartmobile message page now uses a popup
      instead of a modal dialog.
[mms] Rewritten/improved linked attachment code.
[mms] Add discard draft option to compose page allowing the user to cancel
      composition and permanently delete the original draft (Request #12017).
[mms] Minimal view menu entries are now accessible via numbered accesskeys
      (Request #5847).
[mms] Add image upload feature to the HTML editor image plugin.
[mms] Allow drag & drop/pasting of images into the HTML editor.
[mms] All basic view pages are now routed through the basic.php endpoint.
[mms] Save AJAX showMessage call when reloading the dynamic mailbox page with a
      message preview active.
[mms] Dynamically display MIME type icon for attachments uploaded on the
      dynamic compose page.
[mms] Remove 'compose_cc' and 'compose_bcc' preferences.
[mms] Support attaching vCard in dynamic compose.
[mms] Support attaching PGP public keys in dynamic compose.
[mms] Smartmobile view now uses additive loading instead of pagination on the
      mailbox page.
[mms] Removed the 'link_all_attachments' configuration option.
[mms] Support link attachment feature in dynamic view.
[mms] Display Virtual Folders in smartmobile view.
[mms] Abstract all UIDs used for mailbox/message navigation on the browser to
      BUIDs (browser UIDs) (Bug #10719).
[mms] Use more efficient murmurhash3 to determine changes in compose message
      that will trigger auto saved drafts.
[mms] Initialize viewport and mailbox list in single AJAX call when initially
      loading the dynamic mailbox view.
[mms] Add message thread view to dynamic mailbox preview.
[mms] Better UI for changing quicksearch criteria in dynamic mailbox screen.
[mms] Collapse multiple mailbox export options in dynamic mailbox view to
      single action.
[mms] Importing a PGP personal key now only requires the private key.

Filters Changes
[mms] Fix regression in accessing Ingo links from the external API (Bug
[jan] Add composite script backends.
[jan] Add vacation driver for ISPConfig (Michael Bunk
[jan] Hide unsupported form fields of vacation form (Michael Bunk
[jan] Add composite transport backends.
[jan] Move shared ruleset selection to sidebar.
[mms] All Ingo templates now use Horde_View.

Address Book Changes
[mms] Back button in smartmobile view for group member returns to group entry,
      not browse list.
[mms] Fix resetting smartmobile entry page when viewing more than 1 contact.
[mjr] Update the default SQL schema.
[jan] Fix incorrect dependencies.
[jan] Add CardDAV server support.
[mjr] Update the default SQL source schema (Request #11993).
[mms] Add links to group members on smartmobile entry page.
[mms] Add group icon to group contacts in smartmobile browse view.
[jan] Allow to search all search fields at once in basic searching.

Calendar Changes
[jan] Fix editing of events per CalDAV if client sends LAST-MODIFIED attribute
      (Bug #12244).
[jan] Fix incorrect dependencies.
[jan] Add CalDAV server support (Request #4267).
[jan] Use Horde_Dav for accessing remote calendars.
[mjr] Expose Kronolith_FreeBusy::get() via the external API.

Tasks Changes
[jan] Don't include external tasks in listTasks() API results.
[jan] Fix incorrect dependencies.
[jan] Add CalDAV server support (Request #4267).
[jan] Update design to closer match the Horde 5 UI.

Notes Changes
[jan] Fix incorrect dependencies.
[jan] Add Ukrainian translation (Andriy Kopystyansky <>).
[mjr] Add support for ActiveSync synchronization of notes.

Library Changes
[mjr] Improvements to synchronizing reply/forward state and maillog entries
      when using Outlook.
[mjr] Improvements and various fixes to detecting client originated changes.
[mjr] Fix numerous issues related to incoming changes with GETCHANGES
      explicitly set to false.
[mjr] Fix mirroring back changes when an object created on the client is edited
      on the same client within 1 sync cycle.
[mjr] Fix mirroring new entries created on certain clients back to the client.
[mjr] Fix creating new objects from Outlook clients.
[mjr] Fix setting incoming heartbeat value.
[mjr] Fix sending updated heartbeat interval when requested heartbeat is out of
[mjr] Fix building initial message state in certain cases for email collections
      when IMAP server does not support per mailbox MODSEQ values.
[mjr] Fix fatal error when using the deviceCallback functionality (Bug #12236).
[mjr] Fix creating/deleting mailboxes with non-empty default namespaces (Bug
[mjr] Fix non-BC change in abstract method signature.
[mjr] Flag changes will now trigger a positive PING/SYNC if the IMAP server
      supports per-mailbox MODSEQ and CONDSTORE.
[mjr] Add support for EAS 14.0 and 14.1 (see for complete feature list).
[mjr] Fix synchronizing certain recurring tasks (Bug #12223, Thomas Jarosch
[mjr] Fix issue that could cause some attachments to become corrupt on the

[mms] SECURITY: Fix token validation of AJAX actions.
[mms] Added Horde_Core_Factory_Mail factory to allow for alternative mailer
[mms] Fix honoring the sendmail_eol configuration option.
[mms] Make sure we are not using a SQL Cache driver in the DB object itself.
[mms] Horde_Memcache usage is deprecated in favor of Horde_HashTable.
[mms] Add factory for Horde_HashTable drivers.
[jan] Fix dependencies.
[mjr] Workaround some limitations with maillog and answered flag syncing in
      Outlook 2013
[mms] Add the Horde_Registry_Application#nosqlDrivers() method.
[mms] Add the Horde_Core_Nosql library.
[jan] Fix setting configuration for timezone lookups.
[mms] Add a NoSQL factory.
[mms] Allow MongoDB to be used as a cache backend.
[mms] Regenerate session IDs during an active session to protect against
      session fixation attacks.
[mms] Re-enable support for $conf['session']['timeout'] to allow for
      non-session based cookie lifetimes.
[jan] Add menu entry to show the notification log.
[mms] Dynamic javascript framework now has support for audio notification
[mjr] Add support for EAS 14.0 and 14.1 (see for complete feature list).
[mms] Add ability to submit form data to AJAX action in smartmobile view.
[mms] Upgrade jQuery Mobile to v1.2.1/jQuery Core to v1.8.3.
[mms] Smartmobile view now honors the current CSS caching configuration.
[mms] Add Horde_Core_Ajax_Application#callAction().
[mjr] Close growler notification when alarms are dismissed (Bug #12122).
[mms] CSS parsing now uses the CSS3 compatible Horde_Css_Parser package instead
      of Horde_Text_Filter_Csstidy.
[mms] Fire before/after events in core AJAX javascript code when processing
      data returned from the server.
[mjr] Fix sending encrypted emails while locating recipient's public key via
      the GAL.
[jan] Use PEAR package information to retrieve packages names in
[jan] Get version list from when checking for updates.
[mms] Add support for 'ajaxaction_data' hook (won't be documented in Horde
      until 5.1+).

[jan] Fix empty collections if applications don't provide DAV methods (Bug
[jan] First beta release.

[mms] Add initial unit tests.
[mms] Add memory driver.
[mms] Actually have HashTable return results for get() and exists().
[mms] Add stats() method to the Memcache driver (Bug #12263).
[jan] Fix fatal errors.
[mms] First beta release

[mms] Add Horde_Mongo_Client#checkIndices() and
[mms] Add Horde_Mongo_Collection_Index interface.
[mms] First beta release.

[jan] Use Horde_Dav for DAV RPC backends.


[jan] Update Ukrainian translation (Andriy Kopystyansky
[jan] Update Basque translation (Ibon Igartua <>).
[jan/mms] Improve/fix unit tests.
[jan] Improve dependency detection.

Horde Changes
[mms] SECURITY: Fix XSS vulnerability on smartmobile portal page (João Machado
[jan] Fix changing expired passwords.
[jan] Fix form to reset passwords.
[mjr] Fix displaying activesync devices when a username hook is being used
      (Bug #12186).
[jan] Hide navigation elements from print layout (Bug #12163).
[cjh] Add support for New Relic real-user monitoring (RUM) if New Relic is
[mms] Login screen now hides the mode input if javascript is not available, as
      minimal view is the only supported mode (Request #12093).
[jan] Fix searching from topbar if search URL contains parameters.

Mail Changes
[mms] SECURITY: Fix XSS vulnerability on smartmobile message page (João Machado
[mms] Fix navigating to search page in dynamic view from top menu (Bug #12273).
[mms] Correctly update viewport selected status if mailbox is switched during a
      delete action (Bug #12230).
[jan] Fix empty label for spellcheck button.
[mms] Fix signature verification for PGP combined signed & encrypted messages
      (Bug #12142).
[mms] Don't display empty mailbox action for mailboxes when Virtual Trash is
      active (Bug #12162).
[mms] Fix renaming mailboxes in dynamic view.
[mms] Switching from HTML to text in dynamic compose view must be a synchronous
      operation, or else HTML tags may appear in compose window.
[mms] Fix ability to switch to non-default date sorting algorithm in dynamic
      view (Bug #12139).
[mms] Fix printing quoted text when viewing a list message.
[mms] Use Horde_Css_Parser package, which is compatible with CSS3 declarations,
      instead of the unmaintained Horde_Text_Filter_Csstidy code.
[mms] Fix verifying signed & encrypted PGP messages (Bug #12100).
[mms] Update virtual folder name in folder tree when editing the label (Bug
[mms] Fix links to virtual folders on search preferences page.
[mms] Fix edit links for virtual folders in dynamic view (Bug #12072).
[mms] Fix regression in displaying user-defined virtual folders in folder
[mms] Correctly generate self URLs if a URL parameter is altered by the current
      message action (Bug #12058).
[mms] Fix possible issue creating folder tree if multiple special mailboxes
      appeared in the same branch (Bug #12050).

Filters Changes
[mms] SECURITY: Fix XSS vulnerability on smartmobile rule page (João Machado
[mms] Fix copy/move actions when destination mailbox contains non ASCII
      characters (Bug #12217).
[mms] Translate rule descriptions to the local language in UI.
[jan] Allow multiple addresses for Sieve redirects (, Request

Address Book Changes
[mms] SECURITY: Fix XSS vulnerability on smartmobile contacts details page
      (João Machado <>).
[jan] Fix importing certain phone fields from vCard (Bug #12178).
[mjr] Fix issues with importing contacts via ActiveSync when no default_dir
      pref is set (Thomas Jarosch <>, Bug #12188)
[mjr] Fix ActiveSync global address book searches when using LDAP as backend
      (Bug #12089).

Calendar Changes
[jan] Don't throw error on importing events with unknown timezones (Bug
[jan] Don't send notifications for all recurrence exceptions when deleting
[jan] Only send update notifications for local calendars.
[jan] Re-enable users in drop-down list after revoking permissions (Bug
[jan] Fix exporting events of a certain time span (,
      Bug #12074).
[mjr] Always populate the meetingstatus property in ActiveSync requests  to
      avoid issues with some versions of iOS (Bug #12056).
[mjr] Fix deletion of resource events after deleting resource (Bug #12034).

Tasks Changes
[jan] Fix recurring tasks in Kolab driver (Thomas Jarosch
      <>, Bug #12222).
[mjr] Fix setting alarm time when syncing (Bug #12201,
[mjr] Fix issue causing due dates to be offset when syncing (Bug #12200,
[jan] Fix listing alarms of recurring tasks.
[jan] Fix default task list in portal block (Bug #12133).
[jan] Fix displaying of due dates of recurring events in some views.
[jan] Update broken rows due to migration bug in PostgreSQL (Bug #12101).
[mjr] Fix uncompleting tasks from task view in smartmobile view
      (, Bug #12098).
[jan] Include parent tasks in cost object labels.
[jan] Only return completed tasks up to a week old as cost objects.
[mjr] Set correct timezone on incoming ActiveSync tasks (Bug #12053).
[jan] Update French translation (Paul De Vlieger

Library Changes
[mjr] Fix returning message property values when the value is defined, but
      empty (Bug #12197).
[mjr] Fix saving IMAP folder state when CONDSTORE is available but no
      per-mailbox MODSEQ.
[mjr] Fix mail synch failure due to messages being deleted on server during
      initial synch.
[mjr] Fix issue with importing messages due to bad merge (Bug #12185).
[mjr] Fix typo that could cause device information to not be saved correctly.
[mjr] Fix authentication clean up during certain request types.
[mjr] Work around broken HTC clients when creating appointments with no
      reminders (Bug #12155).
[mjr] Fix setting User Agent value for certain clients in EAS 12.1 or greater
      (Bug #12154).
[mjr] Properly set disposition and content-id properties when building
      attachments from multipart/related parts (Bug #12123).
[mjr] Various improvements and code cleanup.
[mjr] Some fixes to GETITEMESTIMATE requests.
[mjr] Logging improvements.
[mjr] Fix regression introduced in 2.2.1 caused by fix for Bug #12056.
[mjr] Fix synchronizing email messages containing ICalendar attachments with no
      METHOD parameter (Bug #12083).
[mjr] Fix updating state when a PING detected changed has been removed before
      SYNC runs (Bug #12075).
[mjr] Always output the optional POOMCAL_MEETINGSTATUS property to avoid issues
      with some versions of iOS (Bug #12056).

[jan] Fix documentation formatting.
[jan] Add extensive documention.

[jan] Improve documentation.

[mms] Additional sanity checking when trying to load from cache.
[mms] Add support for horde_lz4 for compressing cache data.
[mms] Better error-checking when uncompressing cache data.

[mms] Add MongoDB cache driver.
[mms] Make Horde_Compress_Fast a required package (Bug #12166).
[mms] Fix serialization of all storage drivers.
[mms] Fix regression preventing compression of Horde_Cache data (Bug #12088).
[mms] Abstract data compression out into Horde_Compress_Fast package.

[mms] Silence decompression warnings.
[mms] Add horde_lz4 compression driver.
[mms] Initial release of package.

[jan] Fix error handler in some PHP versions (Bug #12103).
[mms] Queue log entries issued before framework is initialized and log them
      once that occurs.
[mjr] Fix authentication issue when using Horde_Session_Null and expiring
      sessions (Bug #12078).
[mjr] Fix logger creation during RPC access (Bug #12094).
[mms] Add logging wrapper class to reduce serialized size of factory-created
[mms] Always compress cache data, if possible.
[mms] Abstract data compression out into Horde_Compress_Fast package.
[mjr] Fix fatal error synchronizing an ActiveSync meeting response (Bug
[mms] Added Horde_Shutdown - global Horde shutdown function handler.
[mjr] Horde_Registry::getServiceLink() can now return full URLs.
[mms] Allow graphics/sounds to be loaded from view-specific theme directories.
[mms] Add Horde_Themes::viewDir().
[mms] Use csstidy library to parse CSS files when creating static CSS (Bug
[mms] Add Horde_Url#selfUrlParams().
[mjr] Fix determination of ActiveSync sent-mail folder in certain cases (Bug
[mms] Fix order of adding URL parameters in HordeCore.addURLParam (Bug #12058).
[mms] Ensure that session IDs are always 32 bytes long (Bug #12041).
[mjr] Fix saving ActiveSync sent mail when the message contains MIME parts (Bug
[mms] Fix replacing spellchecker elements within tables (Bug #12028).
[mms] Fix encoding of JSON parameters to Horde::popupJs() (Bug #12037).
[mms] Fix destroying session data when the null session driver is used.

[mms] Fix Horde_Crypt_Pgp#encryptedSymmetrically() from entering an infinite
      loop when using GnuPg v2.
[mms] Improve security in PGP key generation (Request #12099).
[jan] Change default keyserver to
[jan] Fix finding key ID for an email address on a keyserver (

[mms] First release for Horde 5.

[jan] Don't use /e modifier with preg_replace() calls (Remi Collet
[jan] Fix parsing yearly recurrences on the same day from Kolab data (Bug
[jan] Fix recurring dates on the 5th weekday of a month (Bug #11181).

[mjr] Fix several parsing bugs (Bug #12006).

[mms] Fix storing schema information in Horde_Cache.
[jan] Use LONGBLOB columns in MySQL when creating binary fields
      (, Bug #12195).
[jan] Fix updating existing rows with default values when adding columns in
      PostgreSQL (Bug #12101).

[rla] Add license file.

[jan] Add configuration option to set User-Agent.
[jan] Allow self-signed certificates when using the fopen driver.

[jan] Fix exporting of base64-encoded attribute values.

[mms] Fix regression in Socket driver when moving messages without UIDPLUS.
[mms] Fix caching MIME structure data in POP3 driver.
[mms] Enhanced parsing of POP3 data from the remote server.
[mms] Workaround broken IMAP servers and prevent infinite loops (Bug #12265).
[mms] Add support for the DOWNGRADED IMAP response code (RFC 6858).
[mms] Fix returning the list of deleted messages in the POP3 driver.
[mms] Handle all additional namespace queries in a single call.
[mms] Pipeline multiple IMAP LIST/LSUB calls.
[mms] Fix login methods that require server continutation responses.
[mms] Correctly handle enabled cached status when not using imapproxy.
[mms] Fix caching of CAPABILITY information when not using imapproxy.
[mms] Support pipelining of STORE + EXPUNGE if UIDPLUS is available.
[mms] Pipeline multiple STATUS commands if LIST-STATUS is not available.
[mms] Fold statusMultiple() functionality into base status() command.
[mms] Pipeline multiple IMAP FETCH calls.
[mms] Delay sending LANGUAGE command until we send another command to save a
[mms] Delay sending ENABLE command until we send another command to save a
[mms] Add internal support for IMAP command pipelining.
[jan] Fix dependency.
[mms] Support UID EXPUNGE command for large UID lists (Bug #12228).
[mms] Don't attempt to expunge messages if the list of UIDs to expunge is empty
      (Bug #12226).
[mms] Correctly use limit parameter to Horde_Imap_Client_Ids#split() (Bug
[mms] Add a MongoDB based backend for storing cached IMAP/POP data.
[mms] Add Horde_Imap_Client_Cache#clear().
[mms] Add a Horde_Db based backend for storing cached IMAP/POP data.
[mms] Abstract the backend storage into a separate driver for the
      Horde_Imap_Client_Cache class.
[mms] Correctly parse message/rfc822 BODYSTRUCTURE responses if the server does
      not provide any envelope information (Bug #12190).
[mms] Fix regression in storing cached flags if not using debug mode.
[mms] Add properties to Sync object to allow retrieval of previous sync state
[mms] Only do UNCHANGEDSINCE check when storing flags if the user explicitly
      passes the 'unchangedsince' parameter.
[mms] Add the 'nocache' option to Horde_Imap_Client_Base#fetch().
[mms] Always return UID information for FETCH queries if cache is active, so we
      ensure that mappings are updated and any cacheable data can be cached.
[mms] Don't cache FETCH data if it does not contain UID information (Bug
[mms] Fix SETQUOTA, GETQUOTA, and GETQUOTAROOT commands on mailboxes that
      contain non-7bit characters (Bug #12059).
[mms] Fix returning UID data from the Horde_Imap_Client_Data_Sync object (Bug
[mms] More efficient implementation of Horde_Imap_Client_Ids#range_string.
[mms] Fix APPENDs on IMAP servers that do not support CATENATE.
[mms] Fix from/to searches on servers that support SORT=DISPLAY when using the
      *_FALLBACK sort criteria.
[mms] Ensure that a FETCH and/or SELECT/EXAMINE (w/QRESYNC) will not exceed
      maximum allowed command length on the IMAP server (Bug #12001).
[mms] Add Horde_Imap_Client_ids#split().
[mms] Fix regression in the replace argument, and multiple arguments to
      add/delete, for the store() command.
[mms] Make sure the modseq given to the vanished() command is always at least 1
      (Bug #12031).

[mms] Add MongoDB driver.
[jan] Fix retrieving lock list if permanent locks exist
      (, Bug #12077).
[jan] Deny exclusive lock if shared locks exist.
[jan] Don't make lock non-permanent when resetting a permanent lock.
[jan] Fix retrieving information for permanent locks.
[jan] Add unit tests.

[mms] Correctly encode IDN domains when sending mail (Bug #12116).

[mms] Add 'no_body' parameter to Horde_Mime_Part#parseMessage().
[mms] Fix parsing wrapped header lines that contain no atom data (Bug #12189).
[mms] Allow a Horde_Domhtml object to be directly passed in to
[mms] Content-Type parameters are case-insensitive (Bug #12161).
[mms] Sanity checking: ignore empty values for Content-Transfer-Encoding MIME
      header (Bug #12146).
[mms] Null characters are no longer allowed in e-mail headers as of RFC 2822.
[mms] More accurate/comprehensive Horde_Mime::is8bit() check (Bug #12127).
[mms] Only use non-ASCII in MIME parameters when absolutely necessary.
[mms] Need to always add charset information to MIME encoded parameters if they
      are not displayable in pure US-ASCII (Bug #12127).
[mms] Correctly quote forbidden characters in MIME parameter data (Bug #12127).
[mms] Round up size output in Horde_Mime_Part#getSize().

[mms] Spreadsheet conversion now works without using temporary files.

[jan] Add Horde_Perms_Permission_Kolab#getOwnerPermissions().

[mms] Fix removing prefs from storage backends (Bug #12208).
[mms] Fix fatal error in Horde_Prefs_Scope#valid().
[mms] Add MongoDB storage driver.
[mms] Fix removing preference from backend (Bug #12207).
[mms] More compact internal/serialized representation of data in
[mms] Simplify Horde_Prefs_Scope iterator.
[mms] Fix regression that broke Horde_Prefs_Identity#getDefaultFromAddress() in

[jan] First stable release for Horde 5.

[jan] Fix examples location.

[mjr] Fix initial authentication for recently changed Twitter API requirements
      (Bug #12165).
[jan] Fix examples location.

[mjr] Update WWO API endpoints.

[mms] Add MongoDB driver.

[jan] Fix testing for owner and user permissions in Kolab shares.

[mms] Add Horde_Support_CaseInsensitiveArray class.
[mms] Add missing magic methods to Horde_Support_Stub.
[mms] Simplify Horde_Support_Array iterator.

[jan] Improve documentation.

[mms] Add test factory for MongoDB.
[jan] Return to old directory after running all tests.

[jan] Improve performance.

[mms] Yet more sanity checking in the Text2html filter to workaround incorrect
      charset information.
[mms] Handle non-supported htmlspecialchars() charsets in the Text2html filter
      (Bug #12253).
[mms] If a preg call exceeds the backtrack limit, fallback to the original text
      (Bug #12152).
[mms] Add 'words' option to the Words filter.

[jan] Fix caching of parsed timezone information.

[mms] Add MongoDB token backend.

[mms] Fix licensing documentation; Horde_Tree has been released under LGPL 2.1
      since 2004 (Bug #12070).

[mms] Add Horde_Url_Data::isData().

[mms] Fix Horde_Domhtml#returnBody().
[mms] Simplify Horde_Variables iterator.
[mms] Can't add charset directly to HTML document or else DOM will alter
      document when generating HTML.
[mms] Added Horde_Domhtml#getBody().

[mms] Add MongoDB storage driver.
[jan] Use ssh2_sftp_chmod() if available (ssh2 0.12).

[jan] Correctly detect sequences when dumping and be more strict when loading

[mms] First stable release.


[jan] Update French translation (Paul De Vlieger
[jan] Update Slovak translation (Jozef Sudolský <>).

Mail Changes
[mms] Improved detection of charset in text/html message parts.
[mms] Fix displaying dynamic compose screen when sent-mail preferences are
      locked (Bug #12009).
[mms] Fix usage of textContent property on IE8 (Bug #12012).
[jan] Fix display of end dates/times of iTip attachments (Bug #11976).
[mms] Fix Reply all/list buttons on basic compose page (Bug #11990).
[mms] Fix deleting virtual folders/filters from preferences page (Bug #11982).
[mms] Fix saving mailbox expansion state in basic folders view (Bug #11979).
[mms] Hide attachment upload UI in dynamic view if file uploads are disabled.
[jan] Fix JavaScript errors with Internet Explorer 8.
[mms] Fix display of mail log icons on the basic message page (Bug #11964).
[jan] Fix stripping attachments in dynamic view (,
      Bug #11959).
[mms] Workaround broken Message-IDs generated by Outlook when replying to a
      message (Bug #11953).
[mms] Fix display of attachment name in basic compose screen (Bug #11947).

Filters Changes
[jan] Fix multiple user-defined headers in a single rule (Zephaniah E.
      Loss-Cutler-Hull, Bug #11893).
[jan] Use more portable procmail recipe for rejects (Bug #7520).
[jan] Fix configuration of 'forward_file' parameter (Bug #11989).
[mms] Require non-empty subject and reason fields when creating a vacation
      message (, Request #8376).

Address Book Changes
[jan] Fix emptying shared address books.
[jan] Fix importing of LDIF data (Bug #11972).

Calendar Changes
[jan] Update alarms, resources, and tags when deleting Kolab events (Bug
[jan] Fix some issues with workweek views if first day of week is Sunday (Bug
[jan] Fix adding holiday calendars if not using English locale (Bug #11961).
[jan] More robust date parsing during event importing (Bug #11916).
[jan] Always export year numbers with four digits to CSV (Request #11917).
[jan] Fix JavaScript error if Nag is not installed.

Notes Changes
[jan] Fix exporting bodies of encrypted notes (Bug #11960).

Tagging Changes
[mjr] Fix logic that could possibly lead to incorrect content types being
      applied to objects (Bug #12016).

Library Changes
[mjr] Fix handling of deleting or moving messages from the client that no
      longer exist on the server (Bug #12013).
[mjr] Fix setting flags on messages marked for deletion (Bug #12007).
[mjr] Fix existence checking, again.
[mjr] Fix behavior when attempting to fetch attachment of a vanished message.
[mjr] Fix multiple accounts on a single client (Bug #11963).
[mjr] Fix setting PINGable collections on non-empty PING requests.
[mjr] Fix handling missing state when processing COMMANDS.
[mjr] Fix loading state for FOLDERSYNC requests for certain clients.

[jan] Fix argument reading in Samba drivers (Bug #11926).
[mms] Remove call-time pass-by-reference, which was causing PAM authentication
      driver to fail in PHP 5.4+ (Bug #10965).

[mms] Upgrade jQuery Mobile to v1.2/jQuery Core to v1.8.2.
[mjr] Fix bug in OpenLayers that caused Prototype's Event object to be
      overwritten (Bug #12019).
[jan] Fix notifications while authenticating transparently.
[mms] Add a configurable delay to the jQuery Mobile autocomplete plugin.
[mjr] Fix handling of moving or deleting messages that have been removed from
      the server (Bug #12013).
[mms] Be sure tasks are passed to any derivative of the HordeCore AJAX response
[mms] Fix spellchecking on HTML data (Bug #11986).
[jan] Fix fatal error in signup and password reset forms (Bug #11952).

[jan] Fix error: DateTime::__construct(): Failed to parse time string
[jan] Catch DateTime exception in Horde_Date_Utils:daysInMonth() (Bug #11916).

[mms] Update CKEditor to v3.6.6.
[mms] Move ckeditor javascript files into a separate ckeditor directory
      (Request #11950).

[jan] Don't set METHOD property unconditionally (Bug #10741).
[jan] Convert test suite to PHPUnit.

[mjr] Fix image watermarking for Imagick and ImageMagick drivers.

[mms] Fix regression in parsing LISTRIGHTS results (Bug #11994).
[mms] Workaround QRESYNC errata that allows FETCH FLAGS results to be returned
      without UID information.
[mms] More robust handling of split FETCH responses.
[mms] Some IMAP servers require a mailbox to be unselected before it can be
[mms] Ignore fetch data returned from an UID FETCH command if it doesn't
      include UID information (Bug #11946).
[mms] Add exists option to Horde_Imap_Client_Base#fetch().

[jan] Don't depend on an IMP identity object.

[jan] Replace preg_replace() /e modifier.

[mms] Fix regression in outputting Content-Disposition 'size' parameter if no
      other Content-Disposition parameter is present.
[mms] Never return decimal values from Horde_Mime_Part#getSize().
[mms] Added parsing limit for deeply nested MIME parts.

[jan] Fix getFormatHeight() and getFormatWidth() in landscape mode.

[jan] Add Horde_Prefs_Identity#getFromAddress().
[jan] Fix LDAP driver and use Horde_Ldap (Heinz Schweiger
      <>, Request #11697).
[mms] Horde_Prefs_Identity#getDefaultFromAddress() now returns a
      Horde_Mail_Rfc822_Address object.

[mms] Fix detection of sys_getloadavg() on Windows (Bug #11972).

[jan] Add test/ directory to include_path to allow autoloading of test classes.

[mms] Html2text filter now has improved handling of extra whitespace.
[mms] Fix XSS filter removing control characters that cause certain charsets
      (ISO-2022-JP) to break (Bug #12015).

[jan] Add license file.

[mms] Add Horde_Url_Data class.

[mms] Added 'charset' and 'metacharset' parameters to returnHtml().
[mms] Added Horde_Domhtml#getCharset() to get best-guess charset of current
      encoding within the DOM object.
[mms] Fix inserting HEAD into HTML document with Horde_Domhtml#getHead() if it
      doesn't already exist in the document.

[jan] Fix generating form tags.


[jan] Update Basque translation (Ibon Igartua <>).
[jan] Use default Kolab folders for default share preferences.
[jan] Mark Kolab folders as default when changing default share preferences.

Horde Changes
[jan] Fix setting menu refresh rate to none (Bug #11867).
[jan] Fix JavaScript errors after updating the top menu.

Mail Changes
[mms] Re-add apply mail filters action in dynamic view.
[mms] Improved parsing of References header when replying to a message.
[mms] Fix verifying an enveloped signed & encrypted S/MIME message (Bug
[mms] Fix converting charset of signature/trailer in compose message if not
      sending in UTF-8 (Bug #11898).
[mms] Fix redirection to mailbox page after sending message in minimal view
      (Thomas Jarosch <>, Bug #11897).
[mms] Fix duplicate signature being added to compose messages in minimal view
      (Thomas Jarosch <>, Bug #11896).
[mms] Fix loss of HTML body if related conversion is turned off (Thomas Jarosch
      <>, Bug #11883).
[mms] Ensure that polled mailboxes in dynamic view continue to show unseen
      message count if its child status changes (Bug #11864).
[jan] Include address groups in auto-completion list if address book is below
      AJAX lookup threshold.
[jan] Update French translation (Laurent Foucher
[mms] Correctly remember form state when refreshing basic view compose page
      (Bug #11794).
[mms] Fix NOT criteria for custom header searches (Bug #11802).
[mms] Fix saving compose message to draft mailbox when session expires (Bug
[mms] Honor 'hide_when_unlimited' option for the quota driver (Thomas Jarosch
      <>, Bug #11782).
[mms] Fix toggling other options in dynamic compose screen.

Filters Changes
[jan] Fix changing permissions for shared rulesets.

Address Book Changes
[mjr] Avoid sending broken datetime values to ActiveSync.
[jan] Update French translation (Laurent Foucher

Calendar Changes
[jan] Fix setting default start time in new event dialog of basic view (Bug
[jan] Fix saving alarm methods to Kolab backend (Thomas Jarosch
      <>, Bug #11880).
[jan] Fix moving events between calendars (Bug #11830).
[jan] Fix fatal error on recurring events with custom timezone (Bug #11587).
[jan] Fix double owner name on shared calendars.
[jan] Defer navigation in dynamic view until environment has been initialized.
[jan] Fix receiving resource calendars in dynamic view (Bug #11776).

Tasks Changes
[mjr] Fix closing the quick task dialog when cancel is pressed (Bug #11848).
[mjr] Fix displaying and editing tasks from search results (Bug #11847).
[mjr] Fix incoming task sync with certain combinations of due date values.
[mjr] Fix quick task addition without session cookies enabled (Bug #11875,
      Thomas Jarosch <>).
[jan] Fix editing tasks from the merged list view in smartmobile mode (Bug

Notes Changes
[mjr] Fix importing notepads (Bug #11849).

Library Changes
[mjr] Fix regression caused by fixing some logging in the sync cache.
[mjr] Fix some possible character set related issues with HTML email.
[mjr] Fix sending boolean policy values.
[mjr] Fix DB migration for some RDBMS (Bug #11877).
[mjr] Fix authentication related errors.
[mjr] Fix regression caused by incorrectly named variable (,
      Bug #11919)
[mjr] Fix non empty PING requests with empty FOLDERS element.
[mjr] Fix exporting folder deletions (Bug #11918).
[mjr] Improvements to fetching and sending message body.
[mjr] Fix searching mailboxes on certain devices that send MIMESUPPORT flag,
      like iOS (Bug #11900).
[mjr] Fix updating the read flag on iOS.
[mjr] Set the importance flag on mail messages.
[mjr] Fix detecting mailbox changes on IMAP servers that support CONDSTORE but
      not per mailbox MODSEQ (Bug #11754).
[mjr] Check for invalid UTF-8 data before sending to client.
[mjr] Improve loop detection logic, preventing unnecessary state resets.
[mjr] Fix charset issues with certain broken emails which can cause iOS to
[mjr] Fix issue causing SYNC/PING loop in empty mail folders (Bug #11823).
[mjr] Fix importing message read flag (Bug #11741).
[mjr] Fix charset conversion of HTML messages when original body is plaintext
      (Bug #11745).
[mjr] Use integer column for message_uid field for IMAP messages (Bug #11742)

[jan] Fix updating users in LDAP driver (Bug #11791).

[mjr] Properly detect mobile Chrome on iOS (Bug #11868).

[jan] Fix sourceselect preferences UI that includes multiple sources.
[mms] Fix multiple AJAX submits to same hidden IFRAME on the same page (Bug
[mjr] Fix some MIME related issues when sending email via ActiveSync (Bug
[mjr] Fix detecting non-default ActiveSync policies.
[mjr] Improvements to ActiveSync authentication failure handling.
[mjr] Fix issue with Null session driver that could cause authentication to be
[mms] Fix restoring cached theme data (Bug #11906).
[mjr] Fix dismissing reminders without session cookies enabled (Thomas Jarosch
      <>, Bug #11875).
[mjr] Improve logging in ActiveSync drivers to better track down issues.
[jan] Fix returning complete groups with auto-completer.
[mjr] Fix various issues with charset encoding when sending ActiveSync email.
[jan] Link back to application from preference screen.
[mjr] Fix GAL searching via ActiveSync (, Bug #11808).
[mjr] Fix saving sent mail when using ActiveSync (, Bug
[jan] Reset NLS information when changing languages.
[jan] Fix downloading files with special characters in Gollem (Bug #11770).
[mms] Added Horde_Core_Factory_SpellChecker.
[mms] Don't log backtrace for E_STRICT errors.

[mms] Fix Openssl driver for PHP 5.3.0-5.3.2 (Bug #11797).

[jan] Fix more strftime() formatting of certain locale-specific format
      specifiers (Bug #11831).

[mms] Fix multipart APPENDs when IMAP server does not support CATENATE.
[mms] Fix harmless PHP warning issued when IMAP server supports SORT but not
[mms] Fix bodystructure parsing for IMAP servers that do not return full
      extension data (Bug #11907).
[mms] Re-add optimizations to IMAP token parser.
[mms] Additional workarounds for IMAP servers with broken BINARY
      implementations (Bug #11855).
      criteria to Horde_Imap_Client_Base#search().
[mms] Revert valid PHP changes that caused errors in broken old versions of
[mms] Fix client-side address sorting (Bug #11820).
[mms] Optimizations to IMAP token parser.
[mms] Fix setting language value when language is returned in an IMAP list.
[mms] Fix sending literal mailbox data to an IMAP server (Bug #11800).
[mms] Add Horde_Imap_Client_Data_Format_String#getStream().
[jan] Fix Dutch translation (Arjen de Korte <>).
[mms] Fix regression in POP3 driver for servers that don't support the
      RESP-CODES extension.
[mms] Another workaround for broken Cyrus APPEND behavior (Bug #11769).

[jan] Return date-only values as floating dates (Bug #11767).
[jan] Correctly format all-day events (Bug #11767).

[mms] Fix behavior of 'persist' option in SMTP transport driver.
[mms] Fix default_domain parameter to Horde_Mail_Rfc822 (Bug #11804).

[mjr] Fix issue where parsing multipart/alternative messages would turn the
      parts into attachments.

[jan] Update XSLT processor for OpenDocument files.

[jan] Fix swapped getFormatHeight() and getFormatWidth() methods (Bug #11762).

[jan] Remove creator permission mapping from Kolab backend (Bug #11713).

[mms] When removing a pref, reset its value in the cached scope to the default
      (Bug #11895).
[mms] Delete preference from storage backend when calling Horde_Prefs#remove().
[mms] Add throw parameter to Horde_Prefs#store().
[jan] Fix creating storage folder for Kolab/IMAP backends (Bug #11751).

[jan] Fix generating cache key for generated URLs (, Bug

[mms] Honor the 'path' configuration parameter in Aspell driver (Bug #11778).
[mms] Minimum length configuration was not being honored in the Aspell driver.
[mms] Deprecated Horde_SpellChecker::factory().
[mms] Add Horde_SpellChecker_Exception.
[mms] Convert test suite to PHPUnit.

[mms] Fix validating certain strings of UTF-8 data (Bug #11930).
[mms] Convert Horde_String#validUtf8() from a preg-regex to a string iterator
      to eliminate PCRE issues relating to stack sizes (Bug #11899).

[jan] Don't rely on PEAR to determine Windows OS in Samba backend.
[jan] Implement vfsroot parameter in Samba backend.


[jan] Re-packaged some 2.0.0 releases.
[mms] Use new Horde_Test layout.

Horde Changes
[jan] Fix adding user in admin actions (Bug #11690).
[mms] Fix removing user in admin actions (Bug #11690).
[jan] Allow to set custom search field label.

Mail Changes
[mms] Always add MDNSent flag when saving a draft/sent message.
[mms] Fix preview message text in basic view (Bug #11724).
[mms] Don't delete saved draft on session close.
[mms] Improved generation and parsing of mbox files.
[mms] Fix adding mailboxes with mull delimiters to the IMAP folder tree (Bug
[mms] Fix editing/sending templates in dynamic view.
[mms] Allow iCalendar events to be added to the calendar even if they are
      missing the required UID parameter (Bug #11669).
[mms] Fix displaying flag changes for messages in search mailboxes in dynamic
      view (Bug #11622).
[mms] Save sent-mail when composing in the smartmobile view (Bug #11670).
[mms] Don't try to save sent-mail to a non-existent sent-mail mailbox.
[mms] Fix displaying encrypted message in dynamic preview when correct
      passphrase is entered (Bug #11661).
[mms] Purge IMAP cache data when upgrading from IMP 5.

Address Book Changes
[jan] Add free-text country attributes and use them in default Kolab backend
      (Request #11692).
[gwr] Fix handling empty dates in the Kolab driver (Bug #11691).
[jan] Use encoded UIDs as IDs in Kolab driver.
[jan] Fix searching shares for duplicates.
[mjr] Fix calling decode_attribute hook when exporting to ActiveSync
      (, Bug #11678).
[jan] Update Slovak translation (Jozef Sudolský <>).

Calendar Changes
[jan] Try to translate holiday drivers (Request #11755).
[jan] Fix timezone when reading events from Kolab (Bug #11695).
[jan] Use encoded UIDs as IDs in Kolab driver.
[jan] Fix saving of events if no calendar has been loaded yet.
[mjr] Fix importing events from ActiveSync with empty descriptions in EAS
      version 2.5

Tasks Changes
[gwr] Ignore empty dates (Bug #11736).
[jan] Use encoded UIDs as IDs in Kolab driver.
[mjr] Fix support for due/start dates for certain ActiveSync clients (Bug
[jan] Fix importing tasks from iCalendar (Bug #11681).
[jan] Fix listing of recurring tasks via timeobjects API.

Notes Changes
[jan] Use modification and creation dates from backend if available (Request
[jan] Use encoded UIDs as IDs in Kolab driver.

Tagging Changes
[jan] Add missing optional dependency on Horde_ElasticSearch.
[jan] Catch exceptions from Horde_ElasticSearch.

Library Changes
[jan] Use binary column for serialized sync state (Bug #11743).
[jan] Fix boolean table columns (Bug #11742).
[mms] Use new Horde_Test layout.
[jan] Add Dutch translation (Arjen de Korte <>).
[mjr] Answer Microsoft Outlook Autodiscover requests (Request # 11639).
[mjr] Fix fatal error due to abstract serialize methods.
[mjr] Fix issue causing a loop during FETCH requests caused by the
      non-incrementing syncKey.
[mjr] Reduce number of IMAP server calls required when syncronizing email data.
[mjr] Fix issue causing iOS Mail to crash when receiving truncated body data.
[mjr] Improvements to detecting expunged messages.
[mjr] Fix detecting mailbox changes on servers that don't return UIDNEXT data.
[mjr] Fix issue in detecting certain text attachments.

[mms] Compress cached data with LZF, if the PECL module is available.

[mms] Add tablet detection/reporting.

[jan] Fix class name when using the Kolab group backend (Bug #11737).
[mjr] Fix synchronizing device message flag changes over ActiveSync (Bug
[mms] Fix returning session start time if session has been closed (read-only)
      in the current page access (Bug #11685).

[mms] Mask harmless warning messages when using openssl_encrypt() on
      out-of-date PHP versions.
[mms] Initial release of package.

[mms] Complete workaround for broken BINARY extension on Cyrus servers.
[mms] Workaround broken BINARY extension on Cyrus servers.
[mms] Fix returning UIDNEXT when using UIDNEXT_FORCE and the server does not
      automatically return this information.
[mms] Significant optimization to append() command.
[mms] Add abstracted syncing methods to Horde_Imap_Client_Base.
[mms] Fix parsing PARSE response code associated with an OK response.
[mms] Workaround broken BINARY implementation on UW-IMAP servers.
[mms] If we have binary data, and server doesn't support BINARY extension, send
      data anyway since we don't have any other option.
[mms] Correctly increment UIDNEXT when an EXISTS response is issued after the
      mailbox is opened (Bug #11679).
[mms] Fix regression that may have caused message flags to have been improperly
      cached if debugging was disabled (Bug #11665).

[jan] Deprecate timezone parameters, always write UTC datetime values (Bug

[gwr] Add a time based snychronization strategy (Bug #11590).
[gwr] Correct cache update after move (Bug #11305).
[gwr] Remove deleted objects from the cache (Bug #11674).

[mms] Ensure bare address is output to SMTP MAIL command.

[jan] Fix package.xml.
[mms] Use Horde_Crypt_Blowfish instead of Crypt_Blowfish.

[mms] Add Horde_Stream_Existing class.

[mms] Better generation of random IDs.

[mms] Refactor Horde_Test_AllTests.
[mms] Add Horde_Test_Bootstrap.

[jan] Improve HTML-to-Text filter.
[mms] Jsmin fixes merged from upstream C source.

[jan] Fix deleting folders from absolute path in FTP backend (Bug #11761).
[jan] Fix old folder not being removed when moving a folder (Bug #11703).
[jan] Fix checking source and destination paths being the same (Bug #11702).


[jan] Update Dutch translation (Arjen de Korte <>).
[jan] Update Slovak translation (Jozef Sudolský <>).
[jan] Update Japanese translation (Hiromi Kimura <>).

Horde Changes
[jan] Fix form for editing and removing of users.
[mjr] Workaround for broken iOS ActiveSync AUTODISCOVER requests (Bug #11624).
[mms] Fix topbar javascript on IE8 (Bug #11614).
[jan] Fix LDAP example for authusername hook.

Mail Changes
[mms] Fix shift-clicking in dynamic mailbox view when navigating to other
      mailboxes (Bug #11520).
[mms] Disallow pasting non-text elements into the HTML editor (Bug #11650).
[mms] If persistent IMAP caching is disabled, use an in-memory cache for the
      current page load.
[mms] Fix importing personal S/MIME certificate.
[mms] Correctly show ACL entry for current user even if ACL response for
      mailbox is empty.
[mms] Correctly remove unseen information from folder tree in dynamic mailbox
      view when mailbox is marked as not polled for new mail.
[mms] Fix expanding folder list in dynamic view when opening a mailbox and
      folder expansion is not saved in the prefs (Bug #11609).
[mms] Fix displaying HTML signature preference on identities preference page.
[mms] Fix dynamic view loading in IE8 (Bug #11614).
[mms] Optimize permission checking when creating a mailbox if no limit exists
      for a user.
[mms] Fix displaying column headers in dynamic mailbox view when accessing a
      POP3 server.
[mms] Fix display of innocent button in dynamic mailbox view (Bug #11604).
[mms] Fix displaying move to spam mailbox option in the preferences (Bug
[mms] Fixes to PGP Private key generation (Bug #11597).
[mms] Don't block remote message styling if sender is in whitelist.
[mms] Fix spellcheck display in dynamic view if HTML composition mode is the
      default (Bug #11592).

Filters Changes
[mms] Fix PHP error notification thrown if backends 'params' parameter was
      empty (Bug #11615).

Calendar Changes
[jan] Fix migration of exceptionoriginaldate field (Bug #11654).
[jan] Fix generating calendar names when exporting non-internal calendars to
[jan] Fix authentication to remote calendars (Bug #11643).
[jan] Fix incorrect nesting of VTIMEZONE components when exporting to iCalendar
      (Bug #11636).
[jan] Fix fatal error when moving non-recurring events with resources (Bug

Library Changes
[mjr] Increase size of cache_data field.
[mjr] Add more complete error and debug output when saving syncCache.
[mjr] Attempt to detect infinite sync loops caused by server side errors.
[mjr] Fix moving/deleting messages on some devices.

[jan] Fix translations (Bug #11606).
[mjr] Fix detected email changes on certain IMAP servers.
[mjr] Fix determining special mailboxes and generating folder hierarchy on some
      ActiveSync clients (Bug #11626).
[mjr] Limit the length of ActiveSync folder serverids to 64 per ActiveSync
[mjr] Fix displaying maps in Chrome while using SSL connections (Bug #11618).

[mms] Add Horde_Crypt_Pgp#getPublicKeyFromPrivateKey().

[jan] Fix strftime() formatting of certain locale-specific format specifiers.

[mms] Correctly workaround servers that incorrectly implement the LIST-EXTENDED
[mms] Fix determining subscribed mailbox list when not using LIST-EXTENDED (Bug
[mms] Work around servers that incorrectly implement the LIST-EXTENDED command.
[mms] Allow Horde_Imap_Client_Base#vanished() to work with non-QRESYNC servers
      if the 'ids' option is given.
[mms] Always map UIDs to sequence numbers if resolving an all UIDs search.
[mms] Ignore empty ID search queries.
[mms] Fix parsing empty ACL responses.
[mms] Massive performance increase for cached FETCH queries.
[mms] Split debugging code from Base driver into separate object.
[mms] Fix double encoding of non-ASCII elements in listMailboxes() (Bug
[mms] Fix regression for non-cached Socket objects (Bug #11605).
[mms] Improved handling of server write errors in the Socket driver.
[mms] Add support for IMAP MOVE command.
[mms] Correctly handle FETCH results intermingled with EXPUNGE/VANISHED
      requests within a single request.
[mms] Correctly handle EXISTS/EXPUNGE/VANISHED untagged responses which may
      appear at any time.
[mms] Fix handling message sequence number actions returned from server when

[mjr] Workaround for broken iOS ActiveSync AUTODISCOVER requests (Bug #11624).

[mjr] Remove support for Google's dead weather API.

[mms] Only specify maxmemory argument when creating temp stream if it was
[mms] Allow Horde_Stream object to be cloned.
[mms] Allow Horde_Stream object to be serialized (Bug #11598).
[mms] Add Horde_Stream#__toString().

[jan] Support uuid extension from OSSP (, Request

[jan] Fix notice when parsing Etc/UTC rules.


[jan] Update Polish translation (Krzysztof Kozera <>).
[jan] Update Dutch translation (Arjen de Korte <>).

Mail Changes
[mms] Fix regression in adding an attachment in minimal view.
[mms] Fix regression causing large amounts of whitespace padding to be added to
      compose text in basic view.
[mms] Fix regression in sending messages in basic/minimal mode if no attachment
      is added (Bug #11582).
[jan] Fix key navigation in message view of basic mode.

Library Changes
[mms] Confirmation link for new identity requires the full URL as it is
      intended to be accessed outside of the Horde application (Bug #11593).
[mms] Need to unescape JSON data returned in a text/html response.

[mms] Fix regression in Horde_Imap_Client_Base#listMailboxes() return when both
      the 'flat' and 'sort' options are active.
      return options to Horde_Imap_Client_Base#status().
[mms] Fix invalid class name usage (Bug #11586).
[mms] Remove STATUS_LASTMODSEQ and STATUS_LASTMODSEQUIDS return options from


[jan] Remove optional dependency on Horde_DataTree.
[jan] Remove DataTree support.

Horde Changes
[jan] Port VAT identification block to use SOAP extension.
[jan] Fix dynamic updating of portal blocks.
[mms] Allow view-specific help files to inherit from base application help
[mms] Allow application basic/dynamic views to have different help source
[mms] Show non-javascript enhanced login screen for non-smartmobile mobile
      browsers (Bug #11215).
[mms] Add version parameter to CSS/javascript file URLs to help with cache
      busting when these files change between releases.
[mms] Add configuration option for maximum allowed session times.
[jan] Fix cancelling problem report.
[jan] Fix audio notification path printed in page output.
[jan] Fix logging in without JavaScript (Bug #11328).
[mms] Fix sidebar element wrapping.
[mms] Better handling of backend authentication errors when returning AJAX data
      (Bug #11297).
[mjr] Fix autocompletion of tags in ajax views.
[jan] Fix dependency on Horde_Service_Weather.
[mjr] Request SSL connection from map providers if using SSL (Bug #11193).
[jan] Allow to configure encryption in global IMAP configuration (Request
[jan] Update icon set.
[rla] Retrieve more detailed message from Horde_Auth when a user is temporarily
      or permanently locked out (Request #11254).
[jan] Implement new user interface.
[mms] Add 'suppress' option to prefs.php group entries.
[mms] Add 'on_change', 'on_init', 'requires', 'requires_nolock', and
      'suppress' options to prefs.php preference entries.
[mms] Remove support for IE 6.
[mms] Token protect all AJAX actions.
[jan] Allow to use IMAP storage for shares and groupware data without a
      complete Kolab server.
[mms] Implement growler-like notifications for smartmobile view.
[mms] Modified pushapp hook behavior.
[mms] Removed pushapp_post hook.
[mms] AJAX core features now contained within Horde_Core.
[mms] E-mail sending charset now defaults to UTF-8.
[mms] Add post-install script for the Horde application
[mms] Portal blocks can now load just the CSS necessary to display an
      application's blocks.
[jan] Show notifications during logging into Smartphone mode.

Mail Changes
[mms] Attach as many files as possible instead of aborting on first failed
      attachment add.
[mms] Fix determining first/last unseen message in a mailbox (use message date
      instead of arrival date).
[jan] Don't show application menus in iTip MIME viewer popups.
[mms] Hide subfolder creation option in dynamic view if IMAP server indicates
      that child mailboxes cannot be created.
[mms] Correctly send deleted flag information to browser cache when using
      dynamic/smartmobile view (Bug #11362).
[mms] Auto-update folders list in smartmobile view if special mailbox is
      auto-created (Request #11482).
[mms] Load folders list on-demand in smartmobile view.
[mms] Fix thread view when mailbox is not thread sorted (Bug #11320).
[mms] Display message range when dragging slider on dynamic mailbox page.
[mms] Add predefined templates to ACL management screen (Request #10648).
[mms] Capture key shortcuts on dynamic mailbox page even if focus is on IFRAME
      HTML message data (Bug #11428).
[mms] All IMP templates now use Horde_View.
[mms] Add swipe action buttons to the smartmobile mailbox page.
[mms] Optimize loading of message bodies when using dynamic view.
[mms] Load new mailbox when renaming current mailbox in dynamic view (Request
[mms] Add simple address autocompleter to smartmobile compose page.
[mms] Add refresh button to smartmobile folder page.
[jan] Fix popdown positioning in mailbox table header (Bug #11384).
[mms] Allow certain iCalendar events to be configured to automatically update
      the local user's calendar (Request #11376).
[mms] Remember message selections when changing mailboxes in dynamic view.
[mms] Add ability to edit list of safe addresses used with the
      image_replacement preference.
[mms] Add attachment download links to smartmobile view (Request #11379).
[mms] Indicate deleted messages with strikethrough in smartmobile mailbox
      listing (Request #11362).
[mms] Show polled children in smartmobile folder list when parent mailbox is
      not polled (Bug #11238).
[mms] More complete handling of linked data in subject header across views
      (Bug #11372).
[mms] Add Top link to smartmobile mailbox page.
[mms] Fixes to the iTip Request handler (Bug #11264).
[mms] Fix searching in smartmobile view (Bug #11365).
[mms] Tweak smartmobile mailbox page to use mobile-style list clicking
      (Request #11364).
[mms] Fix regression in updating dynamic folder list when deleting parent
      mailboxes that contain children (Bug #11296).
[mms] Fix regression preventing compose messages from being sent in the
      smartmobile view (Bug #11342).
[jan] Allow to reset flag colors and to specify as HTML colors.
[mjr] The mailboxList API call now returns delimiter and attribute information.
[jan] Fix polling for new mail from other applications.
[jan] Highlight quota level in dynamic mode.
[mms] Add keyboard shortcuts to dynamic compose page (Michael Wing
[mms] Fix sidebar element wrapping.
[mms] Fix regression preventing contacts popup window from working (Bug
[mms] Fix regression in select all checkbox on traditional mailbox page (Bug
[mms] Fix regression in altering sort direction in dynamic mailbox view (Bug
[mms] Hide empty MIME parts when displaying inline.
[mms] Fix expanding all mailboxes in dynamic view (Bug #11289).
[mms] Fix handling of identity tie-to addresses when searching for matching
[mms] Fix recursive mailbox delete in dynamic view (Bug #11288).
[mms] Fix regression in sorting of special mailboxes (Bug #11241).
[mms] Fix mailbox sorting in traditional view (Bug #11278).
[mms] Fix regression in IMAP cache query script preventing stats in all mailbox
      reports (Bug #11265).
[mms] Fix regression in creating submailboxes in dynamic view.
[jan] Fix displaying messages in a popup (Bug #11251).
[jan] Fix automatic selection of the default identity if other identities
      contain the same address(es).
[jan] Fix editing mailbox ACLs (Bug #11247).
[jan] Fix using admin users and passwords for quota or mailbox management.
[mms] Fix browser-based AJAX autocompletion (Bug #11233).
[mms] Only show Inbox, special mailboxes, and polled mailboxes by default in
      smartmobile view.
[mms] Add 'reply_strip_sig' preference (Request #11056).
[mms] Move attachment strip icon to MIME part tree display.
[mms] Convert dynamic view to Horde_View.
[mms] Convert minimal view to Horde_View.
[mms] Honor initial_page preference in smartmobile view (Request #11165).
[mms] Lock mailbox sort to descending date when using minimal view.
[mms] Pre-fetch unseen messages in polled mailboxes in dynamic view.
[mms] Allow Edit As New to be used as the default forward action (Request
[mms] Improved handling of messages with multiple From addresses in mailbox
[mms] Replying to a multipart/related message in HTML mode now correctly
      attaches data from the original message.
[mms] Allow deletion of all subfolders at once in dynamic view.
[mms] Provide details of when search results were last refreshed.
[mms] Dynamically update unseen message counts in folder list in smartmobile
[mms] Add mailbox caching to the smartmobile view.
[mms] Cache last seen message in smartmobile view.
[mms] Viewing a mailbox in smartmobile mode no longer resets the sortpref
[mms] Allow all SMTP configuration parameters to be overridden in the backends
      configuration file (Request #11051).
[mms] Block images in HTML messages that appear to be sent from you by default,
      to prevent spammers form easily circumventing the block.
[mms] Add 'Edit As New' to Forward button dropdown menu in dynamic view.
[mms] Allow identifying addresses to always display images for without
      requiring to add them to the addressbook.
[mms] Disable text selection in dynamic view for everything but
      compose/message bodies.
[mms] Rewritten vCal/iCal attachment viewer/handler.
[mms] S/MIME certificate import from message data no longer requires popup
[mms] PGP key import from message attachment no longer requires popup window.
[mms] Improve PGP key import screen.
[mms] Truncate large address lists (50+) by default in dynamic message views.
[mms] Moved AJAX core features to Horde_Core package.
[jan] Add reporting as spam/innocent to smartphone view.
[mms] Workaround overquota error when deleting messages and using Trash
[jan] Add basic search to smartphone view.
[jan] Add resume and "edit as new" to smartphone view.
[mms] Hide deleted now works with threaded mailboxes.
[mms] Threaded sorts now work in all search mailboxes (Request #9700).
[mms] Improved threading performance.
[mms] Improved date searching to search by range.
[mms] Added 'mbox_sort' hook.
[mms] Make mailbox columns the same order in traditional view as in dynamic
[jan] Add mailbox paging to smartphone view.
[jan] Add copy and move to smartphone view.
[jan] Add deleting messages to smartphone view.
[jan] Add reply, forward and redirect to smartphone view.
[jan] Add compose functionality to smartphone view.
[mms] Accurately track changes to virtual folders in dynamic folder tree (Bug
[mms] Traditional mode now requires javascript on the browser.
[mms] Added 'mbox_special' hook (, Request #10801).
[mms] Converted stationery to the Templates special mailbox (Request #9296).
[mms] Hide inactive buttons in dynamic view instead of dimming them.
[mms] Added config option to limit size of messages with linked attachments
      (Request #6247).
[mms] Allow expiration date to be provided when creating personal PGP key
      (Request #5754).
[mms] Always use Horde default for sending charset unless reply_charset
      preference is active.
[mms] Add ability to view all message parts in dynamic view (Request #9827).
[mms] Remove signature from compose UI; signature is now added automatically
      when sending (Request #10487).
[mms] Fix accessing mailboxes containing ampersands (Bug #10093).
[mms] Size of sidebar now saved in dynamic view.
[mms] Browser-specific UI elements in dynamic view now saved in browser storage
      (Request #10723).

Filters Changes
[mms] Add 'euser' option to 'transport_auth' hook allowing the effective user
      to be provided for the timsieved transport driver.
[mms] Add 'transport_auth' hook to handle defining authentication parameters
      for transport backends.
[mms] Remove session caching of rules.
[mms] Initial implementation of smartmobile view.
[mms] Disable blacklist, vacation, and whitelist API methods if the preference
      is locked.
[jan] Update icon set.
[mms] Fix javascript actions on the vacation page.
[mms] When adding to blacklist/whitelist, remove added addresses from the
      other list.
[jan] Allow to use placeholder variables in vacation messages (Request #10316).
[mjr] Add ability to retrieve vacation message details from the API.
[jan] Validate start and end dates of vacation rules (Request #10879).

Address Book Changes
[jan] Allow searching for 'emails' attributes (Bug #11185).
[jan] Fix LIKE matching of attributes in Kolab driver.
[mms] Convert turba minisearch block to the Horde AJAX framework.
[jan] Support 'emails' attribute in smartphone view (Bug #11544).
[jan] Attach share owner to all address book titles (Bug #11528).
[jan] Fix exporting from browse view (Bug #11526).
[jan] Return to the same page after running actions from the browse view.
[jan] Support importing contacts via API if using 'emails' attributes (Bug
[jan] Support 'emails' attribute with ActiveSync.
[jan] Fix marking contacts as deleted in the history if deleting shared address
      books (Bug #11480).
[jan] Set gender field values literally to 'male' or 'female'.
[jan] Drop preference which address books to display.
[gwr] Mark the initial default share as such with the Kolab backend.
[gwr] Always mark the initial share as default addressbook.
[mms] Initial implementation of smartmobile view.
[jan] Use Horde 5 action bar.
[jan] Add configuration example for Kolab/IMAP address books.
[jan] Update icon set.
[jan] Fix searching multiple names via the API.
[jan] Fix searching and listing clients via the API.
[mms] Import API call now throws an ObjectExists exception when a duplicate is
[jan] Add parameters to specify field size of phone and email fields.

Calendar Changes
[jan] Show completed future tasks in complete category, not in future category
      (Bug #11562).
[jan] Fix exporting of recurring events with exceptions from Kolab backends.
[jan] Fix export links for calendars (Bug #11576).
[jan] Fix broken Apple iCal behavior with exception dates (Evert Pot
[jan] Use more compatible message format for iTip notifications (Bug #9854).
[jan] Fix free/busy retrieval on Kolab.
[jan] Synchronize tags with Kolab categories.
[mjr] Improvements to resource calendar handling.
[gwr] Mark the initial default share as such with the Kolab backend.
[gwr] Always mark the initial share as default calendar.
[jan] Fix attendees button in traditional view.
[jan] Fix sending alarm emails.
[jan] Add quick task adding to dynamic view.
[rla] Fix sender of appointment notification (Bug #11198)
[mjr] Fix tagging in traditional interface.
[rla] Make system shares browseable in WebDAV (Request #10998).
[jan] Make calendar lists collapsible (Request #10865).
[jan] Delay calendar list loading to speed up initial display.
[mjr] Implement resource scheduling in dynamic view (Request #9774).
[mjr] Fix issue that could cause incorrect freebusy data to be displayed in
      certain circumstances.
[mjr] Prompt to send updates when modifying an event with attendees (Request
[mjr] Add heatmap to year view (Request #10658).
[mjr] Implement proper editing and deleting of recurrence series and exceptions
      in ajax view (Request #9926).
[jan] Remove print buttons.
[jan] Add work week view to dynamic interface (, Request
[jan] Support importing of iCalendar events with non-local timezones (Request
[jan] Include timezone information when exporting events to iCalendar (Request
[jan] Allow to set individual timezones for each event (Request #10727).

Tasks Changes
[jan] Fix export links for tasklists (Bug #11576).
[mjr] Fix various issues with importing CSV files.
[mjr] Format datetime fields when exporting a task as a hash (Bug #11537).
[jan] Fix retrieving tasks from Kolab backend by UID (Bug #11532).
[jan] Fix toggling tasklists (Bug #11511).
[jan] Fix listing tasks from Kolab backends.
[jan] Fix sending alarm e-mail messages.
[jan] Synchronize tags with Kolab categories.
[mjr] Fix deleting tasks from the task form.
[mjr] Implement Purge Completed Tasks LoginTask (Request #2520).
[gwr] Mark the initial default share as such with the Kolab backend.
[gwr] Always mark the initial share as default tasklist.
[jan] Move complete task list management into the sidebar.
[jan] Allow to edit task list color in traditional view.
[mjr] Tweak display of smartlist links in list view.
[mjr] Fix fatal recursion error when searching with smartlists were present.
[mjr] Add support for smart tasklists.
[mjr] Migrate categories to tags.
[jan] Fix fatal error if the task form doesn't validate.
[jan] Add recurring tasks (Request #2150).

Notes Changes
[jan] Fix client-side sorting by date.
[jan] Fix exporting (Bug #11507).
[gwr] Always mark the initial share as default notepad.
[gwr] Mark the initial default share as such with the Kolab backend.
[gwr] Fixed deletion of shares with the Kolab driver.
[jan] Fix display of note title (Bug #11275).

Library Changes
[mjr] Fix issue causing FOLDERSYNC to fail on postgres.
[mjr] Fix erroneous truncation of CC addresses (Bug #11446).
[mjr] SyncKey is no longer incremented when there are no imported or exported
      changes after the initial SYNC.
[mjr] No longer send unnecessary SYNC_COMMANDS tag.
[mjr] Build a proper nested folder hierarchy when appropriate.
[mjr] Properly send 401 responses in certain circumstances.
[mjr] Improvements to autoconfigure support.
[mjr] Fix some issues that were causing infinite loops on iOS
[jan] Fix finding locale directory if installed with PEAR.
[mjr] Fix issue where FILTERTYPE parameter was not being honored on some
[mjr] Add support for ActiveSync native meeting requests and responses.
[mjr] Security policy support now allows for per user configuration.
[mjr] Add basic Autoconfigure support.
[mjr] Add EAS version 12.1 support.
[mjr] Add EAS version 12.0 support.
[mjr] Add email support.

[mjr] Fix a bug that broke Desktop Notifications.
[jan] Fix Desktop notifications (Bug #10810).

[jan] Fix setting IMAP ACLs in IMAP and Cyrsql drivers.
[mms] Fix user management in Passwd driver.
[mms] Fix setting soft expiration in SQL driver.
[rla] Use constant for permanent lock and provide more verbose feedback
      (Request #11254).
[mms] Removed charset parameter for Imap and Cyrsql drivers.

[mms] Fix error message displaying the maximimum allowed file upload size.
[mms] Improved detection of mobile browsers (, Request

[mms] Correctly invalidate cache when write error occurs while using the stack
[mms] Add Horde_Cache#testReadWrite().

[jan] Include file and line when calling Horde_Cli#fatal() with an exception.
[jan] Use late static binding in init() for easier extension of Horde_Cli.

[mms] Fix parsing UTF-16 data in TNEF driver (Bug #11390)

[jan] Fix superglobals access (Bug #11277).

[jan] Fix dynamic updating of portal blocks.
[mms] Allow AJAX handler methods to be marked externally accessible (i.e. no
      session token checking) (Bug #11538).
[mjr] Fix copying ActiveSync email to sent folder in certain cases (Bug
[jan] Catch exceptions from Horde_Crypt (Bug #11530).
[jan] Support non-padding operators in JavaScript date formatting (Bug #10435).
[mms] Add generic CSS class insertion to Help system.
[mms] Fix handling active error reporting codes in Horde_ErrorHandler.
[mms] Send spellcheck parameters using AJAX object, not in URL (Bug #11467).
[mms] Add View helpers to provide access to accesskey methods, Horde::img(),
      Horde::label(), and Horde_Help::link().
[mjr] Fix adding Bcc recipients when sending mail from ActiveSync.
[mjr] Fix issue saving sent mail from ActiveSync (Bug #11410).
[mms] Added Horde_Core_Smartmobile_Url class.
[jan] Make Horde::widget() take a single hash parameter.
[mms] Allow application API interface to dynamically alter properties (Bug
[mms] Force IE <= 7 to minimal view (Bug #11327).
[mms] Add loading triggers to HordeCore JS framework.
[mjr] Send dummy INBOX, Sent, and Trash folders to client when email sync
      support is not enabled.
[mjr] Fix broken ActiveSync behaviour when Email sync is not enabled.
[mjr] Only subscribed mailboxes are returned by the ActiveSync imap factory.
[jan] Set HTML 5 "multiple" attribute on email fields if necessary (Bug
[mms] Add a no authentication AJAX handler (Bug #11297).
[mms] Fix HordeCore javascript download action (Bug #11294).
[mms] Fix upgrade logintasks for pre-release major releases.
[mjr] Add Horde_Core_Tagger.
[mjr] Fix autocompletion of tags in ajax views.
[jan] Fix dependency on Horde_Routes.
[jan] Fix dependency on Horde_ElasticSearch.
[jan] Fix default values for LDAP and SQL configuration.
[jan] Fix hiding empty top menu entries in multi-level hierarchies.
[jan] Allow to override configuration details of meta-configuration tags like
      <configsql> in custom configuration XML files.
[jan] Allow to configure encryption in global IMAP configuration (Request
[mms] Upgrade jQuery Mobile to v1.1.1 RC1.
[mms] Fix browser-based AJAX autocompletion (Bug #11233).
[jan] Update classes for the new user interface.
[mms] Move output compression code into Horde_PageOutput.
[mms] Removed Horde::ajaxAvailable().
[mms] Move Horde::getServiceLink() to Horde_Registry#getServiceLink().
[jan] Allow to use IMAP storage for shares and groupware data without a
      complete Kolab server.
[mms] Moved smartmobile core javascript from the Horde application.
[mms] Added Horde_PageOutput.
[mms] Added Horde_Core_Ajax_Imple_ContactAutoCompleter.
[mjr] Use local member storage when no session is available (Bug #9733).
[mms] Added AJAX core features.
[mms] Added view determination to Horde_Registry.
[mms] Performance improvements when initializing Alarm system.
[mms] Performance improvements to Alarm checking.
[mms] Performance improvements when initializing Notification system.
[mjr] Allow restricting pretty autocompleter to available choices.
[mms] Add language detection to AJAX spellchecker if no language is selected by
      the user (Request #7137).
[mms] Add Horde_Core_Block_Layout_View::getStylesheets().

[jan] Throw exception if parsing of S/MIME certificates fails (Bug #11530).
[mms] Improvements in obtaining GPG keys from a keyserver (Bug #11380)

[mms] Implement new 2.0 API. See UPGRADING for full details of changes.

[jan] Support non-padding operators in strftime() formatting (Bug #10435).
[mjr] Fix adding completed recurrence exceptions.
[jan] Include time when parsing recurrence end date from vCalendar/iCalendar.
[jan] Rename fromHash()/toHash() to fromKolab()/toKolab().

[mms] Fix resetting postgresql error reporting.
[mms] Fix Horde_Db_Adapter_Base_Table#offsetExists().
[mms] Fix addLock() command.
[jan] Allow for nested transactions.

[mms] Update CKEditor to v2.6.5.

[cjh] First release.

[mms] Added log level setting to Horde_Exception.
[mms] Added $logged property to Horde_Exception class.

[mjr] Fixed autoloading of some field actions.
[jan] Allow to pass button attribute hashes to setButtons().
[jan] Allow to set CSS class for 'link' form fields.
[jan] Add Horde_Form_Type_email#allowMultiple().

[mms] Remove Contactlists driver.

[jan] Add verifyPeer request option to disable verification of certification
      peers during SSL request.
[jan] Fix error handling in Fopen driver if a custom error handler is

[jan] Fix parsing of VTIMEZONE components that use RDATE properties.

[mms] Fix CONDSTORE synchronization of deleted messages since last mailbox
[mms] Need to immediately synchronize mailbox on mailbox load with CONDSTORE or
      else we may lose flag change information.
[mms] Fixes/improvements to CONDSTORE capability sniffing and enabling.
[mms] Remove statuscache configuration option.
[mms] Optimize generation of POP3 sequence string.
[mms] Abstract forced determination of UIDNEXT value from cache method to a
      status() flag.
[mms] Remove Horde_Imap_Client_Base#fetchFromSectionString().
[mms] Horde_Imap_Client_Base#listMailboxes() now supports 'status' return even
      if server does not server LIST-STATUS.
[mms] Remove Horde_Imap_Client_Base#fetchCacheIgnore().
[mms] Move IMAP/POP URL parsing to new Horde_Imap_Client_Url object.
[mms] Move base subject parsing to new Horde_Imap_Client_Data_BaseSubject
[mms] Move IMAP sequence string generation/parsing to the Horde_Imap_Client_Ids
[mms] Remove Horde_Imap_Client_Utils#escape().
[mms] Remove Horde_Imap_Client_Utils#removeBareNewlines().
[mms] Move IMAP mailboxes sorting into new Horde_Imap_Client_Mailbox_List
[mms] Correctly handle determination of highestmodseq in currently selected
      mailbox if CONDSTORE, but not QRESYNC, is active.
[mms] Optimize APPEND so that we don't send large amounts of data to server if
      the server is not going to accept the data.
[mms] Don't expunge mailbox when it is labeled as read-only.
[mms] Fix regression in FETCH/COPY with sequence numbers (Bug #11521).
[mms] Fix quoting empty astrings (Bug #11505).
[jan] Fix Horde_Stream dependency.
[jan] Add deleteACL().
[jan] Make setACL() work more similar to the SETACL IMAP command.
[mms] Fix determination of HIGHESTMODSEQ value from FETCH data.
[mms] Store command that caused NO/BAD error in Exception, if it can be
[mms] Limit FETCH ENVELOPE data sizes.
[mms] Improved parsing of incoming IMAP server stream.
[mms] Improved parsing of IMAP threading data.
[mms] Improved IMAP tokenizer of server response data using PHP temporary
[mms] Add standalone IMAP command tokenizer.
[mms] Rewritten handling for processing outgoing IMAP commands.
[mms] Improved debugging efficiency.
[mms] Added data objects for the various IMAP data types.
[mms] Added the Horde_Imap_Client_Data_Format objects.
[mms] Correctly handle any resource key supported by the QUOTA extension.
[mms] Allow auto-escaping of mailbox names in listMailboxes().
[mms] Add list_escape property to Horde_Imap_Client_Mailbox.
[mms] Remove public cache variable from IMAP driver.
[mms] Internally workaround IMAP servers that don't support text searches other
      than US-ASCII.
[mms] Horde_Imap_Client_DateTime is now a wrapper around the native PHP
      DateTime object (Request #11074).
[mms] Implement new 2.0 API. See UPGRADING for full details of changes.

[jan] Fix finding locale directory if installed with PEAR.

[jan] Write custom Horde attributes to task objects.
[jan] Categories attributes are returned and passed as an array now.

[jan] Reduce logging level of debug messages.

[jan] Reduce logging level of debug messages.

[gwr] Corrected fix for modifying Kolab objects.
[gwr] Allow setting the default folder.
[gwr] Reactivate folder list caching.
[gwr] Avoid overwriting unknown XML elements (Bug #11309)
[jan] Fix renaming of shares (Bug #11281).
[jan] Fix moving objects to a different folder (Bug #11280).
[jan] Fix listing and loading data from IMAP server (Bug #11273).

[rla] Add handling of permanent locks.

[mms] Add Horde_Mail_Rfc822_Address#matchDomain().
[mms] Add Horde_Mail_Rfc822_Address#matchInsensitive().
[mms] Fix parsing Return-Path header when using sendmail driver (Bug #11361).
[mms] Implement new 2.0 API. See UPGRADING for full details of changes.

[mjr] Add method for returning the message's base MIME part.
[mms] Update MIME mapping file.
[mms] Catch/fix malformed undisclosed-recipients address headers.
[mjr] Fix issue that could cause outputting of duplicate data from a parsed
      mulitpart mime message.
[mms] Added Horde_Mime_Related class.
[mms] Implement new 2.0 API. See UPGRADING for full details of changes.

[mms] Don't log permission not exists errors.
[jan] Use new Horde_Tree API.

[jan] Use Horde's temporary directory for SyncML logs.
[mjr] Allow autodiscover requests sent as OPTIONS requests.

[mms] If secret key is changed, change the associated  key or else key change
      may not be recognized in the current page access (Bug #11570).
[mms] Limit decryption/encryption key to 56 bytes (Bug #11566).
[mms] Mark secret cookie data as HttpOnly.
[mms] Add Exception code constants.
[mms] Use Horde_Support_Randomid class to generate secret key.

[jan] Fix parsing JSON responses with PHP 5.4.
[mjr] Remove fields from FQL statement that are no longer available.
[mjr] Update API to use the Graph API wherever possible.
[mjr] Removed the deprecated OFFLINE permission.

[mjr] Catch XML parsing errors.

[jan] Fix track_lifetime setting for Memcache driver (Bug #11444).

[jan] Fix sorting of Kolab shares (Bug #11509).
[gwr] Propagate setting the default attribute to the Kolab backend.

[mms] First release for Horde 5.

[jan] Add htmlspecialchars() filter.

[jan] If creating Horde_Support_Backtrace from an Exception, include any
      previous exceptions.
[jan] Make Horde_Support_Backtrace#backtrace a public property.
[mms] Add Horde_Support_ObjectStub.

[jan] Fix session handling (Bug #11242).
[jan] Fix finding locale directory if installed with PEAR.

[mms] Merge upstream changes to jsmin filter that caused broken compression of
      jQuery Mobile file.

[mms] Fix cloning of csstidy objects.

[jan] First release for Horde 5.

[jan] Tweak CSS names.
[jan] Separate tree object from tree renderers.

[mms] Fix copying all parameters when cloning a Horde_Url object in the
[mms] Make parameter generation extendable.
[mms] Add Horde_Url::setScheme().
[jan] Make constructor parameters optional for empty URLs.

[mms] Remove Horde_Util::addParameter() and Horde_Util::removeParameter().
[mms] Remove Horde_Util::cloneObject().
[mms] Removed e-mail array manipulation methods (Horde_Mail package now
      provides this feature).
[mms] Removed Horde_Util::getCsv() (moved to Horde_Data package).
[mms] Add iteration to Horde_Domhtml object.
[jan] Remove Horde_Util::getTempDir().
[jan] Remove Horde_Array::replaceRecursive().

[jan] Fix check whether quota limit is set (Bug #11455).
[jan] Fix sending and reading files in SSH2 driver if vfsroot is not set (Bug
[jan] Fix finding locale directory if installed with PEAR.
[jan] Add hasFeature().
[jan] Drop listFolders() method.
[jan] Remove Horde_Vfs_Browser, Horde_Vfs_ListItem, Horde_Vfs_Object classes.

[mms] Added Horde_View_Helper_FormTag#optionTag().


[jan] Update Swedish translation (Per Olof Ljungmark <>, Jakob
      Alvermark <>).
[jan] Update Italian translation (Emilien <>, Massimo
      Malabotta <>).
[jan] Update Slovak translation (Marika Schvarczova
[jan] Update Czech translation (Michal Foist <>).
[jan] Update Hungarian translation (Zoltán Németh <>).

Horde Changes
[jan] Update Lybian flag (Request #11169).
[jan] Fix horde-set-perms script (Arjen de Korte, Bug #11048).

Mail Changes
[mms] SECURITY: Fix XSS vulnerabilities on the dynamic compose page and the
      minimal mailbox and message pages.
[jan] Re-add leading paragraph before HTML signatures to avoid writing into
      the signature.
[jan] Use preferred editor if not opening compose window from dynamic view.
[mms] Save Bcc addresses when saving compose message as draft.
[mms] Fix handling of RETURN keypress in the Subject input on the dynamic
      compose page.
[jan] Fix regression in sending PGP encrypted messages (Bug #11150).

Filters Changes
[mms] Fix IMAP filtering on combination fields (Bug #11197).
[jan] Fix showing blacklist option to mark message as deleted (Bug #11186).
[jan] Fix folder names in Procmail rules if using Maildir (Bug #10113).
[mms] Application initialization should only be done on first access.

Address Book Changes
[jan] Fix number of contacts in a list that cannot be displayed.

Calendar Changes
[jan] SECURITY: Fix XSS vulnerabilities in tasks view and search view (Bug
[jan] Improve print styles.
[jan] Catch if external client doesn't send LAST-MODIFIED attributes (Bug
[jan] Don't stop agenda script if there is an error with a single user (Bug
[jan] Show round corners only on the start and end of multi-day events
      (Request #11067).

Library Changes
[jan] Fix class name (, Bug #11164).

[mms] Added the 'ajax' browser feature.

[mms] Check for damaged ZIP data.

[gwr] Fixed session based preferences.

[jan] Fix HTML rendering of S/MIME certificates with multi-value attributes.

[mms] Fix regression in caching code (Bug #11143).
[mms] Fixed PHP 5.2 incompatibility (Bug #11137).

[jan] Throw exception if LDAP extension is missing.

[mms] Increase lock timeout to 30 seconds.
[mms] Fix typo preventing unlock at exit from working correctly.
[mms] Automatically expire locks when the PHP process exits.

[jan] Update ISO list of countries (Bug #11169).

[jan] Support authentication via CGI.

[jan] Don't corrupt binary data like images if sent in several messages
      (Jonathan Westerholt <>, Bug #10864).

[jan] Support definition lists in HTML-to-text filter (Nathan Barhorst).

[mms] Don't encode anchor string if raw mode is enabled.

[mms] Fix Horde_String::validUtf8() to workaround PHP/PCRE bug where segfault
      will occur on input strings > ~5000 characters.


[rla] Add missing license files.
[jan] Update Hungarian translation (Zoltán Németh <>).
[jan] Update Brazilian Portuguese translation (Luis Felipe Marzagao
[jan] Update Finnish translation (Leena Heino <>).
[jan] Update German translation.
[jan] Update Spanish translation (Manuel P. Ayala <>).

Horde Changes
[mjr] Add more atomic control over ActiveSync security policies for better
      device compatibility.
[mms] Add 'sendmail_eol' configuration parameter.
[jan] Fix horde-set-perms (, Bug #10923).
[jan] Sort user and group names in permission screen (Request #10896).

Mail Changes
[mms] Added the 'delhide_trash' preference.
[mms] Ensure that PGP & S/MIME signed message bodies are not altered after the
      signature is calculated (Bug #11058).
[mms] Fix internal storage of date searches (Bug #11109).
[mms] Fix regression in sending PGP encrypted messages (Bug #11085).
[mms] Only poll mailboxes in dynamic view that exist in the browser folder
[mms] Fix regression in displaying From address on mailbox page in traditional
[mms] Fix updating the compose address fields when using the contacts popup.
[jan] Fix setting default values for identity preferences.
[mms] Improve drag performance of elements in dynamic view.
[mms] Fix saving initial_page preference.
[mms] Workaround broken Thunderbird encrypted S/MIME messages.
[mms] Fix regression where passphrase prompt would not appear for S/MIME
      encrypted messages.
[mms] Fix regression in verifying signed & encrypted S/MIME messages (Bug
[mms] Fix reloading the folder list in the dynamic view (Bug #10769).
[mms] Fix deleting messages from Virtual Trash.
[mms] Fix regression in displaying PGP Armored signed/encrypted messages (Bug
[mms] Catch IMAP server connection errors in traditional mailbox view.
[mms] Fix purging moved messages from dynamic mailbox view if deleted messages
      are visible in the mailbox (Bug #10916).
[mms] Fix message advancing when deleting messages in traditional view when
      deleted messages are visible in the mailbox.

Address Book Changes
[jan] Fix decode_attribute hook when exporting to vCard (, Bug
[jan] Only connect to LDAP driver for read/write requests (Dominique Lalot
      <>, Request #11082).
[mjr] Fix bug that caused time shifting of contact birthday and anniversary
      values from ActiveSync devices for users in certain timezones.
[mjr] Ensure contact lists are always populated with their members (Bug
[jan] Fix SyncML compatibility with work/home phone numbers and newer Funambol
      clients (Bug #10912).
[mjr] Implement more flexible ActiveSync synchronization of names and
[jan] Fix address book sorting in preferences (Bug #10897).
[mms] Improve navigation when editing group entries.

Calendar Changes
[jan] Use preferred date format in week and agenda views (Bug #11089).
[jan] Fix fatal error if no external calendars are available (Bug #11079).
[jan] Fix positioning of events on DST changing dates (Bug #11070).
[mjr] Fix bug that caused time shift of all day events when imported from
      ActiveSync devices for users in certain timezones (Bug #10991).
[mjr] Correctly deal with deleted calendars in sync clients (Bug #10969).
[jan] Search complete names and addresses when auto-completing attendees.
[jan] Fix syntax error in migration script (Bug #10902).

Notes Changes
[mjr] Add missing getChanges API method.

Timeobject Changes
[mjr] Always provide the longest forecast length available for weather
      forecast data.
[mjr] No longer attempt to create a Horde_Service_Weather provider if we do not
      have one configured.

Library Changes
[mjr] Fix parsing incoming timezones under certain conditions (Bug #11068).
[mjr] Added WP7 devices to the list of devices with broken provisioning.
[mjr] Fix issue that could cause improper timezone handling in events passed
      from device to server in the beginning of a calendar year (Bug #10960).
[mjr] More improvements to security policies and device compatibility.
[mjr] Tweak policy defaults. Minor compatibility improvements for
      WAP-Provisioning-XML strings.
[mjr] Allow disabling of certain policies.
[mjr] Honor PROVISIONING_LOOSE if the device supports PROVISIONING, but not all
      of our requested policies.
[mjr] Fix issue that could cause PING failure in certain server environments.

[jan] Add optimized exists() implementation to LDAP driver (Marco Ferrante
      <>, Request #10944).

[jan] Fix horde-autoloader-cache-prune script.

[mms] Fix upload_tmp_dir checking (Bug #10976).
[mms] Update dataurl and cite capabilities for Internet Explorer.
[jan] Update utf capability for Firefox 10+.
[jan] Update capabilities for recent Blackberry devices.

[jan] Add parameters to specify field size of phone and email fields.
[jan] Log details too, if logging an exception.
[jan] Fix showing applications with 'admin' status in the sidebar.
[jan] Fix setting default values for HTML signatures.
[mjr] Throw exception if no weather service configured (Bug #11005).
[mms] Fix viewable prefs when toggling from Hide->Show Advanced.
[mms] Better error message when missing required parameters (Bug #10979).
[mms] Add Horde_Core_Alarm_Handler_Notify class.
[mjr] Fix issue with autocompletion that would cause it to fail in certain
      circumstances (Bug #10904).
[mms] Remove trailing semicolon when replacing @import statements.
[mjr] Fix issue that could cause failure of ActiveSync due to incorrect packing
      of binary data.
[jan] Use separate database connection for SQL session handler (Bug #10906).
[mms] Fix parsing DB config when using splitread database setup.

[mms] Improved parsing of S/MIME certificate information (Bug #10956).
[mms] Silently ignore unknown data when parsing S/MIME certificates.

[mms] Translate all user-directed exception messages.

[jan] Fix escaping of binary values in SQLite.

[jan] Inherit details from wrapped exception.

[jan] Add parameters to specify field size of phone and email fields.

[jan] Use configured filter when listing groups (Jesse Sandberg
      <>, Bug #10975).

[cjh] Fix infinite loop on unknown parameters being set.
[cjh] Return real data for HTTP 4xx and 5xx responses when using fopen().
[cjh] Fix setting PUT data in the Peclhttp Horde_Http_Request class.

[mms] Fix CHANGEDSINCE search if no FETCH attributes were specified (Bug
[mms] Fix search charset detection for servers that do not send the BADCHARSET
      response code (Bug #11117).
[mms] Workaround IMAP servers with broken CATENATE implementations (Bug #11111).
[jan] Fix sending ID requests.
[mms] Rewrite of caching system. Fixes a few bugs, and should be more efficient.
[mms] Clear imapproxy status when logging out.
[mms] Workaround PHP bug when using serialized Envelope data created by
      Horde_Imap_Client < 1.5.0 (Bug #11026).
[mms] Fix accessing STATUS information for mailboxes with non 7-bit characters.
[mms] Fix 'vanished' return from fetch().
[mms] Add Horde_Imap_Client_Base#setParam() (Bug #10680).
[mms] Return correct authentication error if authentication fails after the
      original login (Bug #11007).
[mms] Do case-insensitive check for NIL in IMAP data.
[mms] Correctly support RFC 822 groups in envelope data.
[mms] Envelope address data now returned as Horde_Mail_Rfc822_Address objects.
[mms] Other places where bodystructure may return literals.
[mms] Workaround non-ASCII data in bodystructure return from IMAP server.
[mms] Fix several faulty translation strings (Bug #10958).
[mms] Fix objects where the password is not being encrypted (Bug #10950).
[jan] Fix translations when installed through PEAR.
[mms] Implement more efficient serialization for Thread data objects.
[mms] Move server debug information from exception error message to 'details'
      property of exception object.
[mms] Fix METADATA_TOOMANY and METADATA_NOPRIVATE exception codes.
[mms] All user-directed exception messages are now translated.
[mms] Added Horde_Imap_Client_Exception_NoSupportExtension.
[mms] Incorrect method calls now throw SPL errors instead of

[jan] Fix line breaks of iTip responses when using quoted-printable encoding
      (Bug #10888).

[mms] Added Horde_Mail_Rfc822_Address#encoded property.
[mms] Better support for IDN hosts in non-validate address parsing mode (Bug
[mms] Added Horde_Mail_Rfc822#trimAddress().
[mms] Add optional arguments to the Horde_Mail_Rfc822_Group constructor.
[mms] Horde_Mail_Rfc822#parseAddressList() now accepts
      Horde_Mail_Rfc822_Objects within the first argument.
[mms] The address and group objects now extend the base
      Horde_Mail_Rfc822_Object class.
[mms] Add optional arguments to the Horde_Mail_Rfc822_Group constructor.
[mms] First argument to Horde_Mail_Rfc822#parseAddressList() can now be an
      array of addresses.
[mms] Add Horde_Mail_Rfc822#encode().
[mms] Workaround unexpected return from PHP_EOL in Mail transport drivers.
[mms] Created Horde_Mail_Rfc822_Address and Horde_Mail_Rfc822_Group objects to
      represent e-mail addresses.
[mms] Improved parser for e-mail addresses (Request #10949).

[mms] Bump lock retry from 0.005s -> 0.1s.

[jan] Work around broken messages with multiple address headers.
[mms] Add option to allow encoding options to be defined for
      Horde_Mime_Part#send() (Bug #11058).
[mms] Add MIME headers to the list of single-value headers.
[mms] Don't add personal part to e-mail address if it is identical to the
      address itself.
[mms] Support Horde_Mail_Rfc822_Address objects.
[mms] A false value for 'idn' in Horde_Mime_Address#writeAddress() now causes
      the domain name to be converted TO punycode, if necessary.

[jan] Implement ArrayAccess in Horde_Rdo_Base.
[jan] Fix Horde_Rdo_Exception not extending Horde_Exception.
[rla] Fix issue with retrieving lazy fields (Bug #11012).

[jan] Fix WebDAV access to application resources.

[mjr] WeatherUnderground had done away with the 5 day forecast. Emulate it with
      a 7 day forecast and limitLength call.
[mjr] Allow setting a limit to the number of forecast days that are returned,
      regardless of the reqested forecast length.
[mjr] Fix requesting different forecast lengths for the same location in the
      same request.
[mjr] Add 10 day forecast support for WeatherUnderground.

[jan] Fix SQL driver with PostgreSQL.
[jan] Fix reading sessions with the External driver.
[jan] Add test suite.
[jan] Don't start transaction more than once in SQL driver (Bug #10978).
[jan] Fix transaction error when reconnecting to database during session
      writing (Bug #10906).

[jan] Add renameShare().
[mjr] Properly cache empty listShares results (Bug #11045).

[mms] Fix failing unit tests.

[mms] Fix preg backtrack issue in the Linkurls filter (Bug #11116).
[mms] Merge upstream updates to JsMin filter.

[mms] Don't do regex matching for data that can never match.

[jan] Implement ArrayAccess in Horde_Variables.

[jan] Fix inconsistent behavior of the different backend drivers.
[jan] Fix double unlink() of temporary files.
[jan] Fix ignored $dotfolder argument for listFolders() in SQL driver.
[jan] Fix several issues with quota calculation.
[jan] Fix recursive listFolder() on base directory.
[jan] Fix calculating folder sizes with similar folder names in SQL driver.


Mail Changes
[mms] SECURITY: Fix XSS vulnerabilities on the compose page (traditional
      view), the contacts popup window, and with certain IMAP mailbox names.
[mms] Fix updating context menu when a mailbox is converted into a container
      element after being deleted.
[mms] Fix expand/collapse of folder tree in mobile view.
[mms] Fix regression preventing sending of MDNs.
[mms] Fix reporting as innocent in mobile view.
[mms] Fix updating log information when replying/forwarding in dynamic view.
[mms] Fix deleting virtual folders in dynamic view.
[mms] Cache message headers during a page access.
[mms] Fix adding submailboxes to last mailbox in a level in dynamic view.
[mms] Fix display of numerically-named mailboxes on IMAP servers without the
      LIST-EXTENDED IMAP capability (Bug #10869).
[mms] Fix attachment detection search filter.
[mms] Fix editing date search elements.
[mms] Allow creation of the mailbox '0' (Bug #10866).
[mms] Correctly handle numeric mailbox names.
[mms] Fix display of mailbox names living under special mailboxes (Bug #10802).
[mms] Fix broken Hide/Purge Deleted links in traditional view (Bug #10860).
[mms] Fix issue in dynamic mailbox view with thread sorting and a reset of
      mailbox metadata (Bug #10835).
[mms] Fix message redirection regression in dynamic view (Bug #10859).

Address Book Changes
[jan] Set VOICE parameter when exporting phone numbers to vCard (Request
[jan] Fix importing vCards with empty X-ANNIVERSARY attributes (Bug #10557).
[jan] Update Japanese translation (Hiromi Kimura <>).

Calendar Changes
[mjr] Fix bug that could cause incorrect event exceptions to be created when
      drag and dropping events in month view.
[jan] Fix page titles not always updating correctly.
[jan] Display event time in dynamic view if requested (Request #9866).
[jan] Only show end time if different from start time.
[jan] Fix day sorting in agenda view.
[jan] Sort user and group names in permission screen (Request #10896).

Library Changes
[mjr] Fix REMOTEWIPE functionality for a number of android and iOS devices.
[mjr] Fix sending meeting request emails when creating a meeting.
[mjr] Fix retrieving the body of SENDMAIL requests.
[mjr] Fix parsing birthday strings on certain android 2.2 clients.
[mjr] Improve support for Android device provisioning.
[mjr] Improve support for timezones in appointments originating on the client.
[mjr] Improve performance when working with timezones on PHP 5.3+

[mjr] Fix implementation of SENDMAIL ActiveSync command. Fixes sending of
      meeting requests from device.
[mjr] Fix issue that caused ActiveSync failure when using device specific
      logging in certain cases.
[mms] Fix merging config data (Bug #10381).

[mjr] Fix creating recurrence objects with a timezone other than the current

[mms] SECURITY: Fix XSS vulnerability in email validation.

[jan] Fix compatibility with Horde_SyncMl (Bug #10908).
[jan] Allow to pass multiple parameter values in setAttribute() (Bug #7248).

[mms] Allow multiple date searches to be specified in a single AND search query.
[mms] Fix deleting cached mailbox when mailbox name is given as an object.
[mms] Fix 'changedsince' and 'vanished' parameters' in the fetch() command (Bug
[mms] LIST-STATUS does not depend on LIST-EXTENDED.
[mms] Add dependency checking for capabilities.

[gwr] Fixed datatype for birthday and anniversary contact attributes.
[gwr] Completed missing data API v1 support.

[mms] Fix line-endings for transport drivers that send messages using local

[jan] Improve compatibility with some broken text MIME parts (Bug #10925).

[mjr] Add snow and rain totals to wunderground driver.
[mjr] Fix using IP addresses for determining forecast location (Bug #10857)

[jan] Fix undefined method while synchronizing events with Funambol (Bug
[jan] Catch exceptions when changing or retrieving objects from the

[mms] Need to cache gettext-enabled templates with language information in the
      cache ID (Bug #10872).

[mms] Add Horde_Variables#filter().


[jan] Update Dutch translation (Arjen de Korte <>,
      Pieterjan Heyse <>).
[jan] Update Japanese translation (Hiromi Kimura <>).

Horde Changes
[jan] Make the lifetime of cached weather information configurable (Arjen de
      Korte, Request #10848).
[mjr] Improve layout of weather block.

Mail Changes
[jan] Use locale based folder sorting.
[mms] Workaround broken PGP signed data contained within encrypted parts (Bug
[mms] Fix signature verification display for combined encrypted/signed PGP
[mms] Add option to edit ACLs when right-clicking mailbox in dynamic view
      (Request #8060).
[mms] Allow multiple messages to be redirected from traditional view mailbox
      page (Request #2084).
[mms] Add ability to quickly add unsubscribed mailboxes to available search
      mailboxes in advanced search (Request #10832).
[mms] Don't list parent mailboxes after child mailboxes (Bug #10802).
[mms] Fix setting compose message body on IE 9 in dynamic view.
[mms] Redirect to login page if IMAP credentials are lost somehow during the
[mms] Fix 'server' credential in preauthenticate hook.
[jan] Fix updating events from attendee responses (Bug #10772).
[mms] Correctly apply default mail_domain value in all places it is needed.
[mms] Correctly save mail_domain value if changed in preferences UI.
[mms] Purge browser cache daily in dynamic view; updates time stamps to proper
      format (Request #9773).

Filters Changes
[jan] Set Return-Path: in Maildrop vacation driver (, Bug

Calendar Changes
[jan] Hide disabled calendar sections (Bug #9815).
[gwr] Fixed recurrence handling with the Kolab backend.
[gwr] Fixed naming of the default calendar for the Kolab backend.
[gwr] Fixed deleting events with the Kolab backend.
[gwr] Fixed migrations for SQLite as database backend.
[mjr] Fix keyboard navigation of time entry fields in dynamic view (Bug
[mjr] Fix parsing display_cal variables for internal calendar links on various
      blocks and embedded imples (Bug #10767).
[mjr] Fix adding events directly to a resource's calendar (Bug #10827).
[mjr] Fix regression introduced in 3.0.12 that broke checking a Resource's
      availability in certain cases (Bug #10806).
[jan] Don't fail on empty CalDAV calendars (, Bug
[jan] Check permissions when building application drop down
      (, Bug #10811).
[gwr] Fix saving Kolab events.

Tasks Changes
[jan] Fix setting custom alarm methods (Bug #9543).

Notes Changes
[jan] Use locale based sorting.
[jan] Fix remembering the expansion state of the notepads panel (Bug #10797).

Library Changes

[mjr] Increase field length for sync_data to support syncing large collections
      (Bug #10822).
[jan] Fix tests to work with PHPUnit 3.6.

[jan] Catch exceptions from Horde_Mime when sending alarm messages (Bug #10388).

[jan] Add Latvian translation (Jānis Eisaks <>).

[mjr] Allow separate ActiveSync logs per device.
[jan] Make the lifetime of cached weather information configurable (Arjen de
      Korte, Request #10848).
[gwr] Fixed hiding menu entries that should not be displayed to admin.
[gwr] Fixed Kolab anonymous bind.

[mms] Provide signature information when decrypting a message, rather than just
      a boolean result.
[mms] Fix displaying PGP key expiration information.
[mms] Allow expiration date to be given to Horde_Crypt_Pgp#generateKey()
      (Request #5754).

[mjr] Allow applications to extend Horde_Data_Base objects.

[mjr] Fix issue with creating Horde_Date from DateTime object with explicit
      timezone set.
[gwr] Fix the parsing of recurrence hash data.

[jan] Correctly parse "nacht" in German (Bug #10511).

[gwr] Alternative API to support modified dates with SQLite as well.
[mjr] Add support for mediumtext and longtext field types.

[mms] Work around broken headers in IMAP envelope data.
[mms] Remove Cclient drivers.

[mms] Allow Horde_Mime_Part::getRawPartText() to accept stream input.
[mms] Workaround incoming message data to Horde_Mime_Part::getRawPartText()
      that contains varying EOL characters (Bug #10809).
[mms] Fix detection of MIME boundaries at beginning of string (Bug #10809).
[mms] Abstract charset detection code out into
[mms] Improved detection of charsets in broken (8-bit) MIME headers.
[mms] Fix for broken 8BITMIME/BINARYMIME SMTP capability detection
      (, Bug #10820).

[jan] Catch exceptions from storage writing during shutdown.
[jan] Use binary column type for preference values (Bug #10803).

[mjr] Use longer cache lifetime for non-changing values (Request #10851).
[mjr] Export available detailed forecast fields for each driver (Bug #10813).
[mjr] Fix returning correct units when requesting the same location twice, but
      with different units (Bug #10804).
[mjr] Fix returning localized text from Wwo driver (Bug #10804).
[mjr] Fix obtaining forecast periods individually..
[mjr] Fix obtaining certain properties from Google driver.
[mjr] Fix making requests when not using a cache.
[mjr] Fix path to locale directory.
[mjr] Fix setting units (Bug #10792).

[mms] Fix unnecessary use of POSIX collating element in Linkurls filter
      (, Bug #10828).

[jan] Fix translation (Bug #10831).

[mms] Add Horde_String::validUtf8().


[mjr] Add support for Horde_Service_Weather.
[mjr] Remove support for the now non-existent weatherdotcom API.
[jan] Update Croatian translation (Valentin Vidic <>).
[jan] Update Latvian translation (Jānis Eisaks <>).
[jan] Update Estonian translation (Alar Sing <>).
[mjr] Fix removeUserData implementations.
[gwr] Avoid including the owner name into the default shares (Kolab backends).

Horde Changes
[jan] Add configuration option to disable password resets (Request #10640).
[cjh] Add Hordevetica theme.
[mjr] Fix issue with ajax uploader and file sizes over 1mb (Bug #10641).
[mjr] Do not show results in the tag cloud block owned by other users.
[mjr] Update javascript map library.
[mms] Allow in-page base64 image encoding to be disabled via configuration.
[jan] Add administration page to list and clear locks.

Mail Changes
[mms] Honor sortpref locked status.
[mms] HTML drafts saved in IMP are resumed in that mode, regardless of the
      'compose_html' preference (Request #10787).
[mms] Improved tree display when displaying all message parts.
[mms] Fix DNS resolution when sending attachment viewed messages (Bug #10784).
[mms] Fix switching quicksearch criteria while a search is active in dynamic
      mode (Bug #10780).
[mms] Fix redirecting message from dynamic view popup message (Bug #10738).
[mms] Fix swapping signatures when composing in HTML mode (Bug #10768).
[mms] Remove transparency for PDF thumbnails generated by imagemagick.
[mms] Fix removing addresses on contacts page (Bug #10761).
[mms] Virtual Trash fixes.
[mms] Improved UI access to advanced sorting options in dynamic view.
[mms] Fix stripping attachments in traditional view (Bug #10722).
[mms] Fix creating new Drafts mailbox from Drafts preference page.
[mms] Fix verifying a PGP signed part within a PGP encrypted part.
[mms] HTML viewer passes Email Privacy Tester
[mms] Fix intermittent attachment loss when composing messages.
[mms] Correctly reference CSS stylesheets contained within a multipart/related
[mms] Sanitize LINK tags contained in HTML messages.
[mjr] Only request the field values we actually need when searching the
      contacts API.
[mms] Fix expand all mailboxes in dynamic view (Bug #10682).
[mms] Re-add auto-detection of MIME types for message parts that lack this
[mms] Add 'delete_mark_seen' preference.
[mms] Fix accessing POP3 servers that use commas in their UIDs.
[mms] Fix updating flags in non-selected mailbox if IMAP server does not
      support CONDSTORE/QRESYNC (Bug #10627).
[mms] Fix some dynamic view links on IE (Bug #10664).
[mms] Workaround broken number_format() for PHP < 5.4.0 (Bug #10618).
[mms] Add preference to indicate preferred language for return replies on
      outgoing messages.
[mms] For reply, indicate original sender's language preference.
[mms] Fix/improve monthly sent-mail rename login task (Bug #10613).
[mms] Fix display of encoded subject text on print page (Bug #9755).
[mms] Fix setting MDN flag on sent message after compose (Bug #10579).
[mms] When expanding a submailbox in dynamic view, honor expanded children
[mms] Re-add 'msgs_shown' parameter to Newmail block.
[mms] Allow multiple messages to be sent via quickreply in dynamic view.
[mms] Allow image attachments to be displayed without download in mobile view.
[mms] Fix reporting spam/innocent on mailbox page in mobile view.
[mms] Fix viewing next message after deleting message in mobile view.
[mms] Fix composing messages in mobile view.
[mms] Optimize deletion of messages in dynamic view.
[mms] Fix accessing search mailboxes in dynamic view on IE 9 (Bug #10462).
[mms] Fix altering background color of system message flags (Bug #10544).
[jan] Fix sending notifications after download of linked attachments (Bug

Address Book Changes
[mjr] Add the ability to specify the fields to return from contacts/search.
[jan] Fix importing contacts with composite fields.
[jan] Fix LDAP connection test (Bug #10554).

Filters Changes
[mms] Fix displaying From address in notification when filtering with IMAP
[jan] Catch if files don't exist while deleting with VFS transport
      (, Bug #10494).
[mms] Additional fixes when creating new mailboxes (Bug #10282).

Calendar Changes
[jan] Show status of events in agenda messages (Request #10517).
[mjr] Fix selecting custom time from time selection drop down (Bug #10737).
[jan] Always use fresh Horde_Http_Client instances for remote calendars (Bug
[jan] Add confirmation screen when deleting events in dynamic view (Request
[jan] Fix holidays disappearing from month view if deleting another event.
[jan] Fix resetting attendee response status when saving events in dynamic
      view (Bug #10620).
[jan] Support CalDAV servers that don't use DAV: as the default namespace
      (, Bug #10716).
[jan] Allow to view and create copies of holiday events (Bug #10650).
[jan] Don't show import/export tabs in dynamic view if disabled (Bug #10705).
[jan] Don't show option to share with everyone in basic permissions if disabled
      (, Bug #10706).
[mjr] Only set ORGANIZER field if the event is a group meeting (Bug #10697).
[mjr] Fix alarms for recurring events (Bug #10678).
[mjr] Allow filtering listTagInfo results by user.
[jan] Fix uncompleting tasks in dynamic view (Carlos Timóteo, Bug #10653).
[cjh/jan] Improve design.
[mjr] Fix displaying resources when no attendees are present (Bug #10507).

Tasks Changes
[jan] Don't display task details of private tasks via the API (Bug #10712).
[jan] Use correct locale when parsing quick tasks (, Bug
[cjh] Nicer date/time input with fewer input fields and helper javascript.
[mjr] Add ability to choose which tasklists to synchronize.
[mjr] Fix task export to ActiveSync for tasks with no due dates or reminders.
[jan] Add missing parameters when PUTing tasks (Bug #10545).
[gwr] Fix Kolab object attribute handling for tasks.

Library Changes
[jan] Fix tests to work with PHPUnit 3.6.
[jan] Make unit tests Windows compatible.
[jan] Skip Kolab tests if Horde_Kolab_Storage is not installed.
[jan] Allow to run unit tests from installed package.

[mjr] Fix issue with timezones caused by buggy PHP timezone data (Bug #10760).
[mjr] Fix duplicate entries being sent to client when client does not issue
      GETCHANGES request (Bug #10731).
[mjr] Prevent duplicate incoming message additions (Bug #10644).

[jan] Catch exceptions from imap library (Bug #10272).
[jan] Fix detecting locale directory from PEAR installation (Bug #10589).
[jan] Add missing locale directory (Bug #10589).
[jan] Add checkPasswordPolicy() and checkPasswordSimilarity() methods.

[jan] Fix empty_file_input_value quirk for Chrome browsers (Bug #8438).

[jan] Don't overwrite $_SERVER superglobals unconditionally, to allow setting
      them through environment variables (Bug #10758).

[mjr] Add Horde_Service_Weather factory.
[mms] Fix importing CSS data in cache files.
[mms] Detect @import tags in CSS and add to compressed data.
[mjr] Add ability to remove temporary files at session shutdown.
[jan] Fix resetting authentication credentials (Bug #10228).
[jan] Correctly render keyval_multienum form field contents.
[jan] Don't use Xcache in CLI scripts (Bug #10288).
[jan] Fix PostgreSQL DSN when using SQL authentication (Bug #10538).
[mjr] Add factory for Horde_Service_UrlShortener.
[mms] Fix minChars behavior in autocomplete javascript code.
[mms] Allow in-page base64 image encoding to be disabled via Horde
[jan] Allow both application and interface names in <configspecial>.

[mms] Upgrade signed S/MIME output to comply with S/MIME version 3.2.

[jan] Add missing dependency on PEAR's DB package.

[mjr] Fix timezone bug that could cause an incorrect timezone from being set
      when creating Horde_Date objects from other Horde_Date or DateTime
[mjr] Fix timezone bug that caused some date strings to be parsed as an
      incorrect timezone.

[mms] Greatly reduce memory usage when working with binary data in PostgreSQL
      9.0+ (Bug #10774).
[mms] Cache postgresql version.
[jan] Improve API documentation.
[jan] More flexible conversion of charset names to native MySQL names.
[jan] Correctly escape binding characters in buildClause() (Bug #10610).
[jan] Fix transactions with MySQLi driver (Bug #10578).
[jan] Fix DISTINCT clause generation on PostgreSQL (Bug #10543).
[mms] Fix escaping binary data on Postgresql 9.1+ servers (Bug #10602).

[gwr] Support multiple mock responses with the mock request.
[gwr] Fixed setting response headers for the mock response.
[gwr] Added SOCKS proxy support where available.

[jan] Fix generating VTIMEZONE components.

[mjr] Add a version of the convert command for center cropping with ImageMagick
      versions less than 6.3.8 (Bug #10687).
[mjr] Fix parsing GPS values for locales that do not use the decimal separator
      (Bug #10643).
[mjr] Added support for Lens and LensID EXIF fields)
[mjr] Ensure string values are parsed as strings (Bug #10646).
[mjr] Add basic unit tests for EXIF data

[mms] Workaround missing search charset support in the Socket driver (Bug
[mms] Only add CHARSET data to SEARCH queries if necessary (Bug #10726).
[mms] Fix deletion of cached message entries.
[mms] Fixed setting data for several POP3 fetch results.
[mms] Parsing/generating sequence strings for POP3 servers has been fixed.
[mms] Removed unmaintained Mock driver.
[mms] API CHANGE: Added Horde_Imap_Client_Mailbox to provide way to accurately
      switch between UTF7-IMAP and UTF-8 mailbox representations.
[mms] API CHANGE: Deprecate Horde_Imap_Client_Base::parseCommandArray() - use
      Horde_Imap_Client_Utils::parseCommandArray() instead.
[mms] API CHANGE: Added a required parameter ('baseob') to
      Horde_Imap_Client_Cache constructor.
[mms] API CHANGE: Added Horde_Imap_Client_Base::writeDebug().
[mms] API CHANGE: Added Horde_Imap_Client_Base::getIdsOb().
[mms] API CHANGE: Deprecate Horde_Imap_Client_Cache::singleton().
[mms] Fix client-side Cc/From/To sorting (Bug #10503).
[mms] Improved IMAP debug logging.
[mms] Fix search charset determination for servers that support SORT & ESORT
      (Bug #10479).
[mms] Improved phpdoc documentation.
[mms] API CHANGE: Add shortcuts to get MIME decoded envelope information.
[mms] Automatically authenticate to server when using a command that requires
      an authenticated/selected state (Bug #10473).

[jan] Make unit tests locale independent.

[gwr] Move Horde specific functionality out of the events parser.
[gwr] Move Horde specific functionality out of the contacts parser.
[gwr] Improve data validation.
[gwr] KEP2 support.
[gwr] Allow adding XML attributes on the fly.
[gwr] Avoid overwriting data from other Kolab clients.
[gwr] Add improved root node handler (version checking, avoids overwriting
      other data).

[gwr] Readd support for updating Horde_History.
[gwr] Fix support for multiple namespaces of the same type.
[jan] Update Latvian translation.
[gwr] Add support for retrieving objects by backend id.
[gwr] Add a handler for active sync settings.
[gwr] Add preference data query.
[gwr] Add support for storing data query results in the cache.
[gwr] Add support for deleting messages by backend UID.
[jan] Update Spanish translation.
[gwr] Add logging for data handlers.

[jan] Add missing test autoloader.

[jan] Expand width of lock_owner column (Bug #10608).

[gwr] Fix installation paths (Bug #10588)

[mms] Fix advancing tasks pointer if system tasks also exist for an application
      (Bug #9767).
[mms] Prevent unnecessary URL redirection if no logintasks need to be confirmed.

[mms] Always use canonical line endings in sendmail driver (Bug #10696).

[mms] Work around broken number_format() in PHP < 5.4.0.
[jan] Make unit tests locale independent.
[mms] Added 'canonical' parameter to Horde_Mime_Headers#toArray() and
      Horde_Mime_Headers#toString() (Bug #10696).
[mms] Horde_Mime_Part::getRawPartText() was incorrectly returning a trailing
      EOL for body data.
[jan] Add Horde_Mime_Mail#clearParts().

[mms] Fix iteration through child HTML nodes in the HTML viewer so that
      extended viewers can do things like remove nodes outright.
[jan] Fix configuration of syntaxhighlighter viewer.

[jan] Update German translation.
[jan] Update Brazilian Portuguese translation.
[mms] Added ISO 639 language code lookup.

[gwr] Add missing font files.

[jan] Don't allow to create sub permissions of non-existant parent permissions
      (Bug #10688).

[jan] Add Horde_Rdo_Query#distinct() (Request #10535).

[jan] Make Horde_Routes_Utils::controllerScan() Windows compatible.
[gwr] Only remove the "_controller" suffix if it exists.

[gwr] Fixed posting tweets.
[mjr] Fix generating OAuth request when multiple URL parameters are passed.
[mjr] Fix oauth endpoints to reflect Twitter's new requirements for https

[mjr] Initial release.

[jan] Use portable queries in SQL session handler (Bug #10574).

[mms] Add Bin2hex filter.

[jan] Fix encoding of CDATA (, Bug #10692).

[jan] Require PHPUnit 3.5 due to BC breaking changes in 3.6.
[gwr] Added Horde_Test_Stub_Factory as a simple factory stub.
[gwr] Add Horde_Test_Setup for complex test suite setups.

[jan] Fix class names in Horde_Text_Diff_ThreeWay merger (Bug #10548).

[mms] Add some more questionable tags/attributes to strip in the XSS filter.

[jan] Fix skipping tests if PDO driver is not available.

[jan] Speed up Horde_String::substr() (Evert Pot, Request #8627).

[gwr] Make unit tests timezone independent.
[jan] Fix reading file sizes from Samba backends.
[jan] Catch output from smbclient during error conditions (Bug #10638).
[jan] Implement size() method in Samba driver.
[jan] Fix setting permissions with File driver (Bug #10630).
[mms] Fix using File driver if vfsroot directory already exists (Bug #10584).
[mms] Fix internal reference to QUOTA_METRIC_* constants (Bug #10585).
[jan] Fix parsing of directory listings on /dev file systems in the SSH driver.

[jan] Complete fix for incorrect syncml:metinf and syncml:devinf URNs (Bug


[jan] Fix German title of tasks portal block (Bug #10486).

Horde Changes
[rla] Add account locking similar to the former kolab-specific option.
[jan] Add missing configuration for LDAP groups write support.
[rla] Show a warning when resetting password and no security question is set
      (Request #10430).
[mjr] Update jQuery Mobile to version 1.0 Beta 2.
[jan] Update hordeweb theme to match new website layout.

Mail Changes
[mms] Fix UI artifacts when renaming mailboxes in dynamic view (Bug #10533).
[jan] Don't open certain links in HTML messages in the message pane.
[mms] Add ability to toggle hide deleted messages in dynamic view (Request
[mms] Add auto-generated message filter (see RFC 3834).
[mms] Remove non-existent parent mailbox when removing last child mailbox in
      dynamic view (Bug #10495).
[mms] Provide content duration information for audio & video data if that
      information is available (RFC 3803).
[jan] Fix setting sender when redirecting messages via SMTP (Bug #10488).
[mms] Add List-ID information, if available, to auto-reply notification.
[mms] Display information on reply method in standard view, and allow for
      easy method switching, when automatically choosing the reply type.
[mms] Fix generation of Save All attachments link.
[mms] More intelligent quoting of flowed text messages sent in HTML format.
[mms] Browser mailto-handler respects current IMP view mode (Bug #10475).
[mms] Always show image thumbnail previews, if an image conversion utility is
      present on the system.
[mms] More workarounds for broken suhosin extension (Bug #10462).
[mms] Automatically track rownumber updates when selecting messages; fixes
      SHIFT-DEL behavior in the dynamic view.
[mms] Fix contents of sent message when directly sending from spellcheck in
      standard view (Bug #10464).
[mms] Fix namespace auto-detection for non-sane namespace configs (Bug #10447).
[mms] Fix POP3 regression (Bug #10450).
[mms] Forwarded messages no longer treated as an attachment in the UI (Request
[mms] Correctly display submailboxes in dynamic view when new submailbox is
      created before parent mailbox is expanded (Bug #10429).
[mms] Display flag to indicate a mailing list message.
[mms] Immediately update mailbox list when message is deleted and the mailbox
      does not support flags (e.g. POP3) (Bug #10424).
[mjr] Fix notifications not showing while accepting iTips
[mms] Correctly determine page with first/last unseen messages when using
      descending sequence sorting (Bug #9882).
[mms] Deletion works correctly from popup message view if base window is no
      longer available (Bug #9761).
[mms] Fix explicitly applying filters in INBOX in dynamic view (Bug #10291).
[mms] Add 'Edit as New' action for messages (Request #10206).
[mms] Remove 'allow_resume_all' configuration option (Request #10206).
[mms] Add personal contacts search filter.
[mms] Add ability to search all mailboxes (Request #10204).

Address Book Changes
[rla] Turba LDAP Driver now only rewrites changed attributes (Bug #9343).
[mjr] Run attribute values through decode_attribute hook when exporting.
[mjr] Ensure encode_attribute hook is called on imported objects
[mjr] Improve handling of removeUserData.
[mjr] Honor auto_create configuration setting (Bug #10452,
[jan] Don't allow to search binary fields.
[jan] Fix attribute name for assistant phone (Bug #10449).
[jan] Add missing migration script (Bug #10436).
[mjr] Fix issue with synchronizing deleted contacts (Bug #10422).
[jan] Fix searching for duplicates on some databases (Bug #10383).
[mjr] Add and support more attributes by default.

Filters Changes
[jan] Fix disabling of actions by locking preferences (Bug #10455).
[jan] Sort blacklist and whitelist for display instead of for storage.

Calendar Changes
[jan] Fix opening events from agenda view.
[mjr] Always included the current default calendar in the sync_calendars
[mjr] Ensure exception gets start and end times when created from month view
      (Bug #10496)
[jan] Update group permission when changing group down list in basic
      permissions (Bug #10482).
[jan] Fix race condition when editing group permission in basic permission
      screen (Bug #10482).
[mjr] Fix removeUserData API (Bug #10241).
[jan] Fix deleting events with a WebDAV client (Bug #10478).
[jan] Fix fatal error while searching if hitting certain recurring events.
[jan] Fix exporting events with snoozed alarms (Bug #10438).
[jan] Fix deleting resources (Bug #10427)
[jan] Support snoozing alarms with Sundbird/Lightning (Request #7470).
[jan] Import VALARM components from iCalendar 2.0 data (Request #6665).
[jan] Fix exporting all-day events to Funambol clients (Thomas Ilsche
      <>, Bug #10349).
[jan] Fix creating events from dynamic view on Windows (Bug #9916).
[mjr] Fix displaying of freebusy data in dynamic view (,
      Bug #10347).
[mjr] Fix updating attendees (Bug #10411).
[jan] Fix error if Nag is not installed (Bug #10406).

Tagging Changes
[mjr] Fix broken tag cloud queries due to missing GROUP BY fields (Bug #10419)
[mjr] Prevent tagging with empty strings.
[mjr] Enforce that object and type names are always taken as a string (Bug
[mjr] Updated unit tests to new test structure.
[mjr] Prevent tagging with empty tags.

Library Changes

[mjr] Fix syncing daily recurrence types.
[mjr] Support additional GAL fields (Bug #10504).
[mjr] Prevent broken clients from sending incoming changes with initial SYNC
      request (Bug #10461).
[mjr] Fix sending MONTHLY_NTH and YEARLY_NTH recurrence types (Bug# 10416).
[mjr] Fix synchronization loop due to messages being deleted on server then
      attempting a change from the client.
[mjr] Fix bug with certain recurrence types due to erroneously outputting a
      zero as an empty tag (Bug# 10416).
[mjr] Support POOMCONTACTS2 schema in AS 2.5 clients also.
[mjr] Fix sending unnecessary FOLDERSYNC changes.
[mjr] Fix issue with FOLDERSYNC requests that was causing Android clients to
      PING and SYNC the same collection an unlimited number of times.

[jan] Dynamically disable capabilities of Customsql authentication driver if
      queries are empty (Michael Gröne, Request #10510).
[jan] Fix updating users in LDAP while using preauthenticate hooks.
[jan] Add support for resetting passwords to LDAP driver.
[rla] Add bad login blocking and account locking to the base driver.
[rla] Fix SQL driver when using soft_expiration and hard_expiration features.
[rla] No longer enforce lowercase fieldnames.

[mms] Detect broken RAR data so it does not cause an infinite loop.

[jan] Fix generating of URLs if both the webroot and the original URL are full
[mjr] Support additional GAL fields (Bug #10504).
[jan] Allow to pass a configuration array to the LDAP factory.
[mms] Revamp and fix Horde_Registry#removeUserData(); this method should now be
      the sole access point to delete user data for any/all apps (Bug #10241).
[mms] Correctly apply value of $conf['session']['timeout'] to PHP environment.
[mms] Fix cookie timeouts.
[rla] Add locking routines to Horde_Core_Auth_Application.
[rla] Add support for Horde_Auth's new locking feature.
[rla] Display permissions of hidden apps too
[gwr] Do not fail when no basedn is set for the Horde_Kolab_Server
[mms] When reopening sessions, ensure that we don't alter session information
      if the authentication status changed (Bug #10403).
[jan] Use 'ident' option of Horde_Log handlers to prefix log messages (Gonçalo
      Queirós <>, Request #9322).
[jan] Check applications' authValidate() method if present.
[mms] Add Horde_Session::isActive().
[mjr] Add remove button to image fields (Request #9870).

[mms] Encrypted data is already base64 encoded (Bug #10285).

[jan] Fix exporting recurrence end date to iCalendar.

[jan] Add methods to add and drop primary keys (Request #10469).
[gwr] Fix usage of Horde_Exception_Wrapped.
[jan] Fix setting unix socket in PostgreSQL DSN (, Bug
[jan] Fix determination of last insert id on PostgreSQL up to 8.1.
[jan] Fix migrations from primary keys that have not been created with Horde_Db
      in PostgreSQL.
[jan] Fix autoincrementKey sequences not incrementing after manually inserting
      key values in PostgreSQL.
[jan] Fix changeColumn() migration to autoincrementKey if no primary key exists

[gwr] Ensure correct message and code type.
[jan] Don't include backtrace in Horde_Exception_Pear messages.

[mjr] Add remove button to image fields (Request #9870).

[jan] Fix bind for modifying existing LDAP groups.

[mjr] Fix version access (Bug #10425).
[jan] Avoid infinite loop when importing certain vCalendar 1.0/vCard 2.1 data.
[mjr] Fix fetching the version from an Icalendar object (Bug #10411).

[mms] Remove dependency on Auth_SASL.
[mms] Add support for CRAM-SHA1 and CRAM-SHA256 authentication (available in
      Courier SASL library).
[mms] Remove dependency on Auth_SASL for CRAM-MD5 authentication.
[mms] Ignore unknown authentication methods; otherwise, they give false
      positive when authenticating (Bug #10453).
[mms] Fix rare race condition that may cause FETCH requests in the IMAP Socket
      driver to return empty results (Bug #10434).
[mms] Fix typo that prevented deletion of messages on POP3 servers (Bug #10424).
[mms] Fix regression in POP3 Socket driver that caused incorrect parsing of
      server data (Bug #10417).
[mms] Fix OR search if first search element contains more than one search
      criteria (Bug #10404).
[mms] Fix invalid IMAP command being sent if a changedsince search was empty.

[jan] Fix file names for plaintext and imtest authentication drivers.

[gwr] Removed stray kolab-format script which was moved to Horde_Kolab_Cli.
[gwr] Fixed detecting parse errors in subsequent parse attempts.

[gwr] Fix reading the user name.

[gwr] Added a backend that avoids querying LDAP.

[jan] Speed up Horde_Ldap_Search#shiftEntry() on large result sets.

[jan] Add 'ident' option to all handlers (Gonçalo Queirós
      <>, Request #9322).

[mms] Fix parseAddressList() for empty address strings (Bug #10534).
[mms] Fix SMTP error codes/messages (Bug #10498).

[mms] Silence undefined errors when a search key is not found on the server.

[mms] Provide method to return approximate size of parts if it contains base64
      encoded data (Request #9783).
[mms] Support Content-Duration MIME header (RFC 3803).
[mms] MIME body part can not have disposition of 'attachment' (Bug #10458).
[mms] Fix quoted-printable encoding for message parts contained in a multipart
      that do not share the same EOLs as the parent part (Bug #10324).

[jan] Fix setting Courier fonts with font style (PEAR Bug #18550).

[gwr] Accept either d or t IMAP ACL as deletion right.

[mms] Fix identities when default_identity is locked (Bug #10098).

[mjr] Added Horde_Routes_Matcher helper class.

[mjr] Use FQL to obtain event list and add rsvp_status

[mms] Call garbage collection before grabbing list of active sessions.
[mms] Fix obtaining session information from more than one session.

[gwr] Fix usage of Horde_Exception_Wrapped.
[gwr] Fixed support for share parents in the Kolab driver.
[gwr] Fixed support for multiple namespaces of the same type in the Kolab

[jan] Fix logging errors while retrieving server changes.

[jan] Fix renaming and catching errors while reading sizes in SQL driver.
[jan] Fix reading file contents from FTP.

[jan] Fix incorrect syncml:metinf and syncml:devinf URNs (Bug #10229).
[jan] Mark Xml_Wbxml:: methods as static.


[jan] Don't load all shares with requested permissions from the backend if
      $conf['share']['hidden'] is enabled.

Horde Changes
[mjr] Add remove button to image fields (Request #9870).
[mjr] Fix sending unnecessary FOLDERSYNC changes.
[mjr] Fix issue with FOLDERSYNC requests that was causing Android clients to
      PING and SYNC the same collection an unlimited number of times.
[mjr] Use FQL to obtain event list and add rsvp_status.
[cjh] Add mobile maintenance screens.
[jan] Fix exporting multiline attributes to vCard 2.1 and vCalendar 1.0.
[cjh] New log filter for exact level matching (Bryan Alves
[jan] Don't set optional integer fields to 0 when automatically updating
[mjr] ActiveSync policykey is now per user, not per device.
[mjr] Fix recurring event exception handling for ActiveSync.
[mjr] Use AS in column aliases to make PostgreSQL happy (Bug #10346).
[jan] Don't show mobile login page if users are forced to traditional or
      dynamic views (Request #10358).
[mjr] Improve calendar PING for iOS devices.
[mjr] Prevent an ActiveSync sync loop in some fringe cases.
[jan] Update PGP key server list and add SKS pool.

Mail Changes
[mms] Fix to allow search filters to be saved.
[mjr] Fix mouse click handling on mobile view (Bug #10355).
[mms] Ensure correct message charset is use if forward/reply headers contain
      non US-ASCII characters (Bug #10148).
[mms] Select all checkbox in dynamic view can now be toggled.
[mms] Remember vertical splitbar size in dynamic view.
[mms] Workaround IE quirks for compose autocomplete box (Bug #10250).
[mms] Fix resuming HTML drafts for non-reply messages (Bug #10298).
[jan] Fix verifying of inline signed PGP messages (requires Horde_Crypt 1.0.4).
[mms] Fix Shift-N shortcut in dynamic view (Bug #10352).
[mms] Add save message link to dynamic view preview window.
[mms] Correctly quote e-mail names when composing from compose links in the
      dynamic view (Bug #10292).

Address Book Changes
[mjr] Fix obtaining default share via Turba's API (, Bug #10393).
[mjr] Force ActiveSync device reset after sync_books pref is changed
      (Request #10342).

Filters Changes
[mms] Fix creating new mailboxes (Bug #10282).

Calendar Changes
[jan] Display event time in dynamic agenda/search view.
[jan] Improve exporting all-day events to Funambol clients.
[mjr] Fix removing an exception from a recurrence series (Bug # 10365).
[jan] Close session while listing events to speed up parallel loading from
      different calendars.
[jan] Share list of displayed task lists with Nag (requires Nag 3.0.3).
[jan] Don't show import/export link in preferences if using the dynamic view.
[mjr] Force ActiveSync device reset after sync_calendars pref is changed
      (Request #10342).
[jan] Try to work with remote servers even if they don't support a recent
      WebDAV protocol version.
[jan] Support updating attendees from vCalendar 1.0 iTip responses.
[jan] Fix sending invitations to attendees from traditional view.
[jan] Fix organizer attribute when exporting to vCalendar 1.0.
[mjr] Fix issue that prevented synching when no sync_calendar pref was set
      (Bug #10329).


Horde Changes
[mjr] Fix returning shares in the proper order when fetching multiple shares
      by id.
[mjr] Fix incorrect method name in Pop3 Socket driver.
[jan] Don't use CSS cache in mobile interfaces because it breaks jQuery Mobile
[mjr] Fix race conditions caused by broken clients sending an inappropriate
      PING request.
[jan] Fix duplication of objects during synchronization (, Bug
[Jan] Don't allow to click disabled login button (Bug #10267).
[jan] Allow configuration of split read databases for PostgreSQL (Request
[mjr] Honor initial_application setting for mobile view (Bug #10264).
[mjr] Fix issue with initial Android ActiveSync pairing.
[gwr] Support restricting the HTML tidy post processing by the message size
      (Request #10266).
[gwr] Disabled the timeout on the logout token.
[mjr] Fix integer overflow issue in Facebook code (Bug #9889).
[mms] Fix adding users with Cyrsql driver (, Bug #10239).

Mail Changes
[jan] Don't attempt to delete linked attachments monthly if they have been
      disabled (Bug #10166).
[jan] Don't show basic headers twice when showing all headers (Bug #10276).
[jan] Add IMP_Contents#getTree() to return a tree representation of a message's
      MIME parts.
[mms] Fix regression in parsing list reply address (Bug #10258).
[jan] Tick sent-mail checkbox off when selecting sent-mail folder in dynamic
[jan] Keep key navigation active after clicking into a HTML message (Request
[mms] Fix additional regression when flagging all messages in a mailbox
      (Bug #10243).
[mms] Fix "Don't Show" filtering in traditional mailbox view (Bug #10244).

Address Book Changes
[jan] Pass contact object to decode_attribute hook (, Bug
[jan] Complete fix for importing LDIF files (Bug #10139).

Filters Changes
[jan] Add -N parameter to mailbot calls by default (Request #10147).
[jan] Fix notice when using numeric comparisons for spam headers (Bug #10222).
[jan] Respect excluded mail addresses in Maildrop vacation driver (Request
[jan] Fix access to debug handler in Timsieved driver.
[jan] Fix deleting single conditions from a rule (Bug #10253).

Calendar Changes
[jan] Update task due date in interface after dragging a task (Bug #10001).
[jan] Correctly sort events in portal block or widget if only displaying a
      single calendar (Bug #10099).
[mjr] Allow syncing of multiple owner-owned calendars (Request #8734).
[jan] Don't show calendar drop down in event form without delete permissions
      (Bug #10201).
[jan] Don't change event creator when saving events.
[jan] Fetch events immediately after saving remote calendar.

Tasks Changes
[jan] Add Ukrainian translation (Andriy Kopystyansky <>).


[jan] Fix installation script when not using a custom PEAR install.

Horde Changes
[jan] Fix extracting of translation strings in a release.
[rla] Add user-specific admin permissions (Request #9350).
[jan] Don't strip domain from user name in account block.
[jan] Fix account block with empty configuration parameters.

Mail Changes
[mms] Don't strip HTML part of compose message when stripping attachments
      from saved sent-mail message (Bug #10234).
[mms] Fix regression when copying/moving messages into a new mailbox in
      traditional view (Bug #10232).
[mms] Fix regression when flagging all messages in a mailbox (Bug #10224).
[jan] Fix folder links in virtual folders (Bug #10221).
[mms] Show translated name for special mailboxes in sent mail lists (Bug
[mms] Fix regression in filtering mailbox in traditional view (Bug #10213).
[mms] Fix regression in renaming mailboxes in dynamic view (Bug #10207).
[mms] Fix selecting sent-mail mailbox for not empty namespaces (Bug #10090).
[mms] Fix saving expand/collapse state in traditional folders view.
[mms] Update all flag changes in dynamic mode (Bug #10146).
[mms] Fix editing saved searches in dynamic mode (Bug #10189).
[mms] Fix regression in saving sent mail in traditional view (Bug #10193).
[mms] Fix regression in deleting mailboxes in traditional view (Bug #10170).
[mms] Fix currently selected mailbox in folder lists (Bug #10163).
[jan] Don't show button to strip attachments if turned off in the preferences
      (Bug #10154).
[jan] Fix printing from message popup (Bug #10188).
[jan] Fix viewing messages source from message popup (Bug #10190).
[jan] Fix editing saved searches in traditional view (Bug #10184).

Filters Changes
[jan] Fix moving rules to an explicit position (Bug #10172).
[mms] Fix storage backend conversion script.

Calendar Changes
[jan] Fix holidays being off with certain system timezones (Bug #9989).
[jan] Only highlight days in the mini calendar that are currently displayed
      (Bug #10048).
[jan] Fix advanced search with empty search criteria (Bug #10038).
[jan] Add header for timeobjects calendars.
[jan] Fix date picker in advanced search form (Bug #10039).
[mjr] Remove visible exceptions when deleting recurring events (Bug #10013).
[mjr] Fix issue causing listTimeObject calendars to not appear (Bug #10012).


[jan] Allow to overwrite default configurations.
[jan] Add installation script.

Horde Changes
[gwr] Added a script for exporting/importing preferences from/to a backend.
[mms] Fix regression with UTF7-IMAP encoding of non-ascii folder names (Bug
[mms] Allow numbers to be zero in certain preferences (Bug #10120).
[mms] Fix running Horde login tasks (Bug #9767).
[mms] Fix authenticating as several users in the same request (Bug #10027).
[mms] Fix colorpicker on categories preferences screen (Bug #10118).
[jan] Update Spanish translation.
[jan] Update Slovak translation.
[mjr] Fix Metar portal block.
[gwr] Add support for the Kolab IMAP based preferences backend.
[mms] Complete fix for issue causing slow syncs only (Bug #10008).

Mail Changes
[jan] Fix loading message previews from search results (Bug #10152).
[mms] Fix sending messages with linked attachments (Bug #10125).
[mms] Handle response codes/errors returned from POP3 servers.
[mms] Fix POP3 regressions.
[mms] Workaround broken suhosin extension to allow search mailboxes (Request

Address Book Changes
[rla] Support multiple address books in search portal block (Request #8786).
[mjr] Fix importing LDIF files (Bug #10139).
[mjr] Fix issue introduced in 3.0.1 that caused contact images to not display
      (Bug #10050).
[jan] Fix editing of multiple contacts at once (Bug #10085).
[jan] Enable homeAdress and workAdress composite fields by default.


Horde Changes
[jan] Add button to update all configurations with default values at once.
[jan] Update DataTree conversion scripts for Horde 4.
[jan] Fix rendering of DataTree browse tree.
[mjr] Fix issue with deleting identities (Bug #9997).
[mjr] Fix issue causing credentials to be lost when accessing the API during
      ActiveSync requests (Bug #9733).
[jan] Store preferences for guests in the session.
[jan] SECURITY: Fix permission checks of guest users on system shares.
[mms] SECURITY: Fix deletion of unwanted HTML nodes in XSS filter.
[mms] Fix authentication failure when TOS is not accepted.
[jan] Don't show IMP compose link if user doesn't have permissions to IMP (Bug
[mms] Fix issue causing slow syncs only in SyncML (Bug #10008).
[jan] Fix adding categories.
[jan] Fix listing users in Customsql driver (Bug #9963).
[jan] Fix calculation of last password change in LDAP account portal block (Bug
[jan] Don't check for outdated DB schemas if database support is disabled (Bug
[mjr] Fix editing settings of fixed portal blocks (Bug #9910).
[mjr] Fix the blockTitle and blockContent API methods.
[jan] Fix creating folders with SQL VFS driver (Bug #9894).
[jan] Fix LDAP parameters of account portal block (Klaus Steinberger, Bug
[jan] Fix migration detection on Windows.
[mjr] Correctly sanitize DSN when using custom cyrus auth driver (Bug #9879).
[mjr] Fix some display issues when geocoding with HordeMap (Bug #9883).
[mms] Don't load sidebar content if not expanded.
[jan] Fix deleting groups.
[jan] Fix adding new groups (Bug #9881).
[jan] Fix displaying the Facebook preference group.
[mms] Add appinitialized hook.
[cjh] Fix cyrsql configuration, rename cyrus host and port parameters to not
      clash with Horde_Db parameters (Bug #9864).
[cjh] Fix signups, and update style on signup and reset password pages to
      match the login page (Bug #9856, partially from Ian Roth
[cjh] Show an unknown app icon rather than a broken image if an application
      doesn't have an icon (Bug #9867).
[jan] Fix setting incorrect database charset in PDO drivers.
[mms] Add pushapp_post hook.
[jan] Fix application-specific permission checks (Bug #9786).
[jan] Fix resetting passwords (Vilius Sumskas <>, Bug #9800).
[jan] Fix Cyrsql authentication driver (Vilius Sumskas <>, Bug
[mjr] Fix ActiveSync provisioning.
[mjr] Fix for broken Nokia MfE clients (Bug #9757).
[jan] Delete object mappings too when deleting SyncML anchors (Request #9377).
[jan] Delay sidebar creation if the sidebar is generated through JavaScript.
[jan] Fix incorrect lowercasing of objectClasses in LDAP groups driver.
[jan] Fix fatal error in desktop notifications (Bug #9727).
[jan] Rename all scripts in bin/ to be prefixed with horde- and installed in
      PEAR's bin_dir (Request #9647).
[jan] Don't throw exception when setting port number while using localhost in
      MySQL configuration (Bug #9738).
[jan] Fix building LDAP filter for groups from configuration (Bug #9739).
[jan] Fix loading of Horde's vhost conf.php file (Bug #9704).
[jan] Fix OpenOffice MIME viewer.
[jan] Fire access keys on hidden elements in Internet Explorer (Bug #8057).
[jan] Don't fire access keys twice in Chrome browsers.
[jan] Fix JavaScript date calculations across DST boundaries.
[jan] Sort applications in preference menu by name.
[jan] Add translations for file upload error messages.
[mms] Fix identities pref UI when default_identity is locked (Bug #9701).
[mms] Added Horde::debug().
[jan] Update installation and upgrade instructions.
[jan] Fix converting identities with non-ascii characters to new format.
[jan] Fix passing arguments to sendmail binary (Gonçalo Queirós, Bug #9693).
[mjr] Service_Facebook refactored for OAuth2 authentication (Bug #9122).
[mjr] IMSP drivers refactored for Horde 4.
[gwr] Allow disabling applications for administrators.
[jan] Don't show sub-permissions for adding that exist already.
[jan] Fix listing more than one sub-permission (Bug #9671).
[jan] Fix calendar synchronization with certain Nokia phones (Bug #9646).
[jan] Catch fatal errors about missing tables during initial configuration.
[mms] Fix client-side IMAP sorting using envelope data.
[mms] Workaround PHP < 5.2.6 (broken stream handling) (Bug #9644).
[mjr] Fix updating schema for individual libraries.
[mjr] Improved control over which application view to load.
[jan] Find translateable strings in configuration files.
[mms] Fix clearing expanded state for javascript trees (Bug #9659).
[jan] Only show advanced preferences link if there are some.
[mms] Fix updates for refreshing Blocks (Bug #9655).
[mjr] Fix viewing applications with no mobile view from mobile devices.
[jan] Fix error when not using a Group backend. (Bug #9642).
[jan] Provide default configuration files instead of .dist versions.
[jan] Add a new Share SQL driver with better performance.
[cjh] Drop Log SQL driver.
[mms] Update prototypejs to v1.7.
[mms] Add theme caching.
[mms] Add hook to allow browser capabilities to be modified.
[jan] Add a configuration switch for automatic creation of default shares.
[cjh] Move from Net_DNS to Net_DNS2.
[jan] Translations for the framework packages are now bundled with those
[bak] Remove LDAP driver from Horde_SessionHandler
[jan] Require mandatory UTF-8 support for both servers and clients.
[jan] Renamed Setup to Configuration and Options to Preferences.
[mms] Moved sidebar code out of block/portal code (Request #9160).
[cjh] Remove fckeditor, standardizing on ckeditor.
[jan] Move all translations from po/ to locale/ and use short locale
      identifiers where possible.
[jan] Remove frameset.
[jan] Remove dhtmlHistory library.
[mms] Removed support for krb5 authentication driver.
[jan] Allow to specify the URL parameter name for the alternate login setting.
[mms] Remove reliance on PEAR Mail library.
[jan] Send alarm emails again if the alarm has changed (Bug #8717).
[mms] Add advanced preferences options screen.
[mms] Complete rewrite of preferences UI display.
[mjr] Horde_Image can now act as an Iterator for multi-page images.
[mms] Remove Horde_Cipher library.
[mms] Add 'cssfiles' hook to add custom CSS files to a page.
[jan] Add configuration to not automatically show all available shares.
[jan] Add configuration to disallow world permissions for user shares.
[jan] Store alarm dates in UTC (Bug #8381).
[mms] Add abstracted AJAX interface (Request #4561).
[mms] Update scriptaculous to v1.8.3.
[mjr] Add Horde_Image_Exif (ported from Ansel) and add a exiftool driver.
[mjr] Horde_Image now has a native Imagick driver (removed proxy code).
[mms] All Horde login/authentication handled by single login page.
[mms] Move imple processing to a Horde service.
[mms] Refactor Maintenance:: -> Horde_LoginTasks::.
[mms] In Postgres, horde_prefs table now stores data in BYTEA instead of
      TEXT (Bug #8130).
[mms] Improved caching of Registry data significantly reduces session sizes
      and total session storage requirements (Request #8024).
[mms] IMAP auth driver now uses Horde_Imap_Client library.
[mms] Use Gnumeric package to render MS Excel files.
[mms] Use AbiWord package to render MS Word files.
[cjh] Remove sapdb session handler backend.
[jan] Add share locking (Alfonso Marín Marín <>).
[cjh] Remove javascript popup alarms.
[cjh] Update the Auth_passwd driver's add/update/remove user
      implementations (Bug #7810).
[cjh] Add a Horde_Routes dispatcher for Rampage applications.
[mjr] Fix a possible infinite loop with certain recurring events in Horde_Date.
[jan] Use DateTime internally in Horde_Date.

Mail Changes
[jan] Add missing files to package.
[mms] Add quick flag filtering to traditional view.
[mms] Fix viewing linked attachments (Bug #9972).
[mms] Add support for the content-id access type of message/external-body.
[mms] Consolidate IMAP error handling code in IMP_Imap_Exception.
[mms] Use translated namespace name if available.
[mms] Fix resuming reply drafts in HTML mode (Bug #9928).
[mms] Fix updating flags/logs on original messages after resuming from draft.
[mms] Fix flagging messages in search mailboxes in dynamic view.
[mms] Don't attempt to poll non-IMAP mailboxes (Bug #9896).
[mms] Fix deleting attachments from compose message in dynamic view (Bug
[mms] Newmail portal block can now be configured to auto-update.
[mms] Fix deleteMessages and flagMessages API calls (Bug #9888).
[mms] More intelligent polling in dynamic view (Request #9808).
[mms] Fix spurious viewport loading in rare situations (Bug #9768).
[mms] Show human readable message in multipart/report parts in the richest
      format possible (Bug #9873).
[mms] Fix unneeded body part downloads in alternative parts (Bug #9862).
[mms] Fix importing PGP private keys.
[mms] More intelligent part naming if name is not specified in the message
      (Request #9853).
[jan] Avoid double escaping of folder names in sent-mail drop down list.
[jan] Fix translation of special folders on certain IMAP servers.
[jan] Fix display of status icons in traditional view (Bug #9844).
[mms] Fix displaying all message parts in standard view (Bug #9827).
[mms] Allow .eml files to be imported into a mailbox (Request #9827).
[mms] Fix vertical layout resize in dynamic view (Bug #9834).
[mms] Fix link for filters menu item (Bug #9831).
[mms] Fix composing messages in mobile view.
[mms] IMP will refuse to work with POP3 servers that don't support UIDL.
[mms] Many POP3 fixes.
[jan] Notify about new mails in any Horde application.
[mms] New mail notifications now handled by the Horde Notification system
      (Request #9751).
[mms] Fix resuming messages with attachments (Bug #9780).
[mms] Fix javascript actions in standard view in IE 7/8 (Bugs #9801, 9809).
[jan] Fix application-specific permission checks (Bug #9786).
[mms] Fix printing of message parts in IE, regardless of local user settings
      (Bug #9756).
[mms] Fix IMP_Maillog regression from RC2 (Bug #9763).
[mms] Fix honoring default encryption option in dynamic view.
[jan] Show full alarm notifications in dynamic view (Request #9748).
[jan] Fix saving S/MIME certs to address book.
[mms] Support importing of compressed mailbox files if the zip extension is
      not available.
[mms] Fix max_folders permission (Bug #9741).
[jan] Rename all scripts in bin/ to be prefixed with imp- (Request #9647).
[jan] Correctly render notifications with embedded HTML in dynamic view
      (Bug #9729).
[mms] Fix moving to new mailbox, tasklist, and notepad in traditional view
      (Bug #9732).
[jan] Add left and right keys as aliases for up and down keys in dynamic view.
[mms] Add mailbox sorting and select all messages to vertical layout in the
      dynamic view (Request #9708).
[jan] Fix expansion of quoted sections in thread view.
[jan] Fix message previews in traditional view (Bug #9695).
[jan] Support importing of compressed mailbox files.
[jan] Fix upgrading of search_fields preference.
[jan] Fix key navigation in traditional mailbox view.
[mms] Don't cache FETCH data for the Spam and Trash mailboxes.
[mms] All views now honor 'initial_page' preference.
[mms] Fix loading virtual folder as initial page in standard view (Bug #9696).
[jan] Update installation and upgrade instructions.
[mms] Fix upgrading virtual folders from IMP 4 (Bug #9692).
[mms] Fix editing the size search criteria.
[mms] Optimize importing messages from mbox file.
[mms] Fix deletion from Virtual Inbox in standard view (Bug #9686).
[mms] Fix loading virtual folders from drop-down folder list (Bug #9687).
[mms] Fix thread sort by newest messages first (Bug #9685).
[mms] Add import/download mailbox ability to dynamic view.
[jan] Remove application tabs from AJAX interface (Bug #9679).
[mms] Move all portal rendering code to Horde.
[mms] Fix flag display in message list in traditional view (Bug #9673).
[mms] Fix purging deleted messages in dynamic view (Bug #9627).
[mms] Fix display of non-IMAP mailbox elements in folder lists (Bug #9650).
[mms] Fix print part display.
[jan] Fix listing users through IMP API.
[jan] Add configuration whether to load other applications in an IFRAME.
[mms] Indicate negative rights in ACL display (Request #4488).
[jan] Provide default configuration files instead of .dist versions.
[mms] Add priority and request read receipt information to saved drafts
      (Request #9457).
[mms] Added example in pre_sent hook to do forgotten attachment checking at
      send time (Request #9028).
[mms] Add subfolder searching (subfolders dynamically determined at time of
[mms] Refactor inline message image blocking to operate on all messages, not
      just HTML messages.
[mms] Add attachment message filter.
[mms] Add post_spam hook called after reporting spam/ham (Request #6455).
[mms] Implement stationery support in DIMP.
[mms] Add preference to control displayed content for multipart/alternative
      parts (Request #6711).
[mms] Allow multiple messages to be forwarded in a single outgoing message
      (DIMP) (Request #9132).
[mms] Add personal recipient message filter (Request #8659).
[mms] Add mailing list message filter (Request #8659).
[mms] Add ability to define search criteria to be applied to any mailbox
      (Request #8659).
[mms] Use recipient search (To/Cc/Bcc) by default instead of To search.
[mms] Virtual folders now editable via a preferences group.
[mms] Search code has been entirely rewritten.
[jan] Rename servers.php to backends.php.
[mms] Use alternate text part to generate reply/forward text when switching
      compose modes if user has not altered message text (DIMP).
[mms] Improved login error reporting/logging in IMP (Request #9211).
[mms] Add hook to skip MDN prompt based on content of message headers.
[mms] Allow expand/collapse of folders in MIMP.
[mms] Use single, unified mailbox cache.
[mms] Add support for setting/retrieving special-use mailboxes from IMAP
[mms] Add preference to control if we check for recipient PGP public keys
      when replying (Request #7962).
[mms] Automatically determine view based on browser and 'dynamic_view'
      preference (Request #9159).
[mms] Add preference to define default font family/size for the HTML compose
[mms] Honor nav_expanded preference (DIMP).
[mms] Allow admin to define list of safe e-mail addresses that will not
      experience HTML image blocking (Request #9129).
[mms] HTML compose editor uses Horde language for UI (Request #9084;
[mms] Add config option to disable multipart/related conversions
      (Request #9099).
[mms] Sentmail SQL driver now supports split read/write operation.
[mms] Pass compose message data to mailer backend via stream; much more
      efficient, especially with larger messages (Request #8909).
[mms] Add strip attachments support in DIMP.
[mms] Add PGP & S/MIME compose support to DIMP.
[mms] Check for incorrect identity on compose if a single recipient address
      is tied to a different identity than the sending identity.
[mms] Use CATENATE (RFC 4469), if available, to strip MIME parts (Request
[mms] Add preference to show flags created by other MUAs (Request #8882).
[mms] Added HTML signature support (Request #1406).
[mms] Simplified date sorting display (Request #8936).
[mms] Properly redirect messages pursuant to RFC 5322 [3.6.6].
[mms] Add redirect message capability to DIMP.
[mms] Add ability to add attachments to composed messages for advanced mobile
      browsers - disabled by default (MIMP).
[mms] Add checkbox interface to mailbox page for advanced mobile browsers -
      disabled by default (MIMP).
[mms] Add preference to allow viewing of all inline parts by default (MIMP).
[mms] Add hook to alter composed message details before sending.
[mms] DIMP now honors the 'allow_resume_all' configuration option.
[mms] Remove 'sort_limit' configuration option.
[mms] Mobile view no longer supports WML output.
[jan] Implement iTip viewer actions in DIMP (Request #8061).
[mms] Display alarm notifications in DIMP (Request #6232).
[mms] Auto-determine charset for text attachments (Bug #8858).
[mms] Remove IE 6 (and below) and Safari 2 (and below) support for DIMP.
[mms] Add chance to switch between forward options on compose page when using
      auto-forward (DIMP).
[mms] Add chance to switch reply type to single recipient on compose page when
      using auto-reply (DIMP).
[mms] Fix printing multipage HTML messages in Mozilla browsers (Bug #8708).
[mms] Provide command line script to obtain IMAP caching statistics.
[mms] Catch flag changes from other IMAP clients when refreshing if CONDSTORE
      is available on the IMAP server (DIMP).
[mms] Improved forwarding options.
[mms] Add support for LIST-STATUS IMAP extension; provides more efficient
      mailbox polling.
[mms] Add hook to allow determination of compose attachments MIME type.
[mms] Move AJAX processing framework to Horde (Request #4561).
[mms] If selected message(s) disappear from mailbox, gracefully handle in the
      user interface (DIMP).
[mms] Only update search mailbox on explicit user action (Request #7297)
[mms] Add auto-save draft to IMP (Request #7656).
[mms] Add keyboard shortcut to move to next unseen message (Request #8223).
[mms] Add hook to dynamically change mailbox label (Request #6734).
[mms] Improved address expansion in MIMP.
[mms] Load folders on-demand in sidebar (DIMP).
[mms] Add priority setting to DIMP.
[mms] Simplify and improve priority header generation/display.
[mms] Add Face: header support to IMP.
[mms] Add splitbar to resize sidebar in DIMP.
[mms] Use LIST-EXTENDED IMAP extension (RFC 5258), if available, to get
      subscribed mailbox information.
[mms] Split ham/spam reporting actions into two separate preferences (Request
[mms] When clicking on base reply button, auto-determine the best way to
      reply to a message based on the header information.
[mms] Add vertical-pane preview layout to DIMP.
[mms] Wrap content-related MIME parts in a border when viewing inline to
      indicate their relationship.
[mms] For drafts, save the original message index for forwards/replies so when
      eventually sent, log information can be updated (Request #8663).
[mms] Upgrade RTE to CKEditor v3.
[mms] Sort by display name for to/from fields if supported on IMAP server.
[mms] Add ability to quickly filter by flags in DIMP.
[mms] Add ability to select sent-mail mailbox when composing in DIMP.
[mms] Add ability to save drafts in MIMP.
[mms] Add spam reporting in MIMP.
[mms] Added contextmenu support in DIMP for Opera.
[mms] Display HTML parts inline by using IFRAMEs (based on code by; Request #8592).
[mms] Add ability to search by relative date intervals (Request #3438).
[mms] Add advanced search query interface to DIMP (Request #6875).
[mms] Add ability to search by a custom defined header (Request #6875).
[mms] Improved advanced search query interface (Request #6875).
[mms] More intelligent ordering of autocomplete search results.
[mms] Add a mini search query interface to IMP (Request #6875).
[mms] Make DIMP quicksearch field selection persist across sessions.
[mms] Move JS/CSS caching to Horde framework.
[mms] Add simple search function to MIMP.
[mms] DIMP now honors the 'mailbox_start' preference.
[mms] Logins now handled by Horde login handler.
[mms] When generating and sending compressed ZIP data, use server-side temp
      streams to minimize memory usage.
[mms] Decode bodypart data on server if possible (RFC 3516).
[mms] Use PHP temporary streams when working with message body data to reduce
      memory usage (Request #3359).
[mms] Add ability to expand/collapse all folders in DIMP.
[mms] Add Folder Options menu to DIMP.
[mms] Add save link to full message display in DIMP.
[mms] Allow on-demand filter application (if filter backend supports) in DIMP.
[mms] Add full IMAP subscription support to DIMP (Request #8059).
[mms] Add message information to preview screen (DIMP).
[mms] Add Alt + PGUP/PGDN shortcut to scroll through preview message (DIMP).
[jan] Show possible event conflicts in iTip viewer (Request #3991, Gonçalo
      Queirós <>).
[mms] Move subfolders of special folders to lower folder display tree in
      DIMP (Bug #8127).
[mms] Simplify quicksearch UI in DIMP.
[mms] Improve notification display (DIMP).
[mms] Use mailbox names in folder confirmation actions (DIMP) (Request #8162).
[mms] Optimize viewport row insertion/updating (DIMP).
[mms] Add support for defining and displaying custom IMAP flags and for
      configuring the highlighting of system flags (Request #937).
[mms] Move attachment display on mailbox page from hook to preference.
[mms] Always process priority/precedence headers.
[mms] Support $MDNSent keyword (RFC 3503) on IMAP server.
[mms] Link URLs/e-mails in subjects in message views (Request #7487).
[mms] Implement spellcheck on send in DIMP.
[mms] Sanity check - don't do message operations reliant on UID list if
      UIDVALIDITY of mailbox has changed.
[mms] Remember splitbar position on login/refresh (DIMP).
[mms] Disable advanced functions if using POP3 driver (caching, on-demand
      filtering, searching, sorting) because it is too resource intensive.
[mms] Use native PHP code for POP3 driver (c-client no longer required).
[mms] IMP code now uses Exceptions instead of PEAR_Errors.
[mms] Fix wrong charset on filenames when stripping attachments (Bug #7220).
[mms] Use effects queue to prevent issues with users clicking on effects
      elements too quickly.
[mms] Trim leading/trailing whitespace from reply/forwarded text.
[mms] Add full IMAP message flagging capabilities to DIMP.
[mms] Decode IDN (RFC 3490) names in addresses (Request #5836).
[mms] Add ability to download attachments in MIMP (Request #2925).
[mms] Revamp JS event handling model.
[mms] ESC in DIMP search box now clears the search (Request #7196).
[mms] Enhancements to status icon view (Request #7519) (DIMP).
[mms] If the browser supports it, embed image data in cached CSS files via
      data URLs (Request #7174).
[mms] Translate special folder names (Request #7545).
[mms] Make autocompletion threshold parameters configurable (Request #7322).
[mms] Add compose attachment preview to DIMP.
[mms] Add 'unit' parameter for quota display (Carlos Pires <>,
      Request #7044).
[mms] Add support for '$Forwarded' IMAP keyword (Request #3402).
[mms] Attachments in a signed message now can be downloaded via the
      download all attachments link (Bug #2939).
[mms] Remember preview toggle header preference (Request #7264) (DIMP).
[mms] Fix stripping attachments when saving to sent-mail folder when attaching
      the PGP public key (Bug #4221).
[mms] Removed Special Characters menu.
[mms] Add 'undelete' to Other Actions menu (Bug #7496) (DIMP).
[mms] All PGP & S/MIME functions now work in DIMP (Bug #5388).
[mms] Encrypted bodytext now appears when replying/forwarding a message
      (Request #1345).
[mms] When deleting/emptying a folder, display message count (Request #7424).
[mms] No longer need HTTP_Request - use Horde_Http_Client instead.
[mms] Use Horde_Imap_Client as the IMAP library in IMP.
[mms] DIMP and MIMP have been moved into IMP.
[mms] Allow all parts in a message to be displayed (Bug #1866).
[jan] Re-add access keys (DIMP).
[mms] Quota template has been moved inside of base include file (DIMP).
[mms] Added an alerts log (Request #7173) (DIMP).
[mms] Added support to access IMP's Virtual Folders (DIMP).
[mms] Shift-drag for messages will copy instead of move (DIMP).
[mms] Remove support for Xinha as GUI HTML editor.
[mms] Strip extra 'Fwd' and 'Re' cruft from subject line when replying to or
      forwarding a message.
[mms] Don't send server requests when autocompleting addresses when possible.
[mms] Added readonly mailbox and disable compose hooks.
[mms] Saving draft on session expiration now handled via VFS.
[mms] Add preference to delete draft on resume & send.

Address Book Changes
[jan] Fix exporting department attribute over ActiveSync.
[mjr] Fix adding contacts with a category selected.
[jan] Fix LDAP schema checking (Bug #9826).
[jan] Fix creating temporary files with open_basedir restrictions.
[mjr] Fix importing objects with categories (Bug #9841).
[mjr] Fix merging duplicate contacts (Bug #9828).
[mjr] Allow unsetting the GAL and Client Address Book settings (Bug #9843).
[mjr] Fix deletion of virtual address books (Bug #9779).
[jan] Fix saving searches to virtual address books (Bug #9776).
[mjr] Datatree share to SQL upgrade script refactored for Horde 4.
[jan] Move all executable scripts to bin/ and prefix with turba-.
[jan] Add fields to all addresses if multiple passed to addField() API method
      (Request #3482).
[mjr] Fix issue that caused the inability to preview contact images while
      uploading (Bug #9702).
[jan] Update installation and upgrade instructions.
[gwr] Adapted the Kolab driver to Horde 4.
[mjr] Fix issue that caused erroneous file listings for objects in sources
      without a __uid value.
[cjh] Fix storing of binary fields.
[mjr] Fix/refactor IMSP driver.
[mjr] Fix the listTimeObjects API for shared sources (Bug #9649).
[jan] Fix importing contacts with SyncML (Simon Bühler, Bug #9641).
[jan] Provide default configuration files instead of .dist versions.
[jan] Create a default address book if the user doesn't own any yet.
[jan] Rename sources.php to backends.php.
[mjr] If default addressbook is not browsable, try one from the addressbook pref
      (Request: 6536).
[jan] Add duplicate search and merging.
[mjr] The listTimeObjects API now returns categories for each source
      individually instead of returning only the categories available
      (Request #8504).

Filters Changes
[mms] Fix folder selection (Bug #9907).
[mms] Fix filtering using the IMAP driver (Bug #9859).
[jan] Fix application-specific permission checks (Bug #9786).
[jan] Correctly escape vacation subjects with quote characters in Maildrop
      driver (Bug #9156).
[jan] Catch all PEAR errors in Sieve driver.
[jan] Allow script drivers to provide additional scripts to upload (Bug #8110).
[jan] Change default Sieve port to 4190 (Request #9791).
[jan] Fix reading default forward rule from preferences.
[jan] Fix removing flags with Sieve driver (Vilius Sumskas <>,
      Bug #9785).
[mjr] Datatree share to SQL upgrade script refactored for Horde 4.
[jan] Fix updating forward rules in SQL driver (Bug #9699).
[jan] Update installation and upgrade instructions.
[jan] Fix instantiation of VFS transport driver (Bug #9605).
[jan] Fix moving rules with the SQL driver (Bug #9672).
[jan] Fix creating new rules with PostgreSQL (Bug #9638).
[jan] Provide default configuration files instead of .dist versions.
[jan] Rename 'driver' configuration and classes to 'transport' to avoid
      confusion with script and storage drivers.
[mms] Use IMP API for IMAP actions.
[mms] Convert to Horde 4 standards.

Calendar Changes
[jan] Don't show event edit links if user doesn't have edit permissions on any
[jan] Fix parsing of recurrence end date in dynamic view (Bug #10025).
[jan] Fix displaying of new tasks in new task lists.
[jan] Fix displaying colors of task lists.
[jan] Delete tasks from tasks view when deleting tasks lists.
[jan] Don't export multi-day events as multiple events to iCalendar data (Bug
[jan] Fix dragging tasks in the dynamic view.
[mjr] Fix calendar embedding.
[jan] Don't store all task lists in the session.
[jan] Fix new task lists not showing up until next login (Bug #9814).
[mjr] Fix broken event alarm links in sidebar (Bug #9897).
[mjr] Fix drag/drop editing of recurring events (Bug #9880).
[jan] Fix undefined function on Windows (Bug #9916).
[jan] Support adding and editing of CalDAV events in dynamic view (Bug #9865).
[mjr] Allow migrations to complete despite of missing shares.
[jan] Remove debug code in Ajax library (Bug #9818).
[jan] Fix application-specific permission checks (Bug #9786).
[jan] Fix fatal error when using the max_events permission (Bug #9784).
[mjr] Datatree share to SQL upgrade script refactored for Horde 4.
[mjr] Add migration for mysql specific geospatial fields (Bug #9758).
[jan] Set default alarm in dynamic view (Bug #9752).
[jan] Move all executable scripts to bin/ and prefix with kronolith-.
[jan] Fix javascript error when viewing events with desktop notifications
      (Bug #9727).
[jan] Update installation and upgrade instructions.
[jan] Fix custom event alarm settings in traditional view (Bug #9154).
[jan] Only load external events in IFRAME if configured.
[jan] Fix retrieving event UIDs without date limit (Simon Bühler, Bug #9651).
[jan] Fix saving display status of other applications' calendars (Bug #9636).
[mjr] Add migration for converting existing event categories to tags.
[jan] Add configuration whether to load other applications in an IFRAME.
[jan] Provide default configuration files instead of .dist versions.
[jan] Send a subscription link with the notification about shared
      calendars if necessary.
[jan] Default calendars no longer have the user name as the ID.
[jan] Create a default calendar if the user doesn't own any yet.
[jan] Add CalDAV client support (Request #8525).
[jan] Send agenda emails with HTML part and convert to Horde_View.
[mjr] More complete handling of recurring event exceptions when dealing with the
      iCalendar format (Request #9091).
[jan] Add remote calendars to the possible list of calendars for free/busy
[jan] Send alarm and iTip notifications with HTML part and convert to
[jan] Add option to notify users about calendar permission changes.
[mjr] listTimeObject calendars are now viewable independently in the calendar
      portal blocks (Request #8530).
[mjr] Recurring event exceptions are now indicated as such in the UI.
[mjr] Deleting a recurring event now also deletes all exceptions to that event.
[mjr] Add support for inline maps to the Ajax interface.
[jan] Add preference to limit the events per day in the month view.
[jan] Add system calendars (Request #2059).
[jan] Add URL field to events.
[jan] Add task management capabilities to the Ajax interface.
[jan] Manage holidays like any other calendar driver.
[mjr] Add resource scheduling.
[jan] Integrate tasks into Ajax interface (Gonçalo Queirós
[mjr] Extend listTimeObjects API to include optional links and icons.
[jan] Allow searching of any type of calendar and improve searching of
      recurring events.
[cjh] With only SHOW permissions, display event titles as "busy".
[mjr] Replace categories and keywords by tags.
[jan] Set colors per calendar (Request #7480).
[jan] Add individual notification methods for single events (Alfonso Marín
      Marín <>).
[jan] Add Ajax interface.
[jan] Store events in UTC and convert to the user's timezone on the fly.
[jan] Remove alarm reminder code.
[jan] Change listEvents API method to return keys as dates instead of

Tasks Changes
[jan] Fix reversed logic of displaying sub-task tree icons depending on the
      text direction (Bug #10033).
[jan] Fix encoding of non-ascii characters in parent task drop-down.
[mjr] Fix editing tasklists (Bug #9965).
[jan] Fix application-specific permission checks (Bug #9786).
[mjr] Datatree share to SQL upgrade script refactored for Horde 4.
[jan] Fix creating new tasks through WebDAV (Bug #9675).
[jan] Move all executable scripts to bin/ and prefix with nag-.
[jan] Update installation and upgrade instructions.
[gwr] Adapted the Kolab driver to Horde 4.
[mjr] Fix saving tasks via PUT method.
[mjr] Fix deleting task lists.
[mjr] Fix hiding the External prefs group (Bug #9643).
[jan] Provide default configuration files instead of .dist versions.
[jan] Send alarm notifications with HTML part and convert to Horde_View.
[jan] Default task lists no longer have the user name as the ID.
[jan] Create a default task list if the user doesn't own any yet.
[jan] Add start date to possible colums in task list (Joel Smith
      <>, Request #9083).
[jan] Add system task lists (Request #2059).
[jan] Set colors per task list (Request #7480).
[cjh] Quick Add support: there is a javascript UI element for quickly adding
      tasks, and an API method (tasks/quickAdd) that provides the same
[jan] Add individual notification methods for single tasks (Alfonso Marín
      Marín <>).

Notes Changes
[jan] Fix generating tooltip previews of encrypted notes.
[jan] Fix application-specific permission checks (Bug #9786).
[mjr] Datatree share to SQL upgrade script refactored for Horde 4.
[mjr] Default sorting criteria by creation date (Bug #7332).
[jan] Move all executable scripts to bin/ and prefix with mnemo-.
[jan] Update installation and upgrade instructions.
[gwr] Adapted the Kolab driver to Horde 4.
[jan] Fix PDF generation.
[jan] Fix encrypting and decrypting of notes.
[jan] Provide default configuration files instead of .dist versions.
[jan] Default notepads no longer have the user name as the ID.
[jan] Create a default notepad if the user doesn't own any yet.
[jan] Try to create ISO-8859-1 encoded PDFs if this matches the user's language.
[jan] Add script to convert notes to UTF-8 in the backend.


[jan] Add holiday drivers for Australia, Croatia, Finland, Portugal, San
      Marino, and Spain.

Horde Changes
[jan] Convert charset of group names in SQL driver (Bug #9611).
[jan] Fix deleting of SyncML anchors if PHP short_open_tag is off (Bug #9349).
[jan] Add an experimental new Share SQL driver with better performance.
[jan] Fix integer overflow in ASN.1 parser for S/MIME messages.
[jan] Fix splitread database usage in VFS (Bug #9467).
[jan] Fix invalidating permission cache in SQL driver (Bug #9392).

Mail Changes
[jan] Don't submit the action form when reloading messages with iTip
      attachments (Bug #9502).

Dynamic Mail Changes
[jan] Add Czech translation (Matej Hašuľ <>).

Mobile Mail Changes
[jan] Add Czech translation (Matej Hašuľ <>).

Address Book Changes
[mjr] Fix issue that caused erroneous file listings for objects in sources
      without a __uid value.
[jan] Allow to export photo/logo fields to vCard without MIME type.
[jan] Support X-EPOCSECONDNAME fields of Nokia phones.
[jan] Add upgrade scripts for next-generation SQL share driver.
[jan] Fix splitting up names when exporting to N properties of vCards.
[jan] Only set the encoding parameter for binary data in vCards, if data is not
      empty (Bug #9413).
[jan] Fix searching for fields matching an email address if using 'emails'
      attribute instead of 'email' (Bug #9472).
[jan] Use personal address books first if determining the default one (Valentin
      Vidic, Request #9367).
[jan] Use name format preference not only for paging, but for sorting too
      (Request #8806).
[jan] Fix photo corruption when exporting to vCard 3.0 (Bug #9100).

Filters Changes
[mms] Fix encoding of vacation message in maildrop driver (Bug #9532).
[jan] Add upgrade scripts for next-generation SQL share driver.

Calendar Changes
[jan] Add upgrade scripts for next-generation SQL share driver.
[jan] Export recurrence exceptions in a more portable way.

Tasks Changes
[jan] Add upgrade scripts for next-generation SQL share driver.

Notes Changes
[jan] Add upgrade scripts for next-generation SQL share driver.


Horde Changes
[mms] SECURITY: Fix XSS when viewing details of a vCard (Bug #9357).
[jan] Fix exporting recurrence exceptions to vCalendar 1.0.
[jan] Skip event status synchronization with Outlook, which is broken.
[jan] Don't send SIF data to recent Funambol clients, unless requested.
[jan] Log all queries and errors by the history library.


[jan] Add holiday drivers for Italy and Japan.

Horde Changes
[jan] Fix searching DataTree elements (groups) if backend charset is different
      from interface charset (Bug #9323).
[mms] Fix accessing IMAP ACLs that contain non-alphanumeric characters
      (Bug #9299).
[jan] Avoid fatal errors when using DateTime with not properly configured
      PHP 5.3+ (Bug #9312).
[jan] Fix importing recurrence exceptions from vCalendar 1.0.
[mms] Fix preferences management regression (Bug #9289).
[jan] Fix conversion of all-day events and certain yearly recurring events for
      Funambol clients.
[mms] Fix memcache cache regression (Bug #9279).
[jan] Fix SyncML page sometimes deleting more anchors than selected.

Mail Changes
[mms] Fix error if user's account only contains an INBOX (Bug #9273).

Dynamic Mail Changes
[jan] Fix redirecting to login screen if session times out (Bug #9281).


[mjr] Do not remove history entries when removing user data (Bug #8755).

Horde Changes
[jan] SECURITY: Add token protection to preference forms.
[mms] SECURITY: Fix XSS in util/icon_browser.php.
[mms] Fix generating RFC 2231 parameters with charset information (Bug #9212).
[mms] On invalid token during logout, redirect to initial page (Bug #7669).
[mjr] Don't allow fixed blocks to be changed to another type (Bug #9141).
[jan] Show future alarms in the alarm management screen too.
[mjr] Fix bug in Horde_Cache that would prevent cache entries from being
      expired in certain cases, and prevent cache key collisions.

Mail Changes
[jan] SECURITY: Properly escape user input in Fetchmail configuration.
[mms] Fix updating POP3 indices when using mailbox caching (Bug #8035).
[jan] Include "anyone" user when listing users in the ACL screen (Bug #9135).
[mms] Turn DNS prefetching off when displaying untrusted message content
      (Ticket #8836).

Dynamic Mail Changes
[mms] SECURITY: XSS - Make sure mailbox name displayed on mailbox page is
      properly encoded (Bug #9240).
[jan] Fix notices with certain output buffer configurations
      (, Bug #7851).
[mms] Turn DNS prefetching off when displaying untrusted message content
      (Ticket #8836).

Address Book Changes
[jan] Correctly export FN vCard property if 'alternative_name' is set, but not
      'name' (Bug #9207).
[jan] Fix import of addresses from LDIF (Axel Jurak, Bug #9215).
[jan] Speed up browsing of long address books.

Filters Changes
[jan] Fix procmail vacation rule if no dates are set (Gaudenz Steinlin
      <>, Bug #8982).
[jan] Fix filtering only unseen message if rule should filter all messages in
      IMAP driver (Jan Kuipers <>, Bug #9077).

Calendar Changes
[gwr] Fix moving events between calendars for the Kolab driver (Bug #7932)
[jan] Import and export the privacy field in CSV data (Request #9139).
[mjr] Send an iTip REQUEST, not ADD, when updating an existing event
      (Bug #9131).
[jan] Fix all-day events sometimes showing up an day early too (Bug #9012).
[mjr] Sort exception list before displaying (Request #7688).

Tasks Changes
[jan] Remove stray closing tag when displaying the date of completion.


[jan] Fix certain configuration items getting lost during upgrades (Bug #8793).
[jan] Use TLS for SMTP connections if supported.

Horde Changes
[mjr] Fix issue in Horde_Image that would cause generated images to lose
      transparency in certain situations.
[jan] Allow to update existing identities while requiring email confirmation
      (Sebastian Radish, Bug #8877).
[jan] Fix casting errors when using SQL shares and groups on PostgreSQL
      (Bug #8899).
[gwr] Allow conf.d style directory configuration overriding (Request #8172).
[jan] Fix sending alarms to multiple users (Bug #8821).
[mms] Fix display of S/MIME certificate data (Bug #8826).
[mjr] Fix bug in Horde_Image that caused polaroid effect to fail on really old
      ImageMagick versions (earlier then 6.3.2).
[jan] Work around Funambol clients requiring a "configuration" database
      (Bug #8621).
[jan] Add support for synchronizing only those fields that are supported by
      the client.
[jan] Workaround broken PHP number formatting with some locales (Bug #8780).

Mail Changes
[mms] Fix spellcheck-on-send when using fckeditor and no errors exist
      (Bug #8833).
[mms] Fix authenticate API call and synchronization when using realms
      (, Bugs #6749, #8872).
[mms] Optimize folder tree initialization (Request #8805).
[mms] Add command line fetchmail script (, Request #8812).
[jan] Workaround broken PHP number formatting with some locales (Bug #8780).

Address Book Changes
[jan] Remove deleted contacts from distribution lists in the same address book.
[mjr] Allow creation of default, personal address book when other read-only
      sources are present.
[mjr] Log in history when deleting all of a user's contacts (Bug #8755).
[jan] Only export non-empty fields if exporting manually.
[jan] Add export to vCard 3.0.
[jan] Only synchronize those fields that are supported by the client
      (Request #6658, requires Horde 3.3.7).

Filters Changes
[jan] Correctly escape addresses in procmail driver (Bug #8875).
[jan] Fix procmail scripts when using composite headers (Bug #8804).
[jan] Support some non-standard Date: headers in Sieve vacation rules
      (Request #8783).
[jan] Support composite header rules with IMAP backends (Request #7343).
[jan] Fix unconditional debug output with Net_Sieve earlier than 1.2.0
      (Bug #8794).
[jan] Add Sieve configuration to use UTF-8 encoded folder names (for Dovecot)
      (Request #7391).

Calendar Changes
[jan] Delete Horde alarms when resetting an event alarm.
[jan] Set an alarm to one minute, if users try to set an alarm without time.
[gwr] Fix editing the start date of recurring events (kolab/issue3885).

Tasks Changes
[jan] Set an alarm to one minute, if users try to set an alarm without time.
[jan] Add missing preference for not sending update notifications to yourself
      (Joel Smith <>, Request #8978).
[gwr] Fix organizer field not saved in tasks (kolab/issue3888).


[jan] Add Croatian translation (Matej Vela <>,
      Iva Rumora <>).
[jan] Add and fix Oracle SQL scripts.

Horde Changes
[mms] SECURITY: Workaround XSS vulnerability in Firefox for data URLs
      (Bug #8715).
[jan] SECURITY: Fix XSS in administrator section.
[jan] Fix alarm system with Oracle backends.
[mjr] Fix using the removeUserDataFromAllApplications method (Valentin Vidic
      <>, Bug #8754).
[mjr] Fix checking existing signup requests in the Auth_Signup_datatree driver.
[jan] Fix syntax of MSSQL scripts (Bug #8664).
[jan] Export task alarms to Funambol clients (Request #8426).
[jan] Fix not catching Alt key combinations for access keys on Mac OS.
[jan] Close popup window after saving categories.
[jan] Check quota when copying files with VFS (Valentin Vidic
      <>, Bug #8643).
[jan] Fix detecting SyncML message sizes.
[jan] Fix mapping of elements during synchronization (Bug #8386).
[mms] Fix potential session writing issues using PHP 5.0.5+.
[jan] Fix error in PHP 5 SOAP server implementation.
[mms] Fix updating memcache tracking info upon session destruction
      (, Bug #8626).
[mjr] Various improvements and fixes to the Net_IMSP driver
      (; Bug #8532, #8533, #8534, and #8535).
[jan] Export all email addresses to Funambol clients (,
      Request #8571).
[jan] Export all fax numbers to Funambol clients (,
      Request #8618).
[jan] Fix detecting device information of certain synchronization devices.
[jan] Fix warnings when listing sessions with Oracle or PEAR DB session
      handlers (Bug #8601).
[mas] Fix SessionHandler_sql::getSessionIDs() SQL syntax (,
      Bug #8600).
[mas] Fix Horde_SQL::readBlob() on MSSQL (, Bug #8599).
[mms] Fix prototypejs regression on Internet Explorer (Bug #6590).

Mail Changes
[cjh] Fix the default value for the nav_audio preference
      (, Bug #8725).
[mms] Make sure sent-mail folders exist if using the drop-down selection list
      on the compose page (Bug #8520).
[mms] When replying to list, correctly extract e-mail address if multiple
      entries exist in the List-Post header (Bug #8719).
[mms] For messages marked as innocent but not moved to Inbox, don't report
      them as deleted within the current mailbox (Bug #8221).
[jan] Don't show address book preference group if address books are disabled
      (Bug #8692).
[mms] Save References/In-Reply-To header info when saving a draft (Bug #8661).
[jan] Fix viewing S/MIME encrypted and signed messages from Outlook (Express)
      (Bug #8629).
[mms] Don't use translated folder prefixes in rename dialog (Bug #8554).
[jan] Add hook to retrieve public S/MIME and PGP keys.

Dynamic Mail Changes
[jan] Add Basque translation (Euskal Herriko Unibertsitatea <>).
[mms] Fix sizing fckeditor compose editor frame in IE (Bug #8616).

Address Book Changes
[jan] Fix syntax of MSSQL scripts (Bug #8664).
[jan] Add preference for the name format to use for sorting (Request #6721).
[jan] Condense whitespace in composite fields (Request #8654).
[mjr] Fix permission checking for virtual address books.
[jan] Update deleted attributes during synchronization (,
      Request #6658).
[jan] Support X-ANNIVERSARY, X-CHILDREN, and X-SPOUSE vCard fields
      (Request #8074).
[jan] Fix copying and moving of image fields (Ryu <>, Bug #8523).
[jan] Don't return an error on empty LDAP search results (Bug #8595).
[jan] Replace PHP5-only code from the LDIF exporter (Bug #8586).

Filters Changes
[jan] Log Sieve communication with DEBUG log level.
[jan] Add PostgreSQL-specific upgrade script (Request #8630).
[jan] Fix procmail vacation rule (, Bug #7052).
[jan] Prevent deadlock with vacation rule in maildrop driver (Bug #8577).

Calendar Changes
[jan] Fix editing URLs of remote calendars.
[gwr] Fix recurring weekly events with fixed number of occurences but multiple
      incidences per week (kolab/issue3846).
[gwr] Fix recurring weekly events with intervals > 1 (Bug #8546).
[jan] Optimize event link generation (
[jan] Fix charset of ajax responses.
[jan] Speed up listing alarms (, Request #8638).
[jan] Simplify and improve portability of listing events without date limits
      in the SQL driver (Bug #8590).
[mjr] Fix issue that caused the default alarm time to be applied to
      listTimeObjects events (Bug #8588).

Tasks Changes
[jan] Fix importing due date attribute from iCalendar (Bug #8644).
[jan] Fix charset when exporting tasks to iCalendar 2.0 (Bug #8637).


[jan] Create table with METAR weather stations (Request #8302).
[jan] Bundle a complete, working PEAR installation (Bug #7902).
[jan] Bundle Net_DNS, Net_IMAP and Net_LDAP2 PEAR packages.
[mms] Upgrade prototype.js to v1.6.1.
[jan] Fix synchronization with output compression enabled (Bug #7769).

Horde Changes
[jan] SECURITY: Fix vulnerability in image form fields that allows overwriting
      of arbitrary local files.
[cjh] SECURITY: Fix validation of "number" type preferences (Bug #8399).
[mms] SECURITY: Don't display unknown text parts inline (Bug #8311).
[jan] Use system timezone for timestamps in the logs (Bug #8496).
[jan] Fix exporting certain weekday recurrence rules to iCalendar
      (, Bug #8510).
[jan] Work around crash bug in Funambol clients when synchronizing all-day
      events (Bug #8474).
[jan] Fix synchronizing tasks with certain devices (Bug #8506).
[jan] Workaround synchronizing of messed up categories in Nokia E phones
      (Bug #7824).
[jan] Fix synchronizing photos with broken Nokia phones (,
      Bug #7407).
[jan] Fix fatal error during synchronization if using certain session handlers
      (Bug #8443).
[jan] Improve synchronizing yearly events with Funambol clients
      (, Request #7790).
[jan] Destroy session when a CLI script ends (Request #8482).
[jan] Fix data casting when caching permissions with the DataTree backend (Bug
[jan] Pass user's password to the signup_addextra hook.
[jan] Add removeUserDataFromAllApplications API method
      (, Request #8454).
[jan] Catch errors when resetting passwords.
[jan] Support resetting passwords with composite authentication.
[mms] Fix memcache issue where it took 1 second to release a lock.
[mjr] Fix weatherdotcom block always displaying a 5 day forecast (Bug #8357).
[cjh] Use streams for file transfers in VFS_ssh2 (,
      Request #8323).
[jan] Send notification messages about new signups with confirmation links.
[jan] Drop signup_email column from sign-up table.
[jan] Show photo in vCard viewer if provided as inline vCard data.
[mjr] Fix issue where pref hooks would not be called for preferences marked as
      shared and defined outside of the Horde scope.
[jan] Add configuration whether to show user drop down list or text field in
      permissions dialog.
[jan] Export current locale to the environment.
[jan] Fix unfolding of vCard 2.1/vCalendar 1.0 data.

Mail Changes
[jan] Add example hook for the search_sources preference (,
      Request #7796).
[mms] Fix renaming shared folders contained in empty namespaces (Bug #8468).
[mms] Correctly handle NO untagged responses on login (Bug #8478).
[mms] Correctly set charset of Bcc header in sent mail copy (Bug #8362).
[mms] Fix spellcheck in text-mode for certain words in non-English locales
      (Bug #8330).
[mms] Fix some javascript if using IE 8 (uses IE 7 compatibility mode) (Bug
[jan] Allow to lock default_encrypt preference.
[mjr] Add example hook for the add_source preference (Bug #8285).
[mms] Fix unqualified domain preference (Bug #8272).
[jan] Highlight signed messages depending on the signature verification.
[mms] Fix display_folder hook (, Bug #8254).
[jan] Use correct charset when rendering inline PGP data.

Dynamic Mail Changes
[mms] Fix deleting messages after undeleting (Bug #8298).
[mms] Fix renaming folders with non-7bit characters
      (, Bug #8286).

Mobile Mail Changes
[mms] Ignore 'compose_html' preference in IMP (Bug #8415) (Requires IMP 4.3.5).
[mms] Fix showing Cc and Bcc fields (Bug #8167).
[cjh] Implement custom menu items (Bug #7630).

Address Book Changes
[mjr] Fix contacts being deleted during synchronization when moved from one
      address book to another (, Bug #8487).
[mjr] Add new API method for retrieving the default share for a source.
[jan] Don't overwrite the compositing fields, when importing composite fields.
[cjh] Fix searches for multiple strict fields and at least one non-strict field
      (, Bug #7876).
[mjr] Specific timeobject categories are now only advertised when they are
      present in a configured source.

Filters Changes
[jan] Correctly match negative header values with numeric comparison in Sieve
      driver (, Bug #7308).
[jan] Implement removeUserData API (, Request #8452).
[jan] Take default settings for forwards, vacation and spam rules from
      config/prefs.php in the SQL storage driver.
[jan] No longer try to read spam folder from IMP's preferences.
[jan] Fix maildrop rules without conditions (, Bug #8103).
[cjh] Fix checks for the forward_file and forward_script procmail parameters
      in the VFS driver (Bug #7811).
[cjh] Add %d (domain) as a replaceable variable in the vfs_path parameter
      (, Request #7503).
[jan] Make it easier to select the "Create new folder" entry for target folders
      (Bug #7768).
[cjh] Fix reading the current script in the VFS driver (,
      Bug #7610).
[cjh] Maildrop vacation rule: don't reply to bulk/list messages, add start/end
      times, better character support in the message, allow subsequent rules
      to execute (, Bug #7140).
[cjh] Fix compound header tests in the procmail and maildrop drivers
      (, Bugs #7117, #7611).
[jan] Change group field in shares table to work with LDAP groups (Bug #6883).

Calendar Changes
[jan] Allow to add address lists as attendees through the address book popup
      (Bug #7834).
[jan] Fix exporting certain weekday recurrence rules to iCalendar
      (, Bug #8501).
[jan] Export recurrence end dates as date-time values in iCalendar data to
      improve compatibility with external clients (Bug #7846).
[jan] Fix synchronization with output compression enabled (Bug #7769).
[jan] Add configuration whether to show user drop down list or text field in
      permissions dialog (requires Horde 3.3.5).
[jan] Propagate the 'modified' API method (Request #8274).
[cjh] Fix the signature of the kronolith/import API method
      (, Bug #8309).
[jan] Correctly create all-day events if using the all-day link in the day
      view (, Bug #8220).
[jan] Fix rendering of all-day events (Bug #8176).

Tasks Changes
[jan] Display application name as task list name when listing external tasks.
[jan] Fix importing vTodo data including more iCalendar components.

Notes Changes
[jan] Add passphrase confirmation field (Bug #7379).
[cjh] Work around BC break with Horde versions before 3.2 (Bug #7820).
[cjh] Add URL access to notes by "starts-with" search on the note title.
[cjh] Add hooks for altering the displayed note body and showing help text next
      to the note entry field.
[cjh] Explicitly load DB library (Bug #7648).
[jan] Fix "replace" API method (Alfonso Marín Marín <>, Bug #7436).
[cjh] Add a PostgreSQL-specific upgrade script.
[jan] Change group field in shares table to work with LDAP groups (Bug #6883).
[jan] Fix user name conversion with user hooks in the notepad panel (Bug #7366).


[jan] Bundle Text_Figlet package to enable the captcha form field.

Horde Changes
[jan] Fix rendering of addresslink form fields (Bug #8053).
[mjr] Fix a botched merge in Horde_Image_gd that was causing an undefined
      variable notice to be output in the image data.


[jan] Use improved Date_Holidays package.
[mms] Upgrade prototype.js to v1.6.0.3.

Horde Changes
[mjr] Fix an issue that causing users with expired passwords to be allowed to
      log in with the LDAP Auth driver.
[jan] Properly handle synchronization requests to non-existant databases.
[jan] Fix exporting all-day events to Funambol clients (Bugs #4487, #6847).
[jan] Quote parameter values in iCalendar data if necessary (Gunnar Wrobel,
      Bug #7758).
[jan] Detect base64 encoded synchronization data from Blackberry devices
      (Bugs #6995, #6949).
[jan] Optionally use Net_DNS for host name lookups (,
      Request #7374).
[jan] Add TLS support to LDAP drivers (, Request #7958).
[jan] Add scope and sizelimit parameters to LDAP authentication driver
      (, Request #7839).
[jan] Further improve HTML-to-text filter.
[jan] Export recurrence end dates as date-time values in iCalendar data to
      improve compatibility with external clients (Bug #7846).
[jan] Silence errors messages from iconv_substr() (, Bug #8128).
[jan] Don't catch Alt key combinations for access keys on Mac OS.
[mjr] Fix bitwise clause generation in the sql and hierarchical sql driver. This
      fixes issues with Oracle and possibly other RDBMS.
[mjr] Correct numerous bugs in Horde_Image dealing with ImageMagick version
[jan] Fix charset conversion in preference hooks (Bug #7489).
[cjh] Proactively disable allow_url_include in core.php.
[cjh] Add an index on session_lastmodified to the Horde sessionhandler tables.
[mjr] Force the use of REQUEST_URI instead of PATH_INFO in Util::getPathInfo()
      when being served by lighttpd due to issues with case insensitive
      file systems.
[cjh] Add support for SSL connections to MySQL databases (,
      Request #7972).
[cjh] Fix storing of unlocked preferences set by hooks (,
      Bug #6822).
[jan] Highlight color input fields with the color from the picker.
[jan] Fix importing vCards that have the charset specified in a MIME part
      (Bug #7816).
[mms] Ensure all input array entries in String::convertCharset() are properly
      iterated through (Bug #7828,

Mail Changes
[mms] SECURITY: Don't cache local PGP public keys retrieved from the
      addressbook (found by Peter Meier <>).
[mms] If using spellcheck on send, automatically send if no spelling errors
      exist (Request #6892).
[jan] Show all addresses when printing messages.
[mms] Fix cache issues in folder tree when deleting a mailbox (Bug #7745).
[mms] Fix updating POP3 indices when deleting in mailbox view (Bug #8035).
[jan] If updating a calendar event fails, try to import it instead (Bug #7589).
[mms] Fix [un]escaping of various URLs on message screen caused by security
      fixes in v4.3.3 (Bug #7926).
[jan] Fix rendering of subjects in RTL scripts when using LTR translations
      (, Bug #3511).
[mms] Add hook to allow hiding of IMAP folders (Gunnar Wrobel <>,
      Request #7353).
[jan] Fix logging of messages forwarded with attachments (Bug #7911).

Dynamic Mail Changes
[mms] Make dimp work with IE 8 (uses IE 7 compatibility mode) (requires IMP
[mms] Add confirmation box if attempting to send message without subject
      (Request #8076).
[mms] Fix address autocomplete display on IE (Bug #7982).
[mms] Shift-Delete on multiple messages will move selection to next message
      (Request #7533).
[mms] Fix occasional buggy behavior when drag/drop folders (Bug #7414).
[mms] The UP key will start at the bottom of the mailbox, if no current
      message is selected (Request #7532).
[mms] Add 'undelete' to Other Actions menu (Bug #7496).
[mms] Display quota on startup (Bug #7718).
[jan] Fix portal link text in tab bar (Bug #7719).
[mms] Fix portal display in IE (Bug #7398).
[mms] Correctly show 'To' header when doing searches in sentmail and drafts
      mailboxes (Bug #7650).

Calendar Changes
[jan] Render contact autocompletion list on top of free/busy blocks (Bug #7273).
[jan] Save recurrence exceptions when copying events (Bug #7689).
[jan] Prevent warnings if trying to add address lists as attendees (Bug #7834).
[jan] Fix start and end time calculation of multi-day events (Bug #7788).
[jan] Wrap URL in calendar information in IE7 (, Bug #8043).
[jan] Fix "Date-string has wrong format" error with holidays (Bug #7961).
[jan] Use improved translation support in Date_Holidays (requires 0.21.0 now,
      Bug #7272).
[jan] Empty view cache when changing calendar selection
      (, Bug #7879).
[mjr] Fix category CSS being included on embedded widgets.
[jan] Allow to manually change attendee responses (,
      Request #7443).
[jan] Fix linking to last week across certain year boundaries (Bug #7827).
[jan] Add script to import events from SquirrelMail database.
[cjh] Add private-***.png graphics to Tango and Silver themes (Bug #7531).
[cjh] Fix listing of users in the calendar/browse API call.
[jan] Set timezone per user preference and fix recurring events when sending
      reminders through Kronolith (, Bug #7038).
[cjh] Add a PostgreSQL-specific upgrade script for 2.2 to 2.3
      (, Bug #7454).

Tasks Changes
[jan] Don't allow to set alarms if no due date has been set.
[cjh] Add URL access to tasks by "starts-with" search on the task name.
[cjh] Add hooks for altering the displayed task description and showing help
      text next to the task description entry field.
[cjh] Add estimated time to the fields available in the task list.
[jan] Fix link escaping in notification messages (Alfonso Marín Marín
      <>, Bug #7509).
[cjh] Add a PostgreSQL-specific upgrade script for 2.2 to 2.3.
[cjh] Fix fatal error when completing tasks (Bug #7400).


[jan] Update broken Date_Holidays package (Bug #7784).

Horde Changes
[cjh] SECURITY: Escape output in the tag cloud block
      (found by Gunnar Wrobel <>).
[cjh] SECURITY: Validate the Horde_Image driver name
      (found by Gunnar Wrobel <>).
[cjh] Allow "." in phone number fields (Request #7858).
[cjh] Restore backwards compatibility in MIME::_rfc822Encode calls,
      used in Kronolith and Whups FW3 calls (Bug #7862).
[cjh] Fix the SQL Share driver closing the global database connection
      improperly when using PostgreSQL (Bug #7825).
[jan] Add support for Mozilla Sunbirds snooze properties (Request #7470).
[cjh] Try iconv_substr() in String::substr() if it's available
      (, Request #7826).
[cjh] Avoid warnings in Perms::getPermissionId with PostgreSQL
      (Marcus Ryan <>, Bug #7750).
[jan] Fix parsing of LABEL attributes in the vCard viewer.

Mail Changes
[cjh] SECURITY: Escape output in message.php, pgp.php and smime.php
      (found by Gunnar Wrobel <>).
[jan] Use all credentials and mailer settings for iTip replies (Bug #7388).
[mms] Show translated 'INBOX' prefix for subfolders (Request #7759).
[mms] Workaround obsolete 'UT' date format (Request #5717).
[mms] Fix tracking folder changes when renaming (Bug #7772).
[cjh] Suppress browser autocomplete when redirecting messages (Bug #7767).


[jan] SECURITY: Escape output in test.php files.
[jan] Patch broken Date_Holidays package (Bug #7413).
[jan] Fix updating of preferences and other configuration files (Bugs #7439,
[jan] Fix creating the alarm tables on PostgreSQL (Bug #7409).
[mms] Upgrade prototype.js to v1.6.0.3.

Horde Changes
[cjh] SECURITY: Add another check to the XSS filter.
[jan] Add script to import preferences from SquirrelMail database.
[cjh] Allow the password file Auth driver to require a specific group.
[jan] Add XPath wrapper to Horde_DOM library.
[cjh] Don't use executeMultiple in the SQL Share driver when we might
      reset the connection in between queries (Bug #7542).
[jan] Fix database XML schema to create all lock table fields (Bug #7433).
[jan] Fix showing two sidebars after saving the display preference group for
      the first time (Bug #7475).
[jan] Fix sharing with LDAP groups (Bug #6883).
[jan] Add javascript event handler for access keys.
[cjh] Remove UNSIGNED from PostgreSQL scripts.
[cjh] Call preference hooks in the scope of the preference
      (vlukashov (at) parallels (dot) com, Bug #7445).
[jan] Fix resuming synchronization session on server farms
      (, Bug #7394).
[jan] Fix synchronization of tasks with many items (,
      Bug #7395).
[jwm] Fix regression: SOAP wsdl/disco shouldn't require authorization.

Mail Changes
[mms] Don't include Virtual Folder information in when tracking folder
      tree changes (Bug #7739).
[mms] Marked stripped parts as 'attachment', not 'inline' (Request #4664).
[mms] Fix linking from addresses in mailbox to compose screen (Bug #7432).
[jan] Use mailer configuration when sending iTip replies (Bug #7388).
[jan] Always display multipart/appledouble attachments.

Address Book Changes
[jan] Add script to import contacts from SquirrelMail database.
[gwr] Correct support for the freebusy URL in Kolab.
[gwr] Add photo support for the Kolab driver.
[jan] Import broken vCards from Synthesis clients (Bug #7407).
[cjh] Add two retries to find a contact after adding it (Bug #7478).
[cjh] Add a PostgreSQL-specific upgrade script for 2.2.1 to 2.3
      (, Bug #7462).
[jan] Don't overwrite empty address books preference when creating new shares
      (Bug #7399).


[jan] Change group field in shares table to work with LDAP groups (Bug #6883).

Horde Changes
[jan] Fix synchronization issues with Blackberry clients (Bug #6949).
[mms] Fix setting the horde user when using application authentication with
      realms (Bug #6749).
[jan] Fix user name conversion with user hooks in the permissions interfaces
      (Bug #6371).
[jan] Provide all settings for the read server in split SQL configuration
      (Request #7024).
[jan] Improve HTML to text filter.
[mjr] Hierarchical SQL Share driver now correctly removes all children when
      removing a share (Bug: 7347).
[mjr] Fix an issue with various date/time fields in horde form that was causing
      erroneous validation errors.
[cjh] Sign parameters to go.php with an HMAC based on a new secret key
      configuration value, to prevent using go.php as an open referrer.
[cjh] Make logout tokens only valid for a configurable length of time.

Mail Changes
[jan] Add compose token to redirect view (Bug #7383).
[jan] Don't resize window if not composing messages in a popup.

Dynamic Mail Changes
[jan] Show spam and ham buttons according to IMP's configuration.

Address Book Changes
[jan] Fix exporting address books with country fields as vCards (Bug #7372).
[mjr] Make sure we use all address books when searching via the api and the
      user's addressbooks pref is empty (Bug #7357).
[mjr] Correctly calculate the age of time objects (Bug #7330).

Calendar Changes
[jan] Fix user name conversion with user hooks in the calendar panel
      (Bug #7366).
[gwr] Fixed handling of free events in the Kolab driver
      (, Bug #7192).
[jan] Differentiate between days with events and days with busy events in the
      year view.

Tasks Changes
[jan] Log completion date if adding a completed task (Bug #7275).
[jan] Fix user name conversion with user hooks in the task list panel
      (Bug #7366).
[jan] Fix displayed WebDAV subscription URLs in the task list manager.


[jan] Fix upgrading from 1.1.x releases.
[jan] Improved SOAP interface.

Horde Changes
[mms] Fix garbage collection handling on SQL session handler backends.
[mjr] Change MDB2 sequence names to 'id' in SQL share driver (Bug #7240).
[cjh] When a URL is supplied for pass-through after logging in, go to that URL
      in mobile browsers instead of going to the mobile portal (Bug #6332).
[mms] Memcache session handler no longer writes data with a lifetime.
[cjh] Add DIMP to the horde LDAP OIDs and hordePerson objectclass (Bug #7243).
[mms] Update FCKeditor to v2.6.3.
[jan] Use global mailer configuration when sending alarm emails
      (, Bug #7058).
[jan] Reset background colors when resetting the category form (Bug #7226).
[jan] Improve Funambol contacts support (Requests #7099, #7100).
[jan] Correctly parse GEO tags in vCard 2.1 data (Bug #6563).
[jan] Remove Horde portal link from application menus (Bug #7221).
[cjh] Create a driver for signups, allowing backends other than DataTree
      (Duck <>, Request #7161).
[jan] Fix displaying images with the image form field.
[mjr] Fix issue with hierarchical SQL share driver that caused permissons to
      erroneously be denied when the share contained group permissions and was
      instantiated by a listShares call.
[mjr] Fix issue with hierarchical SQL share driver that caused any child shares
      to be orphaned when the parent share was moved in the hierarchy.
[mjr] Fix issue with SQL share drivers that was causing permission checks to
      fail under certain conditions by no longer explicitly storing owner
      permissions in the Perms backend.
[cjh] Fix overwriting a variable in the tableset_html VarRenderer
      (Paul Roy <>, Bug #7120).
[mms] Fix MIME encoding when using the ISO-2022-JP charset (Bug #1621).
[jan] Fix SQL Share driver not using the correct database when using different
      databases in Horde applications (Bug #6997).
[cjh] Fix SQL portability in Share_sql driver (Bug #7084).
[jan] Fix synchronizing large amounts of data split across several SyncML
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[cjh] Fix Horde_Lock::getLockInfo (, Bub #7046).
[cjh] Fix SQL portability in Group_sql driver (Bug #7075).
[jan] Fix PAM authentication driver, but also mark it as deprecated (Bug #6982).
[mjr] Fix issue with native SQL Share driver that caused filtering shares by
      attributes to fail.
[jan] Fix synchronization of event alarms with Funambol clients (Bug #7003).
[jan] Correctly detect Funambol clients on Blackberry devices (Bug #6995).
[mjr] Remove all user application permissions and group memberships from storage
      when removing the user from the system (Bug: 6999)
[cjh] Call the postauthenticate hook in Auth::setAuth(), and allow the
      postauthenticate hook to cause setAuth() to fail. Allows postauthenticate
      to fire on any event, including transparent authentication, that could
      result in a user being successfully logged in.
[jan] Improve attribute support and charset conversion in vCard viewer.
[jan] Show photos in vCard object if provided with an URL.
[mjr] Remove permissions from storage also when removing a share.
[jan] Add Horde_Form fields for string arrays and PGP and S/MIME keys.
[jan] Only show Add Permission icons in permissions interface where adding
      them is possible.
[mjr] Fix issue in Horde_Image that was causing erratic results when cropping
[jan] Fix validation of phone fields marked as required (Bug #6948).
[mms] Fix quoting periods in display part of e-mail address (Bug #6899).
[mms] Fix error checking when parsing an undisclosed recipients mail header
      and using an older version of PEAR::Mail (Bug #6930).
[jan] Return to portal after editing or deleting blocks directly from there.

Mail Changes
[mms] Fix loading of print stylesheets when printing a message (Bug #7310).
[mjr] Fix redirect loop when conf[server][change_server] is true (Bug #6978).
[mms] Fix message caching and optimize storage.
[mms] Fix autocomplete address positioning on IE (Bug #7074).
[cjh] When the selected view doesn't match the type of browser's default view
      (IMP or DIMP for a mobile browser, MIMP or DIMP for a desktop browser),
      explicitly redirect to that view and disable the frameset (Bug #6332).
[jan] Add support for updating exsting events and cancelled recurring event
      instances to iTip viewer (Bug #6636).
[mms] Fix uploaded compose attachment names if magic quoting is on (Bug #7215).
[mms] Cache results of address formatting.
[jan] Show name and email address in the address book popup (Request #6937).
[mms] Messages from lists can now have large quotes automatically hidden.

Dynamic Mail Changes
[mms] Allow DIMP to work without cookies.
[mms] Update quota at same time folders are polled (Request #7254).
[mms] Fix logout link when session has timed out.
[mms] Add caching of preview messages.
[mms] Catch unwanted keypress submits in the compose screen (Bug #7162).
[mms] UI enhancement to indicate that RTE component is loading.
[mms] Correctly close popup compose windows when opened from a page other than
      the base DIMP page.
[mms] Remove border from iframe on IE (Bug #7136,

Mobile Mail Changes
[mms] Added a MIME_Viewer to display mail system admin messages.
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[jan] Add Brazilian Portuguese translation (Luis Felipe Marzagao
      <>, Eduardo de Carli <>).

Address Book Changes
[jan] Improve vCard EMAIL field parsing (Bug #7281).
[jan] Correctly import and export address extensions (Bug #7279).
[jan] Export full country names to vCard addresses.
[jan] Respect precedence of multiple vCard properties (Request #7122).
[jan] Remove deleted address books from address book preference (Request #6938).
[jan] Export LABEL properties to vCard if address fields are available.
[gwr] Add support for storing public PGP keys when using Kolab.
[gwr] Add support for adding addresses from IMP when using Kolab.
[jan] Add configuration option for an alternative name field.
[jan] Add support for image fields to SQL driver (requires Horde 3.3).
[jan] Add more default field mappings for CSV import (Request #6901).
[jan] Update field names for Outlook 2003 export (Request #6901).
[jan] Improve logic which entries to show in the sidebar menu.
[jan] Add support for the category form field (Request #6884).
[jan] Fix sorting so that sort order is always reflected correctly,
      independent of name format.
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[jan] Add ability to mark a contact as your own and API method to export it.
[jan] Fix importing phone numbers from Synthesis clients (Bug #7011).
[mjr] Fix issue with searching composite fields when the number of search terms
      is less than the number of composed fields (Bug #6796)
[cjh] Allow importing multiple address into an email field if allow_multi
      is set to true on the field in attributes.php (Bug #6897).
[mjr] Remove user permissions on all shares when deleting a user.
[jan] Fix searching of client address books that have been disabled in the
      preferences (Bug #6961).
[mjr] Fix issue with removeUserData api that caused the deleted user's
      address books to not be deleted as well as remove an erroneous error
      notification (Bug #6969).
[cjh] Fix the column selector/sorter in IE (Bug #6912).

Filters Changes
[jan] Don't show script icon in menu if preference to automatically update
      scripts is both set and locked (Request #7251).
[mjr] Change MDB2 sequence name to 'id' (Bug 7240)
[jan] Fix adding more than 5 wildcard blacklists (Bug #7077).
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[jan] Fix saving spam rules in the preference backend (Bug #7033).
[jan] Correctly catch dates before the 10th of a month in Sieve timed
      vacations (Bug #7023).
[mas] Fix vacation with procmail driver (Bugs #6509, #7052).
[jan] Fix moving to INBOX with the maildrop driver.
[jan] Disable drop down entries with informational purpose only.
[jan] Fix filter activity messages with non-ASCII folder names
      (, Bug #6764).

Calendar Changes
[jan] Send correct iTip notifications when deleting recurring event instances
      (Bug #6636).
[mjr] Add support for embedding calendar widgets on external websites.
[jan] Log moving of events in the history backend (Bug #3207).
[jan] Fix listing alarms of recurring events crossing day boundaries
      (Bug #7035).
[jan] Fix deleting all events over WebDAV (Bug #7005).
[jan] Add Atom feeds.
[jan] Fix encoding of holiday names.
[jan] Add Estonian translation (Alar Sing <>).
[jan] Consider RECURRENCE-ID attributes in iCalendar data.
[cjh] Fix a problem with the put() API call and events that already exist
      (, Bug #7088).
[jan] Fix importing iCalendar events with only a single recurrence exception
      (, Bug #7068).
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[mjr] Add support for maintenance tasks and add a task for purging old events.
[jan] Fix future events not being received under certain circumstances
      (Bugs #6946, #6966).
[jan] Correctly sort recurring events (, Bug #7037).
[jan] Fix display of recurring events crossing midnight in the portal block
      (, Bug #7036).
[jan] Fix agenda emails containing wrong events.
[mjr] Remove user permissions on all shares when deleting a user.
[jan] Fix warning when importing events through the API (Bug #6865).
[cjh] Be case insensitive when comparing attendees
      (, Bug #6833).
[jan] Use smaller icons for private events.

Tasks Changes
[jan] Log moving of tasks in the history backend (Bug #3207).
[jan] Fix deleting all tasks over WebDAV (Bug #7004).
[jan] Add Estonian translation (Alar Sing <>).
[jan] Send a more detailed notification message and use the recipient's
      preferred language and date/time format after a task has changed.
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[jan] Fix task relationship getting lost when importing tasks
      (,, Bug #6770).
[jan] Add preference to set columns for the list view.
[jan] Allow to set task assignee.
[jan] Add options to export screen for choosing task lists and task states.
[mjr] Remove user permissions on all shares when deleting a user.
[mjr] Fix issue with removeUserData api that caused the deleted user's task list
      to not be deleted.

Notes Changes
[jan] Log moving of memos in the history backend (Bug #3207).
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[mjr] Remove user permissions on all shares when deleting a user.
[mjr] Fix issue with removeUserData api that caused the deleted user's task list
      to not be deleted (Bug #6969).


Horde Changes
[jan] SECURITY: Fix vulnerability in image form fields that allows overwriting
      of arbitrary local files.
[cjh] SECURITY: Fix validation of "number" type preferences (Bug #8399).
[mms] SECURITY: Don't display unknown text parts inline (Bug #8311).


[jan] Patch broken Date_Holidays package (Bug #7784).

Horde Changes
[cjh] SECURITY: Escape output in the tag cloud block
      (found by Gunnar Wrobel <>).
[cjh] SECURITY: Validate the Horde_Image driver name
      (found by Gunnar Wrobel <>).

Mail Changes
[cjh] SECURITY: Escape output in message.php, pgp.php and smime.php
      (found by Gunnar Wrobel <>).


[jan] SECURITY: Escape output in test.php files.
[jan] Patch broken Date_Holidays package (Bug #7413).
[jan] Fix updating of preferences and other configuration files (Bugs #7439,
[jan] Fix creating the alarm tables on PostgreSQL (Bug #7409).

Horde Changes
[cjh] SECURITY: Add another check to the XSS filter.


Horde Changes
[jan] SECURITY: Fix unescaped output in the MIME attachment linking.
[jan] SECURITY: Add another check to the XSS filter.


[jan] Fix sending messages when using the SQL token driver.
[jan] Add schema to create database tables for the filters module.
[jan] Activate address book for favourite recipients.
[jan] Add upgrade functionality to the setup script.


[jan] Include missing MDB2 drivers.

Horde Changes
[cjh] SECURITY: Escape item names in the object browser (Bug #6906).
[cjh] Select db before queries in MySQL SessionHandler (Bug #6673).
[jan] Format messages sent through MIME_Mail in flowed text format.
[cjh] Catch errors if the Cache_file backend doesn't have permission to
      garbage collect (Bug #6895).
[cjh] Fix deletion of SQL shares when using split read/write databases
      (, Bug #6870).
[mms] Workaround broken IE behavior when downloading files with 8-bit
      filenames (, Bug #129).
[cjh] Fix storing of unlocked preferences set by hooks
      (, Bug #6822).
[mms] Allow Horde memcache driver to use UNIX sockets (Bug #6848).
[mjr] Various fixes for hierarchical SQL Share driver involving share names,
      better error checking and logging.
[cjh] Fix order of checks in String::convertCharset (Bug #6794).
[mms] Fix parsing of addresses in headers when the RFC 2047-encoded personal
      part of the address contains address list delimiters (Bug #6747).
[cjh] Fix generation of unique keys in configuration for machines too fast for
      microtime() (, Bug #6762).
[gwr] Added group driver for Kolab.
[gwr] Added IMAP based preferences driver for Kolab.
[mms] Fix missing timestamp variable in Horde SQL cache driver
      (, Bug #6839).
[cjh] Fix over-zealous preference caching when preferences are requested for a
      different user (Bug #6820).
[mjr] Fix issue in Horde_Image that caused errors when performing certain image
      operations immediately after an image had been cropped when using the
      ImageMagick driver.

Address Book Changes
[cjh] SECURITY: Escape contact names in the contact display view.
[jan] Fix importing of certain phone numbers from vCard (Bug #6744).
[mjr] Correct a function declaration in the 2.1_to_2.2_sql_schema.php upgrade
      script that was causing fatal errors.


[cjh] Improve resource usage in datatree_to_sql share migration scripts
      (Bug #6740).

Horde Changes
[jan] Fix synchronization of contacts with some SyncML clients (Bug #6706).
[mjr] Fix SQL bitwise comparison issue in native SQL share drivers that affected
      PostgresSQL (Bug #6751).
[cjh] Ensure users' email addresses are well-formed (Bug #6654).
[jan] Remove About... link from help viewer.
[mms] Update Xinha editor to support Safari 3.

Mail Changes
[cjh] Make sure that email addresses entered in the Identities screen pass
      basic well-formedness validation (Bug #6654).
[cjh] Fix default server selection on the login screen
      (, Bug #6738).
[cjh] Fix defaulting to the wrong address book in the Contacts popup
      (, Bug #6723).

Dynamic Mail Changes
[mms] Add checkboxes to message list.
[mms] Update poll count in destination folder when moving messages.
[jan] Add Silver Surfer theme.
[cjh] Update the dock badge with Inbox unread counts if using Fluid.
[jan] Add Slovak translation (Martin Matuška <>).

Address Book Changes
[mjr] Fix importing email addresses from CSV files to be consistent with what
      we allow to be entered via the UI. (Bug #6725)

Calendar Changes
[jan] Identify the correct event when using attend.php to update invitations
      (Bug #6606).
[jan] Decode user names and passwords when editing remote calendars.
[cjh] Ensure that event_category is always a string (Bug #6696).

Tasks Changes
[jan] Allow to import all fields that can be exported.
[cjh] Fix displayed WebDAV subscription URLs in the panel (Bug #6709).

Notes Changes
[jan] Fix exporting and synchronization of encrypted notes.


[jan] Update Services_Weather package to fix changes in the API.
[cjh] Apply fix for to prototype.js
      (Request #6590).
[cjh] Add upgrade scripts for the new SQL share driver (Request #6109).

Horde Changes
[bak] Improvements to WebDAV return codes and implement WebDAV locks
[bak] Add Horde_Lock subsystem
[mms] Add memcache caching support to all session backends.
[cjh] Add a files-based Preferences backend (,
      Request #6653).
[cjh] Correct line-folding of encoded lines in iCalendar data
      (Gunnar Wrobel <>, Bug #6555).
[cjh] Add a configuration option for whether users can share with groups
      they aren't members of (, Request #6619).
[cjh] Ensure that alarms are created with a NULL alarm_snooze value
      (, Bug #6183).
[cjh] Add an admintools script for creating PEAR::DB sequences manually.
[cjh] Improved support for PGP fingerprints (Bug #6363).
[jan] Add rpc/ directory for prettified RPC URLs.
[jan] Move SyncML anchors out of the DataTree into a separate database table.
[cjh] Add beta SQL Permissions driver (, Request #6150).
[cjh] Add beta SQL Group driver (, Request #6175).
[jan] Use wider columns for the SyncML database table to correctly store long
      UIDs (Bug #5025).
[jan] Add "hordeweb" theme.
[jan] Add MIME::parseAddressList().
[jan] Add icons to edit and delete blocks directly from the portal.
[jan] Allow users to specify login credentials for Horde applications in the
[jan] Add NLS::setLanguageEnvironment() and NLS::setCharsetEnvironment().
[cjh] Fix LDAP authentication (Bug #6450).
[jan] Improve synchronization with Funambol clients.
[mas] Fix false positive verification of S/MIME messages (Bug #6323).

Mail Changes
[mms] Add ability to cache JS/CSS files to static files to improve performance
      and to fix problems when updating JS/CSS files.
[cjh] Make request token lifetime configurable (, Request
[mms] If using SMTP, send messages using 8BITMIME (RFC 1652) or BINARYMIME
      (RFC 3030) if appropriate (Request #6645).
[cjh] Work around a spellchecking issue with proc_close and --enable-sigchild
      (Bug #6625).
[jan] Show user drop down list in ACL screen if possible.
[mms] Redirect after doing maintenance to the proper view (Bug #6179).
[mms] Allow switching views in mobile login mode (Request #6332).
[jan] Support vhosts setting when loading header.php, servers.php,
      spelling.php and trailer.txt configuration files.
[mas] Use delete icon on search page to remove elements. (Liam Hoekenga
      <>, Request #6515).
[mms] Add link to delete entire thread on thread screen (Request #5884).
[mms] Hide trash-related options when trash is disabled.
[jan] Allow users to specify server name and login credentials in Horde's
      preferences (requires Horde 3.2.1).
[mms] Message cache now stored in configurable chunks to reduce memory usage.
[mms] Fix mailbox list caching when hiding deleted messages.

Dynamic Mail Changes
[mms] Add checkboxes to message list (configurable via prefs).
[mms] Update poll count in destination folder when moving messages.
[jan] Add Silver Surfer theme.
[cjh] Update the dock badge with Inbox unread counts if using Fluid.
[jan] Add Slovak translation (Martin Matuška <>).

Mobile Mail Changes
[mms] Add sort change links to mailbox.
[mms] Cc/Bcc display now handled by IMP's pref.
[mms] Fix thread display.
[mms] Protect delete actions with CSRF tokens.
[jan] Add Slovak translation (Martin Matuška <>).

Address Book Changes
[cjh] Fix editing contacts that were accessed by UID (Bug #6672).
[cjh] Include composite fields in data exports (Bug #6517).
[gwr] Add distribution list support to the Kolab driver.
[cjh] Add vCard/syncing support for a large number of additional attributes
      (, Request #6573).
[cjh] Update composite fields in LDAP DNs (, Bug #6575).
[mjr] Fix paging in search results.
[cjh] Allow setting default values for attributes.
[cjh] Show a browse link in the address book list for each address book
      (, Request #6613).
[mjr] Fixed a bug that caused field values to get mismatched with the column
      names when a single DB field is mapped to multiple Turba fields.
[mjr] Fix changing sort order on the search view.
[jan] Add preference to choose address books for synchronization.
[jan] Improved importing of names from vCards (Bug #6568).
[jan] Fix incomplete copying and moving of attributes to composite fields
      (Bug #6565).
[gwr] Fix the relation of key/uid within the Kolab driver.
[gwr] Export/import of the emails attribute (Bug #6504).
[mas] Encode DN correctly when exporting to LDIF. (Bug #6518).
[gwr] Fix virtual address books when using shares.
[gwr] Fix searching for the Kolab driver.
[cjh] Replace the address book column sorter with a Scriptaculous-based one;
      fixes re-ordering columns in some cases (Bug #6444).
[jan] Always return to the last view after saving a contact.
[jan] Correctly determine default address books in the API (SyncML, WebDAV).
[jan] Add categories imported through the API (SyncML, WebDAV).
[jan] Store categories as strings.
[cjh] Show who created or made the last change to a contact along with the date
      (Request #6305).
[mjr] Prevent overwriting contact entries with the upgrade script (Bug #6308).

Filters Changes
[cjh] Procmail driver: make the directory in which vacation files are
      generated configurable (, Request #6643).
[cjh] Procmail driver: include the original email subject in vacation
      replies (, Request #6432).
[cjh] Make the procmail delivery agent configurable, allow configuring a
      prefix for mailboxes (+ is needed for dmail, for example), don't
      generate empty VFS files, write a .forward file if needed to pass
      mail to procmail (, Request #6433).
[jan] Add Slovak translation (Martin Matuška <>).
[cjh] Make the command line utilities called from procmail configurable
      (, Request #6431).
[jan] Fix creating of duplicate special rules when converting from preferences
      to SQL storage backend (Bug #6182).
[jan] Follow Sieve specifications more closely when disabling Sieve scripts
      (Bug #6337).
[jan] Load default set of filters for SQL storage from config/prefs.php
      (, Request #6096).
[jan] Add Russian translation (Alexey Zakharov <>).

Calendar Changes
[cjh] In WebDAV PUT operations, only look for existing events on the calendar
      being uploaded (Bug #6617).
[cjh] Use json_encode and json_decode if they are available (Bug #6457).
[cjh] Use the first matching free/busy URL if more than one is found
      (, Request #6638).
[cjh] Allow subscribing/unsubscribing from external calendars through the API
      (, Request #6626).
[jan] Add another directory level for calendar owners to the WebDAV interface.
[jan] Cut off categories at 80 characters to save them correctly (Bug #5211).
[gwr] Fixed removal of recurrence in the Kolab driver.
[jan] Show full title in email alarms (Bug #6510).
[jan] Add export of single events.
[gwr] Fixed History support in the Kolab driver.
[cjh] Don't report cancelled events as busy (,
      Bug #6376).
[cjh] Show who created or made the last change to an event along with the date
      (Request #6305).
[cjh] Make sure event time and location are shown in the day and week views
      (Bug #6158).
[cjh] Include Location and Attendee information in the plain-text portion
      of iTip messages (, Request #6271).
[cjh] Use the Free/Busy default domain on the attendee entry page as well
      (Bug #6146).
[jan] Add Turkish translation (METU <>).

Tasks Changes
[cjh] Add an upgrade script for the new SQL share driver (Request #6109).
[jan] Correctly determine default task list in the API (SyncML, WebDAV).
[cjh] Show who created or made the last change to a task along with the date
      (Request #6305).
[jan] Add Turkish translation (METU <>).

Notes Changes
[gwr] Added History support in the Kolab driver.
[cjh] Avoid errors when trying to export an empty notepad (Bug #6409).
[cjh] Show who created or made the last change to a note along with the date
      (Request #6305).
[jan] Add Turkish translation (METU <>).


Horde Changes
[cjh] Fix Horde_Compress_zip::checkZipData (Bug #6413).
[jan] Allow adding attachments to the problem reporting form.
[cjh] Make sure that when we used a cached Preferences object, we set the
      correct scope (Bug #6395).
[cjh] Set LC_TIME to C for consistency in date parsing in the SSH2 backend
      (, Bug #6396).
[cjh] Add experimental native SQL Share driver (, Request #6109).
[cjh] Recognize IE8 in the Browser class (, Request #6390).
[cjh] Don't treat no results as an error in the LDAP Groups driver
      (, Request #6362).
[cjh] Use conf.bak.php for backup files so they are parsed by PHP
      (Request #6341).
[cjh] Add a configuration setting for using pretty URLs (Request #6264).
[cjh] Add a method for counting attribute values without returning full objects
      from the DataTree (, Request #6289).
[cjh] Protect logout links with CSRF tokens.
[jan] Fix listing of folders with whitespace in the name using the SSH2 VFS
      driver (Bug #6227).
[jan] Don't indent first line of paragraphs when converting HTML to plain text.
[cjh] Add a PHP 5 SoapServer RPC backend.
[cjh] Add a method for getting just attributes, instead of full object and
      tree structure, from the DataTree (, Request #6209).
[cjh] Add a mock Groups driver for sites that don't need Group support
      (, Request #6157).
[jan] Highlight links in HTML viewer that triggered a phishing warning.
[jan] Fix some string parsing on systems that don't have the "en" or "en_US"
      locales installed (Bug #6194).
[jan] Avoid JavaScript popup if a translation for the WYSIWYG editor doesn't
      exist (Bug #6174).
[cjh] Fix autocreation of DataTree parents (, Bug #6167).
[jan] Fix linefolding with multibyte strings in iCalendar library (Bug #6103).
[jan] Add multibyte-safe String::wordwrap() method.

Mail Changes
[mas] Replace %l and %d with the current short username and domain name in spam
      reporting shell calls. (Bug #6364)
[cjh] Add a hook quota driver (, Request #6322).
[mms] Make xinha add BR tag instead of P tag on enter keypress (Mozilla only).
[mms] Add fckeditor to list of supported javascript editors.
[jan] Hide iTip actions if not using IMP frontend (Bug #6116).
[cjh] Fix showing suggestions for the second or subsequent misspelled word
      (Bug #6081).
[jan] Add configuration option to force users to a certain view.
[jan] Localize default folder names.
[jan] Call a contacts/add API method to create links for adding contacts if
[jan] Filter HTML body when replying to HTML messages with the WYIWYG editor.
[jan] Allow users to set the HTML editor toolbar buttons in their preferences.
[jan] Fix charset of composed HTML messages (Bug #6268).
[cjh] Protect mailbox, message, and folder actions with CSRF tokens.
[cjh] Fix action dropdowns in IE6 (Bug #6177).
[cjh] Make sure to call Event.extend() when using inline event handlers, for
      IE6's benefit.
[cjh] Fix improper enabling of HTML composition on replies (Bug #6176).
[jan] Use subject's CN instead of OU for storing public keys (Bug #6169).
[cjh] Make sure that custom checkbox preferences are stored as 0 or 1 instead
      of 'on' or ''.
[jan] Fix popup URL generation (Bug #6139).

Dynamic Mail Changes
[mms] Use IMP's configuration for javascript editors and CSS/JS caching.
[mms] Make fckeditor add BR tag instead of P tag on enter keypress.
[mms] Make xinha add BR tag instead of P tag on enter keypress (Mozilla only).
[mms] Add Special Characters to compose screen, if configured.
[jan] Allow users to set the HTML editor toolbar buttons in their preferences.
[jan] Add Spanish translation (Manuel P. Ayala <>).
[mms] Add "Reply to List" option.
[jan] Add Russian translation (Alexey Zakharov <>).
[jan] Add Hungarian translation (Laszlo L. Tornoci <>).

Mobile Mail Changes
[mms] Honor nav_poll preference from IMP.
[jan] Add Russian translation (Alexey Zakharov <>).


[jan] SECURITY: Fix privilege escalation in Horde API.
[cjh] SECURITY: Fix missing ownership validation on share changes.

Horde Changes
[jan] SECURITY: Filter out FRAME tags from HTML messages (CVE-2007-6018).
[jan] SECURITY: The XSS filter passes the complete XSS cheat sheet
      ( now.
[cjh] Add a PHP 5-only block for putting syndicated feeds on the Horde Portal
      (, Request #6107).
[cjh] Automate detection of which themes/app combinations have custom icons
      (Bug #6105).
[cjh] Fix listing of current session ids in the memcache SessionHandler
      (Bug #6083).
[cjh] Correct handling of cache misses from the Horde_Cache_sql driver
      (Bug #6060).
[mas] Add support for PGP revocation certificates to Crypt library.
[cjh] Provide specific validation errors when datetime Horde_Form fields have
      a date but not a time, or vice-versa (Bug #5992).
[cjh] Read email addresses from subjectAltName property of S/MIME certs
      (Bug #5986).
[cjh] Catch Horde_Block errors when doing ajax updates.
[cjh] Allow Horde_Mobile_select to take already-encoded options (Bug #5849).
[jwm] Add support in Horde_RPC_soap for handling SOAP endpoints that only
      expose certain types and/or methods.
[jwm] Make the SOAP service name in Horde_RPC_soap configurable.
[jwm] Add basic logging of SOAP calls (method name and args, elapsed
      time, bytes sent in response).
[cjh] Support LDAP password expiration when using Sun/Fedora Directory Server
      (, Request #6012).
[cjh] Remove the wrap attribute from preference textarea tags (Bug #6024).
[cjh] Recommend and default to SSHA hashed passwords.
[jan] Fix rendering of messages in some charsets that are only supported by
      iconv (Bug #5962).
[jan] Display WYSIWYG editor with correct language.
[jan] Fix creating of sub groups (Bug #5970).
[jan] Fix linking of URLs encapsulated in angle brackets (Bug #4946).
[jan] Fix edge cases of CSV file imports (Bugs #3839, #4025).
[mms] For SessionHandler drivers, don't write to backend if the session data
      did not change while loading the current page.
[cjh] The Auth:: package no longer depends on the PHP mhash extension
      for some encryption types.
[cjh] Add stream support to some VFS backends (Request #5913).
[jan] Add client code to JSON-RPC class and implement JSON-RPC 1.1.

Mail Changes
[mms] SECURITY: When sending linked attachments, protect against JAR attacks
      in some Mozilla browsers (Bug #5892).
[cjh] Fix the bottom Select: menu in the mailbox view (Bug #6128).
[mms] Add hook for adding formatting information to a message list row
      (Request #5234).
[mms] If javascript is available, automatically size the popup compose window.
[jan] Allow to write outside of HTML signatures in WYSIWYG editor (Bug #3753).
[jan] Highlight HTML signatures in WYSIWYG editor.
[jan] Remember webmail mode selected on the last login.
[mms] Compress download data.

Dynamic Mail Changes
[mms] Add preference to identify screen to load on login (Request #6028).
[jan] Add Finnish translation (Leena Heino <>).
[mms] Add configuration option to disallow searching all mailboxes.
[mms] Auto-resize address inputs in compose screen.
[mms] Add hook for adding formatting information to a message list row
      (Request #5234).

Address Book Changes
[mjr] Degrade gracefuly when no VFS is configured.
[cjh] Fixed the share flattening upgrade script.
[mjr] Fixed issue that caused mangling of composite fields when moving or
      copying contacts from one address book to another (Bug #6058).
[mjr] Fixed issue that caused listTimeObjects to only return objects from a
      single address book when using a shared SQL source.
[cjh] Update address book management UI to match other groupware apps.
[jan] Trim composite field values before saving to the backend (Bug #5979).
[mjr] Fixed issue where composite fields with 'attribute' value set were not
      getting set in the backend when being imported via the API. (Bug #5978)
[mjr] Time object categories are now automatically detected.
[mjr] Fix issue that caused listTimeObjects API to miss returning objects when
      the date range crosses over into the next year.
[jan] Improved portability of the upgrade script (Bug #5949).
[mjr] Added anniversary support to the listTimeObjects API.

Filters Changes
[cjh] Add API methods for setting and disabling vacation rules
[mas] Fix procmail metacharacter quoting. (Bug #5581)
[cjh] Fix procmail vacation recipe (Volker Then <>).
[cjh] Fix position of closing quote in maildrop driver (,
      Bug #6020).
[jan] Fix paths in the script for converting to SQL storage (Bug #5957).

Calendar Changes
[jan] Fix importing of events with an existing UID (Bug #6122).
[cjh] Fix timestamps in portal block event links.
[mjr] Fix issue that caused recurring events on 2/29 to appear on 3/1 when
      recurrence type is HORDE_DATE_RECUR_YEARLY_DATE.
[cjh] If JavaScript is available, open the Attendees window set to the current
      event's date (Request #5813).
[cjh] Fix display of events that end at 00:00 at a non-zero second (Bug #6047).
[cjh] Fix handling of local names in attendees.php
      (, Bug #6041).
[cjh] Fix inline calendar search in the calendar panel.
[cjh] New share management UI that doesn't require JavaScript.

Tasks Changes
[jan] Fix tasks losing their parent task when being completed (Bug #6035).
[cjh] Add the ability to filter the list of task lists in the panel.
[cjh] New share management UI that doesn't require JavaScript.
[jan] Fix 2006-04-18_add_creator_and_assignee_fields.php upgrade script.

Notes Changes
[cjh] Add the ability to filter the list of notepads in the panel.
[cjh] New share management UI that doesn't require JavaScript.
[cjh] Add support for split read/write databases (<>,
      Request #5936).


[jan] Add DIMP and MIMP for dynamic (AJAX) and mobile webmail access.
[jan] Add performance tuning instructions.

Horde Changes
[jan] Apply user name hooks when editing share permissions
      (, Bug #5844).
[jan] Fix some date handling with dates outside the unix epoch (Bug #5893).
[jan] Fix fixed portal blocks (Bug #5853).
[jan] Fix Share caching (Bug #5748).
[cjh] Fix deleting categories (Gunnar Wrobel <>, Bug #5873).
[cjh] Import dhtmlHistory.js from DIMP into Horde core.
[cjh] UTF-8-encode DNs in the LDAP Groups driver (,
      Bugs #4692 and #4918).
[mjr] Addition of an Effects API to the Horde_Image package, including a
      number of image effect plugins.
[jan] Add country list form field.
[cjh] Add example logrotate configuration (Martin Fraer <>).
[cjh] Add LDAP ACL definition for preferences (Martin Fraer
[cjh] Add an index on horde_datatree_attribute.attribute_value to improve
      DataTree performance (Andrew Morgan <>).
[jan] Add SQL upgrade scripts.
[jan] Fix escaping of parenthesis in PDF documents (PEAR Bug #12092).
[jan] Fix alarm notification script (Bug #5660).
[jan] Fix PDF generation with some locales (Gunnar Wrobel, Bug #4094).
[jan] Move all application-specific hook examples to the applications' config/
[jan] Fix SMTP configuration being set to "Best available authentication"
      (Bug #5679).
[jan] Add bind parameters to LDAP account portal block configuration (Request
[cjh] Fix login screen enter key behavior in some circumstances (Bug #5696).
[mjr] Add a new block for displaying a tag cloud that works across all Horde
      applications implementing a searchTag api.
[cjh] Use the Silk flag icons from
      for all flag sets (Bug #5681).
[cjh] Fix generation of UIDs with PHP 5.2+.
[cjh] Add a JSON-RPC Horde_RPC backend (
[cjh] Allow selecting any available sound when creating alarms as an
      administrator (Request #5619).
[cjh] Fix updating of last_maintenance preference with PHP 4 (Bug #5111).
[cjh] Allow considering all IPs to be "safe" for encryption operations,
      passphrase entry, etc., when using SSL hardware or other secure
      environments (, Request #5568).
[cjh] Fix CSRF protection with Horde_Form objects submitted with preserve().
[cjh] Centralize sounds for audio alarms in Horde.
[cjh] Include CSRF protection when using Horde_Form Tokens (Request #4492).
[cjh] Add first_week_day preference and use it in the calendar widget (Bug
[cjh] Cache permissions with Horde_Cache (
[jan] Add configuration option for safe IP subnets.
[cjh] Allow turning off a user's ability to edit share permissions (Request
[cjh] Consolidate color pickers used for Labels and in Horde_Form (Bug #5112).
[cjh] Log sending of problem report emails (,
      Request #5461).
[cjh] Improve support for dates before 1970 and after 2038 (Bug #3741).
[mms] Add option to send MIME messages in a format that may allow broken MUAs
      to handle 8-bit filename data.
[cjh] Add Tango Blue (xconspirisist <>,, Request #2795) and Silver Surfer (Daniel
      Dembach <>) themes.
[mms] Created a Horde-wide object to access a singlet memcache configuration.
[cjh] Test for PCRE UTF-8 support with extension tests
      (, Bug #1052).
[jan] Add category field to Horde_Form.
[cjh] Better detection of Konqueror JavaScript features
      (, Request #5372).
[cjh] Support the allow_multi parameter when displaying email address form
      types (, Request #5356).
[cjh] Add Scriptaculous and RedBox to Horde.
[mms] Added sql driver for Horde_Cache::.
[mms] Prevent tooltips from scrolling off screen (,
      Request #3958).
[jan] Add portal block to verify EU VAT identification numbers.
[mms] Preserve URL anchor information when performing login.
[jan] Add method to fetch public key by email address from key server.
[jan] Add parameter for a temporary directory to the VC svn driver
      (, Request #5051).
[jan] Change VC library to support open_basedir restrictions (,
      Request #5051).
[cjh] Added a query for checking existance of a user to the custom SQL
      Auth driver (Request #5151).
[jan] Add button to the setup screen to check for newer versions.
[mas] Add MIME Viewer for WordPerfect documents.
[mms] Use lzf compression to compress Horde_SessionObjects:: data in the
[cjh] Replace google popup javascript searching with Google Ajax Search.
[jan] Add datetime variable type to Horde_Form.
[jan] Add Horde_Alarm library for reminders, alarms and notifications across
      all applications with pluggable notification methods.
[jan] Add context renderer to Text_Diff package.
[jan] Add MIME_Mail class to simplify creation and sending of MIME messages.
[cjh] Horde_Share now has a driver system with DataTree and Kolab backends
      (Gunnar Wrobel <>, Request #4263).
[cjh] Remove RPC_rest backend.
[cjh] Add DELETE support to the webdav RPC implementation
      (Håvard Wigtil <>, Request #4721).
[cjh] Add a Horde-wide HTTP proxy config setting (Request #1039).
[mms] Use the geoip PECL extension if available.
[cjh] Add preferences change hooks that are called when preferences are set
      to new values (Request #4343).
[cjh] Add Active Directory support to the LDAP account information driver
      (, Request #3512).
[cjh] Add a finger driver to the account information block
      (, Request #3546).
[cjh] Rewrite the Prefs code to keep the same Prefs object through multiple
      scope changes, instead of re-loading the Horde prefs, or prefs for
      a scope that had already been loaded. Fixes bugs when making changes
      to preferences and then switching scopes again (Bug #2838).
[cjh] Switch from hook functions for every group to a single hook function
      for all groups, allowing more dynamic Group_hooks implementations
      (, Request #4324).
[jan] Allow Kolab users to login with both, UID or mail address
      (, Bug #1317).
[cjh] Switch between 'icon' and 'iconopen' images when toggling Horde_Tree
      sections (Bug #2576).
[cjh] Add a Horde_Form_Action for setting the cursor position in any
      text field (Request #4431).
[cjh] Provide a link for dialing phone numbers if the "telephony/dial"
      API method is present (, Request #3241).
[jan] Add support for PUT method to WebDAV server
      (, Request #3032).
[jan] Add PHP 5 support for Kolab (, Bug #4062).
[jan] Rewrite PAM authentication driver to use PAM extension from PECL.
[mas] Implement IMAP_ACL_rfc2086::canEdit() for cases when the user is
      asking about their own rights.
[mms] Correctly encode MIME parameter values via RFC 2231.
[mms] Add method to do RFC 2231 encoding.
[jan] Allow to set link target for "link" preference types.
[cjh] Move developer and administrator tools into seperate PEAR
      packages that will be available from
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[jan] Add SMIL MIME viewer.
[jan] Add support for virtual host based configuration.
[jan] Add File_PDF::setTextColor() (PEAR Request #1767).
[jan] Add File_PDF::setFontStyle() (, PEAR Request #5230).
[jan] Add encoding parameter to XML_SVG_Document (PEAR Request #7461).
[jan] Add SMPP driver to Net_SMS package (Ian Eure <>, PEAR
      Request #5101).
[jan] Add support for symmetric PGP encryption to Crypt library.
[jan] Add option to limit file sizes in file and image form fields (Request
[jan] Add caching for shares.
[cjh] Add an audio MIME_Viewer so that audio files are clickable and
      handled immediately by the browser.
[cjh] Add Horde_Form_Type_phone as a parent for Horde_Form_Type_cellphone.
[jan] Add caching for groups.
[cjh] Allow dropping application (or other custom-purpose) configuration
      files into config/registry.d/.
[cjh] Help now has a tree view of topics and is searchable (Request #2452).
[cjh] translation.php now works with PHP 5 (Bug #3539).
[jan] Highlight new configuration items in the configuration interface
      (Request #3868).
[cjh] Add Shibboleth transparent authentication driver
      (Cassio Nishiguchi <>).
[cjh] Add native email address validation to Horde_Form_Type_email
      based on
[jan] Add multidomain support for Kolab servers (, Request #3579).
[cjh] Deprecate htmlarea in favor of xinha.
[mms] Add VFS SSH2/SFTP driver (Cliff Green <>).
[mjr] Move the Horde_Config_Node and related classes out of Horde_Config and
      into it's own Horde_DOM package.
[mjr] Add support for Horde_Share to the Net_IMSP package.
[jan] Add connection pooling support with memcache extension 2.0.0
      (, Request #3213).
[jan] Add memcached driver to the Horde_Cache package (Duck <>).
[cjh] Add phpGroupWare/eGroupWare compatibility driver to Horde_RPC that
      allows mapping xml-rpc methods into Horde applications (Request #2886).
[cjh] Add _horde_hook_post_pushapp for doing actions directly after
      $registry->pushApp() succeeds.
[jan] Update portal block content in the background instead of reloading the
      whole portal periodically.
[mdj] Add support for split read/write databases.
[mdj] Add failover support for database backends.
[jan] Add configuration option to require users to confirm email addresses
      added to their identities.
[cjh] Add a SpellChecker package.
[cjh] Have Horde::addScriptFile() check for a non-PHP version of scripts
      to avoid javascript.php whenever possible.
[cjh] Add SERIALIZE_JSON mode with code from PEAR's Services_JSON.

Mail Changes
[jan] Fix broken <area> tags in HTML messages.
[mms] When sending notification that linked attachment has been downloaded,
      correctly set timezone in download time (Bug #4609).
[cjh] If encrypting a message, encrypt an attached public key as well
      (Bug #5733).
[jan] Remove "default search field" preference, show all common fields instead.
[cjh] Rename IMP_IMAP_Client::namespace to getNamespace() for PHP 5.3
[cjh] Cache PGP public keys for one hour (,
      Request #5773).
[mms] Add mailbox list caching across sessions.
[cjh] Don't translate "Fwd:" in email subjects (Request #5674).
[jan] Add link to strip all attachments from a message.
[jan] Show owner of S/MIME cert in signed messages, not the message sender.
[jan] Allow maintenance tasks to rename and delete fixed folders (Bug #5592).
[mms] Allow all javascript and CSS in a page to be served in a single browser
[jan] Move all IMP-specific hook examples from Horde's config/ directory.
[jan] Fix compose window widgets with certain translations (Bug #5638).
[jan] Fix sidebar tree generation with certain translations (Bug #5525).
[cjh] Fix spellchecking HTML messages with active links (Bug #5629).
[cjh] Fix a fatal error when composing for users with no signature (Bug #5682).
[cjh] The pspell extension is no longer supported for spell checking since
      it doesn't work with HTML composition at all (Bug #5516).
[cjh] Fix switching signatures when using HTML composition (Bugs #3753, #5594).
[jan] Add configuration for folders that may not be modified.
[mms] Inline PHP-generated javascript to avoid cross-domain leaking
      (Bug #5307).
[cjh] Preserve current mailbox when composing in the main window (Bug #5415).
[cjh] Add initial version of a mailbox view in a block
      (Karsten Fourmont <>, Request #5011).
[cjh] Add a few more new mail sounds and allow the user to choose
      between them (Request #3260).
[mms] Preserve URL anchor information when performing login.
[jan] Fetch public PGP keys from keyserver if not available in address book
      (Requires Horde 3.2).
[mms] Add compose support for e-mails containing Internationalized Domain
      Names (Request #5180).
[jan] Add a hook for post sending actions, after a message has been sent.
[mms] Add option to login screen to allow user to select the application mode
      if either DIMP or MIMP is also installed.
[jan] Add unified IMAP quota driver to obsolete the Cyrus and Courier drivers.
[mms] Don't allow namespace delimiters in new mailbox names.
[mms] Change 'Important' flag to 'Flagged For Followup' and clear the flag
      after a reply (Request #4867).
[mms] Allow display of shared/public folders separate from a user's personal
      folders (Request #3581).
[mms] Allow thumbnails to be generated for all attached images, regardless
      of image size.
[cjh] Add a modal confirmation dialog for emptying a folder (Request #4812).
[mms] Add ability for admin to limit size of reply text.
[mms] Add RSS/Atom feed for mailboxes (Eric Garrido <>,
      Request #2733).
[mms] If tidy is available, use it to clean up outgoing HTML messages.
[mms] Automatically delete blacklisted messages (Request #4569).
[cjh] Implement non-modal newmail popups (Request #3327).
[mms] Add option to restrict size of MIME message parts that can be displayed
[cjh] Add a Help entry for keyboard navigation (Bug #4716).
[mms] Most javascript code now uses the Prototype library.
[jan] Address auto-completion searches only at beginning of names and
[jan] Add button to empty the current folder.
[jan] Show percentage of attachment limit usage in compose window
      (Eric Garrido <>, Request #3434).
[jan] Add SQL driver for quotas (Tomas Simonaitis <>,
      Request #4053).
[mms] Allow user to view PGP encrypted messages sent by themself (Bug #4332).
[mas] Make ACL editor more intuitive (Eric Garrido <>,
      Request #3808).
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[mms] Added preference to allow composition in reply/forward based on
      "richest" format available in original message (Request #4270).
[mms] Added preferences to determine default forwarding method and whether
      to include body text in forwards by default.
[mms] Add preference to only verify PGP & S/MIME signed data upon user
      request (Request #4022).
[mms] Add preference to indicate default cursor location in compose text
      area (Request #3245).
[jan] Add support for symmetric PGP encryption (Requires Horde 3.2).
[cjh] Add an onbeforeunload handler so Firefox and IE users can be prompted
      before accidentally closing a compose window (,
      Request #4271).
[jan] Move mail_hdr preference from identities to a regular preference.
[mms] Remove current mailbox information from session - allows multiple
      simultaneous open IMP windows (Request #3171).
[mms] Add folder size display to folders screen (Request #4065).
[mms] Add ability to filter HTML message output with tidy (Request #388).
[cjh] Show thumbnails of large images instead of linking to them
      (Eric Garrido <>, Request #3808).
[mms] Page location in mailbox is remembered for subsequent mailbox visits.
[mas] Add maintenance task to purge old messages from spam folder (Request
[mms] Implement mailbox message list caching.
[mms] Port AJAX spell checking code from DIMP.
[mms] Port auto-complete contacts AJAX code from DIMP.
[mms] Add preference to poll all folders for new mail (Request #2197).
[mms] Allow admins to add "Printed By" headers to the top of all printed
      messages (Request #1965).
[mms] Allow user to save per-folder sort preferences (Request #1483).
[jan] Add multidomain support for Kolab servers (, Request #3579).
[cjh] Add a hook for post-login actions, after the session is established
      but before redirection.
[mms] Recent search queries can be retrieved on the search page (Request
[mms] Convert all templates to Horde_Template::.
[cjh] Show vTodo parts in the iTip driver (Request #3344).
[jan] Add maintenance task to purge old messages from sent-mail folders.
[cjh] Move allow_cc and allow_bcc to compose_cc and compose_bcc preferences.
[ben] Better support for MS-SQL.
[jan] Whether and where to show alternative mime parts is now a preference
      instead of MIME configuration.
[mms] Split out custom spelling dictionary into separate configuration file.
[jan] Delete original message after saving a resumed draft.
[cjh] If the browser supports the necessary javascript, unblock images in HTML
      messages without a page reload.
[cjh] Do all message styling based on flags with CSS.
[mms] Implement message caching.
[jan] Add permissions to restrict maximum number of recipients per message and
[jan] Add API method "contacts/favouriteRecipients".
[jan] Add logging of sent messages.

Address Book Changes
[jan] Fix birthday calculation on years before 1970 with DST (Bug #5791).
[jan] Implement WebDAV DELETE.
[jan] Change default SQL scheme to match with RFC 2426 (vCard 3.0) as closely
      as possible.
[cjh] Add $matchBegin to the clientSearch API method (,
      Request #5860).
[cjh] Avoid variable names that might interfere with function variables in
      sources.php.dist examples (Bug #5840).
[jan] Add clientFields() API method.
[mjr] More efficient fetching of entries when using the listTimeObjects api.
[jan] Move all Turba-specific hook examples from Horde's config/ directory.
[cjh] Fix generation of UIDs with PHP 5.2+.
[cjh] Handle categories when converting to and from vCards
      (, Bug #5648).
[cjh] Catch searches that seem non-empty but really aren't (Bug #5612).
[mjr] Fix fatal errors when no share enabled sources are present.
[mjr] Fix issue with naming new contact lists that was causing database errors,
      missing part of the contact list name, and other oddities.
[cjh] Add support for approximate searches, if the underlying backend and Horde
      code support them (Request #2901).
[cjh] Add a print link for contacts (Request #2800).
[cjh] Shared Address Books are now stored in a flat namespace so that they
      do not rely on the hierarchical (i.e. DataTree) properties of the
      Horde_Share API (Bug #4960).
[cjh] If names are displayed "Lastname, Firstname", sort composite name
      fields by lastname (Request #3909).
[cjh] Show an overlay while running a search (Request #3154).
[cjh] Add Anniversary, Spouse, and Children fields and support them in
      vCard import/export (, Request #5059).
[cjh] Add LDIF import/export support (, Request #2506).
[jan] Provide birthdays as events to external calendars (Request #723).
[mjr] Add driver to create address books from current user's Horde_Group
[jan] Allow to search through API for matches at word boundaries only
      (requires Horde 3.2).
[cjh] Phase out old ObjectView class in favor of proper forms in
      lib/Forms and views in lib/Views.
[cjh] Support for dereferencing LDAP aliases (,
      Request #4532).
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[cjh] Support vCard initials and salutation fields if present in the Turba
      backend (, Request #4248).
[cjh] Don't show empty tabs if a contact does not have a full name (Bug #4243).
[mjr] Add support for removing user data from backend storage when user is
      removed from Horde.
[jmf] Sort listings on multiple columns.
[cjh] Show numeric and alpha pagers at the top of listings, not the bottom
      (Bug #1312).
[jan] Add multidomain support for Kolab servers (, Request #3579).
[jan] Use the same rendering code for contact details in the list views like
      in the contact views.
[jan] Allow editing of composite fields (,, Request #2529).
[mjr] IMSP driver now has Horde_Share support.
[cjh] Add dynamic filtering of lists of contacts.
[mdj] Add support for split read/write database.
[mdj] Add failover support for SQL backend.
[mjr] Add virtual address book support.
[jan] Add driver to list most favourite recipients.

Filters Changes
[cjh] Allow specifying permissions to set in the VFS for uploaded scripts
      (, Request #5871).
[cjh] Add spam filter actions and numeric comparisons to the Maildrop
      script driver (Request #5843).
[cjh] Maildrop driver improvements: make INBOX-stripping configurable; fix
      REJECT action; make blacklist and whitelist matches exact (is); and add
      is, not is, not contain, not begins with, not ends with, matches,
      not matches, exists, and not exists rules (,
      Request #5816).
[jan] Add Japanese translation (Hiromi Kimura <>).
[jan] Improve forward rule generation with sieve scripts (Request #5746).
[jan] Move all Ingo-specific hook examples from Horde's config/ directory.
[cjh] Only expunge messages that we have moved or deleted completely when
      using IMAP filters (Bug #4749).
[cjh] Fix behavior of IMAP stop-script rules (Bug #5539).
[cjh] Shouldn't show an input field for exists or not exists tests (Bug #5659).
[cjh] Don't let users save rules with empty conditions (Bug #5641).
[cjh] Match email addresses exactly for procmail vacation rules, and include
      the Cc: and Bcc: fields in checks for which address the message was
      sent to (Bug #4333).
[cjh] Ingo now provides a Postfix policy daemon that can be used to enforce
      blacklist and whitelist rules at delivery time (Request #4904).
[cjh] Autocreate VFS paths when saving rules (>).
[cjh] Add reverse conditions for procmail (, Request
[cjh] Allow numeric spam score comparisons with Sieve (,
      Request #3837).
[jan] Add Ukrainian translation (Andriy Kopystyansky <>).
[cjh] Add timed vacation messages (, Request #4938).
[mas] Add body test for sieve (, Request
[mas] Change 'Important' flag to 'Flagged For Followup' to match IMP.
[jan] Add full character set support to vacation messages in maildrop and
      procmail drivers (Requests #4034, #4989).
[cjh] Add sivtest driver (, Request #4777).
[cjh] Add maildrop vacation support (, Request #3722).
[jan] Add hook to provide addresses for vacation messages (Request #4542).
[jan] Add "Save and Enable/Disable" buttons to forward, vacation, and spam
      screens (Request #4543).
[jan] Group vacation settings in tabs (Request #4541).
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[mas] Check sieve quota before uploading a script. (, Request
[jmf] Blacklist and whitelist for imap scripts now work consistently with
      sieve scripts -- must match full address.
[ben] Add body test for procmail (,
      Requests #3874, #4035).
[cjh] Add ssh2 to the supported VFS backends (Cliff Green <>).
[cjh] Add checks to avoid mail loops in the procmail forwards code
      (Request #3502).
[jan] Use Horde_Form API to generate special rule forms.
[jan] Add multidomain support for Kolab servers (, Request #3579).
[jan] Add support for changing other users' filter rules.
[jan] Add SQL storage driver.
[jmf] Add simple spam-filtering setup page.

Calendar Changes
[jan] Don't allow to modify private events throught the API (Bug #5736).
[jan] Don't overwrite event owner when changing events over WebDAV (Bug #5736).
[jan] Implement WebDAV DELETE.
[cjh] Event exceptions are now correctly reflected when subscribing to
      Kronolith calendars from Apple iCal.
[cjh] When adding attendees, parse email groups and add each member
      individually (Bug #5812).
[cjh] External events are now enabled/disabled by individual category, such
      as showing a particular tasklist on your calendar, but not all tasks
      (Request #4581).
[jan] Add SQL upgrade script.
[cjh] Let the "show" URL of a calendar always show that calendar, instead of
      toggling whether or not it is displayed.
[cjh] Fix permissions granted to remote calendar subscribers on calendars
      that do not have guest permissions.
[cjh] Fix generation of UIDs with PHP 5.2+.
[cjh] Add preferences for showing event times and locations in screen
      views, print views, both, or neither (Request #1982).
[cjh] Run attendee email address through MIME::encodeAddress() before
      validating them (Bug #5670).
[cjh] Add vCalendar 2.0 alarm export (, Bug #4851).
[jan] Add Ukrainian translation (Andriy Kopystyansky <>).
[cjh] Inline PHP-generated javascript to avoid cross-domain leaking
      (Bug #5307).
[cjh] Add a preference to not send notifications to the person who is
      adding/updating/deleting the event (,
      Request #4770).
[cjh] Add calendar/subscribe and calendar/unsubscribe methods for adding/
      removing calendars to the currently displayed calendars
[cjh] Remove unneeded Kronolith_Driver::close method.
[cjh] Fix error handling when moving events
      (, Bug #5401).
[jan] Show icon for private events (Request #5190).
[jan] Allow to edit existing event attendees.
[jan] Add links to delete exceptions from recurring events.
[jan] Add recurrence types by day of year and weekday of year.
[jan] Add recurrence durations by number of recurrences.
[jan] Allow to edit exceptions from recurring events.
[jan] Allow to specify attendees without email addresses.
[jan] Allow to specify attendee names with the email addresses.
[cjh] Link to remote URLs in iCalendar events, if present (Duck).
[jan] Hide less important event settings in the edit form by default.
[jan] Add support for the Horde_Alarm framework (requires Horde 3.2).
[cjh] Add ContactAutoCompleter javascript to the attendees screen
      (Request #1635).
[jan] Add month tab to free/busy view (Gunnar Wrobel <>,
      Request #4896).
[cjh] Use extended Free/Busy information from Kolab (,
      Request #4869).
[ben] Add daily agenda reminder (Request #4655).
[cjh] Include event location in reminders (,
      Request #4771).
[cjh] Use global proxy configuration for HTTP requests (Request #1039).
[jan] Display holidays generated with the Date_Holiday package (Stephan
      Hohmann <>, Request #3862).
[cjh] Consider failing to find any attendees to update an error
      (Bug #4588).
[cjh] Include a summary of which calendars were printed in print views
      (Request #3263).
[jan] Add support for reading and saving events through external clients
      (requires Horde 3.2,, Request #3032).
[jan] Limit number of events in portal summary block (Duck <>).
[cjh] Add a live search to the calendar panel (Request #4607).
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[cjh] Fix Day and Week display of events that overlap with an event that
      doesn't start all the way to the left (Bug #2967).
[cjh] Move calendar selection/deselection to a collapsible panel.
[jan] Allow to set user name and password for remote calendars
      (, Request #3696).
[jan] Allow to edit remote calendars (, Request #3696).
[cjh] Move almost all hiding of elements during printing to CSS classes.
[cjh] Allow the listEvents api call to list events from multiple calendars,
      and filter by whether or not events have an alarm
      (Ben Klang <>, Bug #4104).
[mjr] Support for removing user data from backend when user is removed from
[jan] Add private flag.
[cjh] Add a default alarm preference.
[cjh] Always include X-WR-CALNAME in iCalendar exports (Request #3618).
[jan] Add multidomain support for Kolab servers (, Request #3579).
[jan] Allow delegation of events.
[cjh] Dynamic switching between Display, Edit, and Delete screens.
[jan] Add preference to force day and week views to selected hours.
[cjh] Make the duration input a text field instead of a 365-day dropdown.
[mdj] Add support for split read/write database.
[mdj] Add failover support for SQL backend.
[cjh] Use partial page fetches to update the main "page" div if the browser
      supports the necessary JavaScript.

Tasks Changes
[jan] Implement WebDAV access.
[jan] Add exportTasklist() API method.
[jan] Add SQL upgrade script.
[jan] Show estimated time including sub-tasks.
[cjh] Fix generation of UIDs with PHP 5.2+.
[cjh] Add preferences for turning due dates on by default, setting the
      default due date's number of days in the future, and setting the
      default due date's time.
[cjh] Add vCalendar 2.0 alarm export (, Bug #4851).
[jan] Add sub-tasks.
[jan] Add start dates for tasks.
[jan] Add support for the Horde_Alarm framework (requires Horde 3.2).
[cjh] Default to a javascript quick search, if available, with options
      for the full search and a direct link to full search if javascript
      is unavailable.
[cjh] Allow explicitly searching All, Incomplete, or Completed tasks
      (Request #4222).
[cjh] Allow configuring the tasklists that the task summary block shows,
      and let the user set a title for the block to differentiate multiple
      instances (Request #2388).
[cjh] Show task description tooltips in the task summary block (Request #3444).
[cjh] Store completion date and add history entries for task completion.
[cjh] Move tasklist selection/deselection to a collapsible panel.
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[cjh] Allow using the checkboxes to mark tasks as incomplete as well
      as complete (, Request #4250).
[cjh] Sort date fields correctly with JS table sorting.
[jan] Add private flag.
[jan] Add a field for estimated time being spent on a task.
[mdj] Add support for split read/write database.
[mdj] Add failover support for SQL backend.
[cjh] Add a tree block for showing current alarms.

Notes Changes
[jan] Implement WebDAV DELETE.
[cjh] Add quick links to the sidebar block for adding notes to a specific
      notepad (Gunnar Wrobel <>, Request #5716).
[cjh] Fix generation of UIDs with PHP 5.2+.
[cjh] Show tooltips in the summary block, and restrict tooltips to 20 lines
      (Request #3443).
[cjh] Optionally show a note's notepad in the list view (Request #2317).
[cjh] Add quick (inline) note searching.
[cjh] Add the ability to save a note as a PDF.
[jan] Add support for encrypted notes.
[cjh] Move notepad selection/deselection to a collapsible panel.
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[cjh] Notes search should be either title or full text (Request #4277).
[cjh] Make the note edit view the full page width.


Horde Changes
[jan] SECURITY: Add another check to the XSS filter.


[jan] Update Services_Weather package to fix changes in the API.

Horde Changes
[cjh] SECURITY: Escape item names in the object browser (Bug #6906).
[jan] Fix large messages being rendered empty with PHP 5.2 (Bug #5792).

Calendar Changes
[cjh] SECURITY: Fix XSS in the add event screen.
[jan] Add Turkish translation (Altay Ozaygen <>).


Horde Changes

[cjh] SECURITY: Fix arbitrary file inclusion through abuse of the theme


Address Book Changes
[cjh] SECURITY: Fix unchecked access to contacts in the same SQL table
      (Bug #6208).


[jan] SECURITY: Fix privilege escalation in Horde API.
[cjh] SECURITY: Fix missing ownership validation on share changes.

Horde Changes
[jan] SECURITY: Filter out FRAME tags from HTML messages (CVE-2007-6018).
[jan] SECURITY: The XSS filter passes the complete XSS cheat sheet
      ( now.
[jan] Apply user name hooks when editing share permissions
      (, Bug #5844).
[jan] Fix fixed portal blocks (Bug #5853).

Mail Changes
[jan] Fix sentmail folder not being updated in the preference interface
      (Bug #5842).
[jan] Fix broken <area> tags in HTML messages.

Filters Changes
[jan] Add Japanese translation (Hiromi Kimura <>).
[jan] Improve forward rule generation with sieve scripts (Request #5746).

Calendar Changes
[jan] Set the user's timezone in the free/busy information.
[jan] Fix redirection after editing an event from the sidebar menu (Bug #5769).

Tasks Changes
[cjh] Send iCalendar data as UTF-8.


[jan] Add missing Mail_mimeDecode PEAR package.


Horde Changes
[cjh] Fix identity javascript when some fields are disabled
      (, Bug #5595).
[cjh] Disable the Turkish locale if using PHP 5 (see
[jan] Improved webroot detection (Request #4126).
[jan] Fix selecting the language on the login screen (Bug #5098).
[jan] Fix searching for single quotes in email headers (, Bug
[jan] Fix portal layouts with more than one horizontally expanded block per

Mail Changes
[cjh] Lower memory usage when downloading folders (Andrew Morgan
[mms] Fix detection of default namespace information when no namespaces are
      defined on the server (Bug #5538).
[mms] Don't lose message bodies when moving messages to trash when over quota
      (Bug #5470).
[cjh] Remove unused defaults in Fetchmail_imap (Bug #2799).
[jan] Fix empty folder name appearing on Cyrus and servers with similar
      namespaces (Bug #5138).
[jan] Only show reply options in iCalendar viewer if a reply is requested.
[cjh] Remove non-responsive and from
      PGP options (Bug #5323).
[jan] Fix moving messages when over quota on Dovecot servers (Bug #5270).
[jan] Fix parsing of certain distribution lists (Bug #5134).
[mms] Fix rare occurrence where an action perfomed on the mailbox screen would
      instead be performed on the INBOX (Bug #5202).
[mms] Don't show save attachments prompt in compose screen if configured to
      automatically link all attachments (Request #5189).

Address Book Changes
[mjr] Fix some fatal errors caused by the IMSP driver when deleting certain
      contacts and while adding contacts to lists in certain cases.
[mjr] Fix adding contacts to a new contact list in a source other than the
      source the contacts being added are from.
[jan] Fix paging through search results from another than the default address
      book (Bug #5137).
[cjh] Fix copy/moving contacts to a new contact list (Bug #5144).

Filters Changes
[jan] Add Simplified Chinese translation (Anna Chen
[cjh] Fix check for bulk or list precedence in Sieve vacation (Bug #5543).
[jan] Add additional checks to avoid adding empty test values (Bug #5392).
[jan] Fix multiline vacation messages with procmail driver (Bug #5273).

Calendar Changes
[cjh] Display attendees list correctly without a mail/compose method (Bug
[cjh] Send iCalendar data as UTF-8 (Bug #5427).
[jan] Fix duration of remote and imported full-day events (Bugs #4617, #4794).
[jan] Fix recurring multiday events crossing a month border (Bug #5205).
[jan] Fix duration calculation in edit form for events covering more than a
      month (Bug #5120).


[jan] Add instructions for manually installing database tables.
[jan] Add IMAP requirements to the documentation.

Horde Changes
[jan] SECURITY: Correctly quote file names in cleanup script for temporary
[jan] SECURITY: Fix an XSS vulnerability in the language selection.
[jan] Fix RPC authentication on CGI SAPIs.
[jan] Detect unencrypted PGP messages.
[jan] Complete Cyrus virtual domain support in cyrsql driver (Vilius Sumskas
      <>, Request #4967).
[jan] Add option whether to strip domains from usernames in the account block
      (Request #4955).
[jan] Fix email lists not being validated under certain conditions (Bug #4834).
[cjh] Add a REST-ful preferences interface.
[cjh] Faster DataTree-to-SQL History migration script
      (, Request #4732).
[cjh] Improved automatic webroot detection (Ben Klang, Request #4126).
[cjh] Rewrite and fix the OCI8 SessionHandler (Bug #3452).
[cjh] Allow signup hooks to override the user_name and password fields
      (, Request #2904).
[cjh] Fix creation of mailbox quotas by the Auth_cyrus driver
      (, Bug #4678).
[cjh] Add "Save and Finish" to the share edit window (,
      Request #4307).
[cjh] Let mailto: and anchor (#) links through Horde::externalUrl (Bug #3079).
[cjh] Add smbclient version of the SMB Auth class (,
      Request #4338).
[cjh] Remove problematic "data descriptor" segment from generated ZIP files
      (, Bug #4670).
[cjh] Strip accesskeys from menu tooltips when only showing icons (Bug #4667).
[jan] Fix saving files in the root directory of an SQL VFS backend (Bug #4652,
      Ben Klang <>).
[jan] Fix displaying all maintenance tasks to be confirmed at once (Bug #4377).
[cjh] Fix return format of DataTree_null::getByAttributes()
      (, Bug #4651).
[jan] Support departments in vCard's ORG properties (,
      Request #4285).
[cjh] Rename Auth_sasl backend to Auth_peclsasl to avoid conflicts with PEAR's
      Auth_SASL (Bug #4547).
[cjh] Implement handling of vTimezones in iCalendar data
      (Carl Thompson <>, Bug #4399).
[cjh] keybindings.js now works with Safari/KHTML.
[jan] Avoid recursive folder creation when sharing Kolab folders
      (, Bug #4325).
[jan] Add Kolab specific account block driver to support special Kolab users
      (, Request: #4119).
[mms] Only dim below the last signature line of input text in the dimsignature
      Text_Filter driver.

Mail Changes
[jan] SECURITY: Fix XSS vulnerabilities in the search screen and thread view.
[jan] Improve displaying of PGP messages (requires Horde 3.1.4 partially).
[mms] Make sure we pass a read/write IMAP stream to the filters API (Bug
[mms] Do not allow move to trash unless trash folder is defined (Bug #5012).
[jan] Fix an encoding issue with the address book popup (Bug #5050).
[cjh] Ignore All spellchecking fixes (, Bug #4922).
[cjh] Absolute restriction on the width of the contacts window select elements
      (Request #1985).
[cjh] Send lowercase mailto: attributes in iCalendar replies (Bug #4872).
[cjh] Don't improperly increment iCalendar SEQUENCE values (Bug #4863).
[mms] Always subscribe to created folders.
[mms] Don't allow both trash folder and Virtual Trash to be selected in the
      options (Bug #4698).
[cjh] Turn mailto: links in HTML emails into IMP compose links (Bug #3079).
[cjh] Attempt to calculate the actual filesystem block size in the
      IMP_Quota_command driver (Eric Rostetter
      <>, Request #4360).
[cjh] Make sure to honor user date format preferences in iTip viewer
      (Bug #4635).
[cjh] Fix message list header underflow in IE7 (Bug #4608).
[cjh] Don't return empty sent-mail folders from the identity (Bug #4380).
[cjh] Don't rename folders from or to an empty string (Bug #4380).
[mas] Don't replace spaces with '.' when expanding addresses. (Bug #4236)

Address Book Changes
[jan] Fix character set encoding of exported vCards.
[mjr] Fix fatal error when exporting to vCard.
[cjh] Organize basic search form from left to right (Request #4914).
[jan] Fix links to only show contacts or lists, or both.
[mjr] Don't remember the lastly selected address book in the session, if it
      was not browseable.
[mjr] Fix bug that caused counting the number of contacts in a shared SQL
      source to return the count of the user's default address book instead.
[mjr] Fix bug that caused the wrong address book to be deleted when replacing
      an address book during import.

Filters Changes
[jan] Fix blacklists and whitelists in the IMAP driver.

Calendar Changes
[jan] Fix character set encoding of exported vCalendar/iCalendar data.
[jan] Fixed MS-SQL driver (Bug #5088).
[jan] Add Catalan translation (Jordi Giralt <>).
[jan] Fix searching for non-ascii strings (Bug #4773).
[cjh] Display partial hours in free/busy view (,
      Request #4755).
[cjh] Honor date_format preference in reminders and notifications (Bug #4726).

Tasks Changes
[jan] Show alarms for overdue tasks too.
[jan] Add Catalan translation (Jordi Giralt <>).


[jan] Fix problems with CGI versions of PHP and the setup script.
[jan] Fix email lists not being validated under certain conditions (Bug #4834).

Calendar Changes
[cjh] SECURITY: Close arbitrary file inclusion in free/busy views.


[jan] Remove duplicate directories.


[jan] First release candidate.