Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
7960 lines (7091 sloc) 341 KB
[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.