package.xml0000664000175000017500000076150113160207100011277 0ustar janjan imp pear.horde.org A web based webmail system IMP, the Internet Mail Program, is one of the most popular and widely deployed open source webmail applications in the world. It allows universal, web-based access to IMAP and POP3 mail servers and provides Ajax, mobile and traditional interfaces with a rich range of features normally found only in desktop email clients. Michael Slusarz slusarz slusarz@horde.org yes Jan Schneider jan jan@horde.org yes Chuck Hagenbuch chuck chuck@horde.org no 2017-09-19 6.2.21 6.2.0 stable stable GPL-2.0 * [jan] Officially support PHP 7. 5.3.0 8.0.0alpha1 8.0.0alpha1 1.7.0 horde pear.horde.org 5.0.0 6.0.0alpha1 6.0.0alpha1 Horde_Auth pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Browser pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Cache pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Compress pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Core pear.horde.org 2.17.0 3.0.0alpha1 3.0.0alpha1 Horde_Crypt pear.horde.org 2.5.0 3.0.0alpha1 3.0.0alpha1 Horde_Css_Parser pear.horde.org 1.0.0 2.0.0alpha1 2.0.0alpha1 Horde_Date pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Editor pear.horde.org 2.0.4 3.0.0alpha1 3.0.0alpha1 Horde_Exception pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Icalendar pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Image pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Imap_Client pear.horde.org 2.23.0 3.0.0alpha1 3.0.0alpha1 Horde_Itip pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_ListHeaders pear.horde.org 1.1.0 2.0.0alpha1 2.0.0alpha1 Horde_LoginTasks pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Mail pear.horde.org 2.2.0 3.0.0alpha1 3.0.0alpha1 Horde_Mail_Autoconfig pear.horde.org 1.0.0 2.0.0alpha1 2.0.0alpha1 Horde_Mime pear.horde.org 2.3.0 3.0.0alpha1 3.0.0alpha1 Horde_Mime_Viewer pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Nls pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Notification pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Pack pear.horde.org 1.0.0 2.0.0alpha1 2.0.0alpha1 Horde_Perms pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_SpellChecker pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Stream pear.horde.org 1.4.0 2.0.0alpha1 2.0.0alpha1 Horde_Stream_Filter pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Stream_Wrapper pear.horde.org 2.1.0 3.0.0alpha1 3.0.0alpha1 Horde_Support pear.horde.org 2.0.5 3.0.0alpha1 3.0.0alpha1 Horde_Text_Filter pear.horde.org 2.1.0 3.0.0alpha1 3.0.0alpha1 Horde_Text_Flowed pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Tree pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Url pear.horde.org 2.2.0 3.0.0alpha1 3.0.0alpha1 Horde_Util pear.horde.org 2.4.0 3.0.0alpha1 3.0.0alpha1 Horde_Vfs pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_View pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 dom gettext hash json Horde_History pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Http pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Service_Gravatar pear.horde.org 1.0.0 2.0.0alpha1 2.0.0alpha1 File_ASN1 phpseclib.sourceforge.net openssl horde Role pear.horde.org 5.0.0alpha1 5.0.0 alpha alpha 2011-03-09 GPL-2.0 * First alpha release for Horde 4. 5.0.0beta1 5.0.0 beta beta 2011-03-16 GPL-2.0 * Fix purging deleted messages in dynamic view (Bug #9627). * Fix display of non-IMAP mailbox elements in folder lists (Bug #9650). * Fix print part display. * Fix listing users through IMP API. 5.0.0RC1 5.0.0 beta beta 2011-03-23 GPL-2.0 * First release candidate for Horde 4. * [mms] Fix loading virtual folder as initial page in standard view (Bug #9696). * [mms] Fix upgrading virtual folders from IMP 4 (Bug #9692). * [mms] Fix editing the size search criteria. * [mms] Optimize importing messages from mbox file. * [mms] Fix deletion from Virtual Inbox in standard view (Bug #9686). * [mms] Fix loading virtual folders from drop-down folder list (Bug #9687). * [mms] Fix thread sort by newest messages first (Bug #9685). * [mms] Add ability to import/download mailboxes in dynamic view. * [jan] Remove application tabs from AJAX interface (Bug #9679). * [mms] Move all portal rendering code to Horde. * [mms] Fix flag display in message list in traditional view (Bug #9673). 5.0.0RC2 5.0.0 beta beta 2011-03-29 GPL-2.0 * Second release candidate for Horde 4. * Fix max_folders permission (Bug #9741). * [jan] Rename all scripts in bin/ to be prefixed with imp- (Request #9647). * [jan] Correctly render notifications with embedded HTML in dynamic view (Bug #9729). * [mms] Fix moving to new mailbox, tasklist, and notepad in traditional view (Bug #9732). * [jan] Add left and right keys as aliases for up and down keys in dynamic view. * [mms] Add mailbox sorting and select all messages to vertical layout in the dynamic view (Request #9708). * [jan] Fix expansion of quoted sections in thread view. * [jan] Fix message previews in traditional view (Bug #9695). * [jan] Support importing of compressed mailbox files. * [jan] Fix upgrading of search_fields preference. * [jan] Fix key navigation in traditional mailbox view. * [mms] Don't cache FETCH data for the Spam and Trash mailboxes. * [mms] All views now honor 'initial_page' preference. * [mms] Fix loading virtual folder as initial page in standard view (Bug #9696). 5.0.0 5.0.0 stable stable 2011-04-06 GPL-2.0 * First stable release for Horde 4. * [jan] Notify about new mails in any Horde application. * [mms] New mail notifications now handled by the Horde Notification system (Request #9751). * [mms] Fix resuming messages with attachments (Bug #9780). * [mms] Fix javascript actions in standard view in IE 7/8 (Bugs #9801, 9809). * [jan] Fix application-specific permission checks (Bug #9786). * [mms] Fix printing of message parts in IE, regardless of local user settings (Bug #9756). * [mms] Fix IMP_Maillog regression from RC2 (Bug #9763). * [mms] Fix honoring default encryption option in dynamic view. * [jan] Show full alarm notifications in dynamic view (Request #9748). * [jan] Fix saving S/MIME certs to address book. * [mms] Support importing of compressed mailbox files if the zip extension is not available. 5.0.1 5.0.0 stable stable 2011-04-20 GPL-2.0 * [mms] Fix resuming reply drafts in HTML mode (Bug #9928). * [mms] Fix updating flags/logs on original messages after resuming from draft. * [mms] Fix flagging messages in search mailboxes in dynamic view. * [mms] Don't attempt to poll non-IMAP mailboxes (Bug #9896). * [mms] Fix deleting attachments from compose message in dynamic view (Bug #9899). * [mms] Newmail portal block can now be configured to auto-update. * [mms] Fix deleteMessages and flagMessages API calls (Bug #9888). * [mms] More intelligent polling in dynamic view (Request #9808). * [mms] Fix spurious viewport loading in rare situations (Bug #9768). * [mms] Show human readable message in multipart/report parts in the richest format possible (Bug #9873). * [mms] Fix unneeded body part downloads in alternative parts (Bug #9862). * [mms] Fix importing PGP private keys. * [mms] More intelligent part naming if name is not specified in the message (Request #9853). * [jan] Avoid double escaping of folder names in sent-mail drop down list. * [jan] Fix translation of special folders on certain IMAP servers. * [jan] Fix display of status icons in traditional view (Bug #9844). * [mms] Fix displaying all message parts in standard view (Bug #9827). * [mms] Allow .eml files to be imported into a mailbox (Request #9827). * [mms] Fix vertical layout resize in dynamic view (Bug #9834). * [mms] Fix link for filters menu item (Bug #9831). * [mms] Fix composing messages in mobile view. * [mms] IMP will refuse to work with POP3 servers that don't support UIDL. * [mms] Many POP3 fixes. 5.0.2 5.0.0 stable stable 2011-05-03 GPL-2.0 * [mms] Add quick flag filtering to traditional view. * [mms] Fix viewing linked attachments (Bug #9972). * [mms] Add support for the content-id access type of message/external-body. * [mms] Consolidate IMAP error handling code in IMP_Imap_Exception. * [mms] Use translated namespace name if available. 5.0.3 5.0.0 stable stable 2011-05-03 GPL-2.0 * [jan] Add missing files to package. 5.0.4 5.0.0 stable stable 2011-05-25 GPL-2.0 * [mms] Fix filter links in the preferences UI (Bug #10117). * [mms] Fix print icon for non text/html displayable attachments (Bug #10112). * [mms] Support $Junk/$NotJunk keywords when marking spam/ham. * [jan] Fix link to send PGP key to keyserver (Bug #10070). * [mms] Fix resizing compose window in dynamic view for IE 7/8 (Bug #10075). * [mms] Fix setting/unsetting passphrases in preferences (Bug #10096). * [mms] Base64url encode breacdrumb hash information in dynamic view. * [mms] Add login task to autocreate special mailboxes. * [mms] Workaround broken messages by allow viewing multipart/related parts that are not referenced in the base part. * [mms] Use ACLs to determine when to hide various UI options (Request #9537). * [mms] Cache various calculated mailbox information in the session. * [mms] Fix adding flags in advanced search (Bug #10049). * [mms] Fix display of subfolders in mobile view (Bug #10043). * [mms] Improved determination of available flags in a mailbox. * [mms] Fix adding to whitelist from dynamic view (rui.carneiro@portugalmail.net, Bug #10036). 5.0.5 5.0.0 stable stable 2011-06-01 GPL-2.0 * [jan] Fix loading message previews from search results (Bug #10152). * [mms] Fix sending messages with linked attachments (Bug #10125). * [mms] Handle response codes/errors returned from POP3 servers. * [mms] Fix POP3 regressions. * [mms] Workaround broken suhosin extension to allow search mailboxes (Request #9842). 5.0.6 5.0.0 stable stable 2011-06-08 GPL-2.0 * [mms] Fix regression in renaming mailboxes in dynamic view (Bug #10207). * [mms] Fix selecting sent-mail mailbox for not empty namespaces (Bug #10090). * [mms] Fix saving expand/collapse state in traditional folders view. * [mms] Update all flag changes in dynamic mode (Bug #10146). * [mms] Fix editing saved searches in dynamic mode (Bug #10189). * [mms] Fix regression in saving sent mail in traditional view (Bug #10193). * [mms] Fix regression in deleting mailboxes in traditional view (Bug #10170). * [mms] Fix currently selected mailbox in folder lists (Bug #10163). * [jan] Don't show button to strip attachments if turned off in the preferences (Bug #10154). * [jan] Fix printing from message popup (Bug #10188). * [jan] Fix viewing messages source from message popup (Bug #10190). * [jan] Fix editing saved searches in traditional view (Bug #10184). 5.0.7 5.0.0 stable stable 2011-06-14 GPL-2.0 * [mms] Don't strip HTML part of compose message when stripping attachments from saved sent-mail message (Bug #10234). * [mms] Fix regression when copying/moving messages into a new mailbox in traditional view (Bug #10232). * [mms] Fix regression when flagging all messages in a mailbox (Bug #10224). * [jan] Fix folder links in virtual folders (Bug #10221). * [mms] Show translated name for special mailboxes in sent mail lists (Bug #10220). * [mms] Fix regression in filtering mailbox in traditional view (Bug #10213). 5.0.8 5.0.0 stable stable 2011-07-05 GPL-2.0 * [jan] Don't attempt to delete linked attachments monthly if they have been disabled (Bug #10166). * [jan] Don't show basic headers twice when showing all headers (Bug #10276). * [jan] Add IMP_Contents#getTree() to return a tree representation of a message's MIME parts. * [mms] Fix regression in parsing list reply address (Bug #10258). * [jan] Tick sent-mail checkbox off when selecting sent-mail folder in dynamic view. * [jan] Keep key navigation active after clicking into a HTML message (Request #9720). * [mms] Fix additional regression when flagging all messages in a mailbox (Bug #10243). * [mms] Fix "Don't Show" filtering in traditional mailbox view (Bug #10244). 5.0.9 5.0.0 stable stable 2011-08-02 GPL-2.0 * [mms] Fix to allow search filters to be saved. * [mjr] Fix mouse click handling on mobile view (Bug #10355). * [mms] Ensure correct message charset is use if forward/reply headers contain non US-ASCII characters (Bug #10148). * [mms] Select all checkbox in dynamic view can now be toggled (Request #10067). * [mms] Remember vertical splitbar size in dynamic view. * [mms] Workaround IE quirks for compose autocomplete box (Bug #10250). * [mms] Fix resuming HTML drafts for non-reply messages (Bug #10298). * [jan] Fix verifying of inline signed PGP messages (requires Horde_Crypt 1.0.4). * [mms] Fix Shift-N shortcut in dynamic view (Bug #10352). * [mms] Add save message link to dynamic view preview window. * [mms] Correctly quote e-mail names when composing from compose links in the dynamic view (Bug #10292). 5.0.10 5.0.0 stable stable 2011-08-17 GPL-2.0 * [mms] Display flag to indicate a mailing list message. * [mms] Immediately update mailbox list when message is deleted and the mailbox does not support flags (e.g. POP3) (Bug #10424). * [mjr] Fix notifications not showing while accepting iTips * [mms] Correctly determine page with first/last unseen messages when using descending sequence sorting (Bug #9882). * [mms] Deletion works correctly from popup message view if base window is no longer available (Bug #9761). * [mms] Fix explicitly applying filters in INBOX in dynamic view (Bug #10291). * [mms] Add 'Edit as New' action for messages (Request #10206). * [mms] Remove 'allow_resume_all' configuration option (Request #10206). * [mms] Add personal contacts search filter. * [mms] Add ability to search all mailboxes (Request #10204). 5.0.11 5.0.0 stable stable 2011-08-31 GPL-2.0 * [mms] Automatically track rownumber updates when selecting messages; fixes SHIFT-DEL behavior in the dynamic view. * [mms] Fix contents of sent message when directly sending from spellcheck in standard view (Bug #10464). * [mms] Fix namespace auto-detection for non-sane namespace configs (Bug #10447). * [mms] Fix POP3 regression (Bug #10450). * [mms] Forwarded messages no longer treated as an attachment in the UI (Request #9754). * [mms] Correctly display submailboxes in dynamic view when new submailbox is created before parent mailbox is expanded (Bug #10429). 5.0.12 5.0.0 stable stable 2011-09-21 GPL-2.0 * [mms] Fix UI artifacts when renaming mailboxes in dynamic view (Bug #10533). * [jan] Don't open certain links in HTML messages in the message pane. * [mms] Add ability to toggle hide deleted messages in dynamic view (Request #10256). * [mms] Add auto-generated message filter (see RFC 3834). * [mms] Remove non-existent parent mailbox when removing last child mailbox in dynamic view (Bug #10495). * [mms] Provide content duration information for audio & video data if that information is available (RFC 3803). * [jan] Fix setting sender when redirecting messages via SMTP (Bug #10488). * [mms] Add List-ID information, if available, to auto-reply notification. * [mms] Display information on reply method in standard view when automatically choosing the reply type. * [mms] Fix generation of Save All attachments link. * [mms] More intelligent quoting of flowed text messages sent in HTML format. * [mms] Browser mailto-handler respects current IMP view mode (Bug #10475). * [mms] More workarounds for broken suhosin extension (Bug #10462). * [mms] Always show image thumbnail previews, if an image conversion utility is present on the system. 5.0.13 5.0.0 stable stable 2011-09-21 GPL-2.0 * [jan] Fix broken dependency on Text_Flowed. 5.0.14 5.0.0 stable stable 2011-10-18 GPL-2.0 * [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 status. * [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 #10539). 5.0.15 5.0.0 stable stable 2011-11-22 GPL-2.0 * [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] Improve 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 (http://grepular.com/email_privacy_tester/). * [mms] Fix intermittent attachment loss when composing messages. * [mms] Correctly reference CSS stylesheets contained within a multipart/related part. * [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 information. * [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). 5.0.16 5.0.0 stable stable 2011-12-13 GPL-2.0 * [jan] Use locale based folder sorting. * [mms] Workaround broken PGP signed data contained within encrypted parts (Bug #10809). * [mms] Fix signature verification display for combined encrypted/signed PGP messages. * [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). * [jan] Update Dutch translation (Pieterjan Heyse <pieterjan.heyse@scheppers-wetteren.be>). * [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 session. * [mms] Fix 'server' credential in preauthenticate hook. * [jan] Fix updating events from attendee responses (Bug #10772). * [jan] Update Japanese translation (Hiromi Kimura <hiromi@tac.tsukuba.ac.jp>). * [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). 5.0.17 5.0.0 stable stable 2011-12-21 GPL-2.0 * [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). 5.0.18 5.0.0 stable stable 2012-01-17 GPL-2.0 * [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. 5.0.19 5.0.0 stable stable 2012-02-28 GPL-2.0 * [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 #10947). * [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 #10926). * [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. 5.0.20 5.0.0 stable stable 2012-04-11 GPL-2.0 * [mms] Added the 'delhide_trash' preference. * [jan] Update Hungarian translation (Zoltán Németh <nemeth.zoltan@etit.hu>). * [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 tree. * [mms] Fix regression in displaying From address on mailbox page in traditional view. * [mms] Fix updating the compose address fields when using the contacts popup. 5.0.21 5.0.0 stable stable 2012-05-09 GPL-2.0 * [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. * [jan] Update Italian translation (Emilien <emilien@wifi.e4a.it>). * [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). * [jan] Update Slovak translation (Marika Schvarczova <schvarczova.marika@domeny.sk>). * [jan] Update Czech translation (Michal Foist <michal@foist.cz>). 5.0.22 5.0.0 stable stable 2012-06-26 GPL-2.0 * [mms] Only allow display of basic image types directly in browser. * [jan] Update Turkish translation (İstanbul Technical University). * [jan] Re-add option to report messages as spam/ham through redirection. * [jan] Update Swedish translation (Jakob Alvermark <jakob.alvermark@bsdlabs.com>). 5.0.23 5.0.0 stable stable 2012-06-26 GPL-2.0 * [jan] Fix closing the compose window after redirecting (Bug #11259). * [jan] Display correct values in permission-denied error messages (Bug #11253). 5.0.24 5.0.0 stable stable 2012-07-20 GPL-2.0 * [mms] SECURITY: Fix obscure XSS issue if uploading a file in dynamic view from the browser's local filesystem that has a filename that contains HTML. * [mms] Don't attempt to use non-IMAP mailbox names in IMAP server commands (Bug #11623). * [mms] Catch failure to add attachments in dynamic view because PHP's maximum allowed POST size was exceeded. * [jan] Fix search link from portal if using dynamic view (Bug #11314). * [mms] Fix regression in using Virtual Trash (Bug #11478; tonyb@go-concepts.com). * [mms] Fix sending MDN notifications in traditional view (Bug #11311). * [mms] Fix changing sort order in dynamic search mailboxes (Bug #11108). * [mms] Fix regression in creating top-level mailbox in traditional view (Bug #11326). * [mms] Fix spam reporting in minimal view. 2012-07-06 6.0.0alpha1 6.0.0alpha1 alpha alpha GPL-2.0 * First alpha release for Horde 5. * [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 #11135). * [mms] Improved handling of messages with multiple From addresses in mailbox views. * [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 view. * [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 preference. * [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 window. * [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 mailbox. * [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 view. * [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 #10886). * [mms] Traditional mode now requires javascript on the browser. * [mms] Added 'mbox_special' hook (rsalmon@mbpgroup.com, 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). 6.0.0beta1 6.0.0beta1 beta beta 2012-07-20 GPL-2.0 * [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. * [mms] Fix browser-based AJAX autocompletion (Bug #11233). * [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. 6.0.0beta2 6.0.0beta1 beta beta 2012-08-07 GPL-2.0 * [jan] Highlight quota level in dynamic mode. * [mms] Add keyboard shortcuts to dynamic compose page (Michael Wing <marsfurrycreature@gmail.com>). * [mms] Fix sidebar element wrapping. * [mms] Fix regression preventing contacts popup window from working (Bug #11324). * [mms] Fix regression in select all checkbox on traditional mailbox page (Bug #11317). * [mms] Fix regression in altering sort direction in dynamic mailbox view (Bug #11300). * [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 identities. * [mms] Fix recursive mailbox delete in dynamic view (Bug #11288). 6.0.0beta3 6.0.0beta1 beta beta 2012-08-29 GPL-2.0 * [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. 6.0.0beta4 6.0.0beta1 beta beta 2012-10-12 GPL-2.0 * [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 #11394). * [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). 6.0.0RC1 6.0.0beta1 beta beta 2012-10-26 GPL-2.0 * [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. 6.0.0RC2 6.0.0beta1 beta beta 2012-10-29 GPL-2.0 * [jan] Update Polish translation (Krzysztof Kozera <krzysztof113@o2.pl>). * [jan] Update Dutch translation (Arjen de Korte <arjen+horde@de-korte.org>). * [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. 6.0.0 6.0.0 stable stable 2012-10-30 GPL-2.0 * [mms] Fix regression in adding an attachment in minimal view. 6.0.1 6.0.0 stable stable 2012-11-07 GPL-2.0 * [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). * [jan] Update Slovak translation (Jozef Sudolský <jozef.sudolsky@elbia.sk>). * [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 #11603). * [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). 6.0.2 6.0.0 stable stable 2012-11-27 GPL-2.0 * [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 #11672). * [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. 6.0.3 6.0.0 stable stable 2013-01-10 GPL-2.0 * [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 #11874). * [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 <thomas.jarosch@intra2net.com>, Bug #11897). * [mms] Fix duplicate signature being added to compose messages in minimal view (Thomas Jarosch <thomas.jarosch@intra2net.com>, Bug #11896). * [jan] Update Basque translation (Ibon Igartua <ibon.igartua@ehu.es>). * [mms] Fix loss of HTML body if related conversion is turned off (Thomas Jarosch <thomas.jarosch@intra2net.com>, 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 <laurent.foucher@iut-tlse3.fr>). * [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 #11795). * [mms] Honor 'hide_when_unlimited' option for the quota driver (Thomas Jarosch <thomas.jarosch@intra2net.com>, Bug #11782). * [mms] Fix toggling other options in dynamic compose screen. 6.0.4 6.0.0 stable stable 2013-02-12 GPL-2.0 * [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] Update Slovak translation (Jozef Sudolský <jozef.sudolsky@elbia.sk>). * [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 (aarno.sandvik@helsinki.fi, 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). 6.0.5 6.0.0 stable stable 2013-05-29 GPL-2.0 * [mms] SECURITY: Fix XSS vulnerability on smartmobile message page (João Machado <geral@jpaulo.eu>). * [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 #12079). * [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 listings. * [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). 2013-05-07 6.1.0beta1 6.0.0 beta stable GPL-2.0 * [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 permission system. * [mms] Upgraded IMP permissions to allow permissions to be set per active backend. * [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 generated. * [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] Re-add alerts log to dynamic mailbox view. * [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 '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. 6.1.0beta2 6.0.0 beta stable 2013-05-14 GPL-2.0 * [mms] Directly output image thumbnails via data URIs when possible. * [jan] Fix incorrect dependencies. 6.1.0RC1 6.0.0 beta stable 2013-05-29 GPL-2.0 * [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] Added '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). 6.1.0 6.1.0 stable stable 2013-06-04 GPL-2.0 * [mms] Fix fatal error when importing a S/MIME key (Bug #12290). * [mms] Fixed segfaults caused by SMTP debugging. 6.1.1 6.1.0 stable stable 2013-06-12 GPL-2.0 * [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 500 messages by default. * [mms] Fix adding addresses from the contacts popup in certain situations (Bug #12312). * [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. 6.1.2 6.1.0 stable stable 2013-06-18 GPL-2.0 * [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). 6.1.3 6.1.0 stable stable 2013-07-16 GPL-2.0 * [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 #12417). * [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). 6.1.4 6.1.0 stable stable 2013-08-27 GPL-2.0 * [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 draft. * [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). 6.1.5 6.1.0 stable stable 2013-10-29 GPL-2.0 * [mms] SECURITY: Fix XSS in message and search screens resulting from a user-defined flag label (João Machado <geral@jpaulo.eu>). * [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 #12608). * [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). 6.1.6 6.1.0 stable stable 2013-11-19 GPL-2.0 * [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). 6.1.7 6.1.0 stable stable 2014-03-07 GPL-2.0 * [mms] Add Save All link to the popup message page in dynamic view. * [jan] Update Danish translation (Erling Preben Hansen <erling@eph.dk>). * [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 #12746). * [mms] Don't provide links to view attachments in compose screen unless the attachment can be displayed (Bug #12841). 6.1.8 6.1.0 stable stable 2014-07-07 GPL-2.0 * [mms] SECURITY: Fix XSS in displaying user-defined flags in basic mailbox and message view. * [mms] SECURITY: Fix XSS in displaying user-defined flags in dynamic mailbox view (João Machado <geral@jpaulo.eu>). * [mms] SECURITY: Fix XSS in displaying mailbox name in dynamic mailbox view (João Machado <geral@jpaulo.eu>). * [mms] Fix scrolling through large search mailboxes in dynamic view (Bug #13138). * [mms] Better handling of malformed message dates in mailbox listing (Bug #13114). * [jan] Update Korean translation (Deokgon Kim <dgkim@dgkim.net>). 2014-05-05 6.2.0alpha1 6.2.0 alpha alpha GPL-2.0 * [mms] Don't set References header in reply message if equal to In-Reply-To header (RFC 5322 [3.6.4]). * [mms] Add configurable IMAP quota checking interval (Request #12907). * [mms] Honor 'from_link' preference in dynamic view. * [mms] Add support for storing image data within HTML signatures. * [mms] Ensure that viewing large mailboxes does not overload the session storage size. * [mms] Implement web notifications for new mail alerts. * [mms] Add bare address information to title attribute in viewport on dynamic mailbox page * [mms] Display flags on the smartmobile mailbox page (Request #12687). * [mms] Support non-ASCII characters in user-defined flag names (Request #12335). * [mms] Potentially save a call to the contacts backend when viewing HTML messages if no image data is present in the message. * [mms] Improved styling of dynamic mailbox page, to fix issues when resizing the browser font size (Bug #13071). * [mms] Don't send as multipart/alternative if plaintext part is empty. * [mms] Add smiley data to message when added via the HTML editor (Request #13051). * [mms] Add mailbox size information retrieval to dynamic view (Request #12965). * [mms] Display unread message count in title via favicon bubbles, if browser supports. * [mms] Abstracted maillog code. * [mms] Enable configuration of IMAP cache lifetime for Horde_Cache and Hashtable backends. * [mms] Only refresh quota information when switching to a mailbox the first time. * [mms] More efficiently store mailbox cache information in the session. * [mms] Load copy/move mailbox selection list on-demand in smartmobile view. * [mms] Cache results of inline image view status. * [mjr] Add IMP_Api::logRecipient. * [mms] Remove the mail_domain preference. * [mjr] Add display of reccurence data to iTip viewer (Request #12919). * [mms] Allow HTML data to be pasted within HTML compose editor paste dialog. * [mms] Filter outgoing HTML compose messages for XSS vulnerabilities. * [mms] Add permission to limit the maximum body size of a composed message. * [mms] Show placeholder image when dropping onto HTML editor while the image is uploaded to the server. * [mms] Add rate limiting to new mail notification alerts to prevent flooding of the remote mail server (Request #12705). * [mms] Browser stored preferences are now prefixed by user information. * [mms] Strip PGP armor text when replying to a message. * [mms] Move determination whether to scan plaintext messages for PGP data from preferences to MIME viewer configuration. * [mms] Add copy email option to the address context menu in dynamic view. * [mms] Support uploading multiple attachments at once in dynamic view. * [mms] Better reporting of e-mail address errors when composing. * [mms] Add list information display to dynamic view. * [jan] Add signatures to compose view. * [mms] Add keyboard shortcuts to allow a more granular scroll of the dynamic preview pane (Request #12750). * [mms] Add country flag graphic to contact image information in dynamic view. * [mms] Address autocompleter on dynamic and basic page now uses a fancy UI. * [mms] Add ability to specify maximum total attachment size in composed message before all attachments are converted to links. * [mms] Cache generation of print-specific CSS. * [mms] Add support for showing a contact image in the contacts popup box in dynamic view. * [mms] Add ability to create a new filter rule from context menus in the dynamic view. * [mms] More intelligent sizing of raw message parts opened in a popup window. * [mms] Load sent-mail mailbox list on demand in dynamic view. * [mms] Allow configurable access to remote accounts from within a session (Request #8077). * [jan] Display "Other Options" icon instead of "New Window" icon in collapsed preview headers. * [mms] More advanced auto-completion for smartmobile view. 6.2.0beta1 6.2.0 beta beta 2014-05-21 GPL-2.0 * [jan] Add Japanese help file (Hiromi Kimura <hiromi@tac.tsukuba.ac.jp>). * [mms] Add automatic configuration of remote account connection details. * [mms] Support LMTP servers when sending mail. * [mms] Fix regression where creating a mailbox that is currently a container would not subscribe to that mailbox. * [mms] Add checks to ensure that saved session expiration message was created by the user rather than an outside source. * [mms] Improved handling for multiple expand/collapse actions in the dynamic folder list (Bug #13170). * [mms] Provide visual UI info to user that file is uploading when drag/drop attachments in dynamic view. 6.2.0beta2 6.2.0 beta beta 2014-06-04 GPL-2.0 * [mms] Allow drag/drop to HTML compose body work with text data (Firefox only). * [mms] Cache mailbox exists results in the current access. 6.2.0beta3 6.2.0 beta beta 2014-06-17 GPL-2.0 * [mms] Fix saving attachments to sent-mail message in smartmobile view (Bug #13257). * [mms] Remove the 'default_msg_charset' preference. * [mms] Rewritten folder list code for dynamic view. * [mms] Fix saving expanded state when expanding all mailboxes when all mailboxes are already cached in the browser. 6.2.0RC1 6.2.0 beta beta 2014-07-01 GPL-2.0 * [mms] Fix handling image attachments when added via the HTML editor Image dialog. 6.2.0 6.2.0 stable stable 2014-07-08 GPL-2.0 * [mms] Fix some regressions in linked attachments behavior (Bug #13232). * [mjr] Fix fatal error when printing empty HTML attachments (Bug #13322). 6.2.1 6.2.0 stable stable 2014-08-04 GPL-2.0 * [mjr] Fix iTip handling when recurrence exceptions are present (Bug #13399). * [mms] Fix displaying Sent mailbox label when multiple sent-mail mailboxes are defined. * [mms] Fix advanced search in all mailboxes if virtual folders or remote accounts exist (Bug #13384). * [mms] Fix regression in automatically expanding deeply nested mailboxes in the dynamic folder list. * [mms] Fix regression where containers could not be moved via drag/drop in dynamic view. * [mms] Don't perform purge sentmail login task unless at least one sentmail mailbox exists. * [mms] Don't perform purge Spam login task unless Spam mailbox exists. * [mms] Fix dragging a mailbox to the base level in dynamic view. * [mms] Add ability to drag/drop text to dynamic HTML compose window on Chrome and IE. * [mms] Re-enable drag/drop of text to dynamic plaintext compose window (Bug #13281). 6.2.2 6.2.0 stable stable 2014-09-05 GPL-2.0 * [mms] Ensure that search/POP3 mailbox listings are saved even if there is an issue with the underlying cache backend. * [mms] Fix replying to non-UTF-8 messages when the 'reply_charset' preference is true. * [jan] Fix vCard MIME viewer. * [jan] Fix MIME viewer form actions in basic view (Bug #12677). * [mms] Don't store/retrieve message history data if the Message-ID is missing/invalid. * [mms] Fix resuming draft from mailbox page in basic view. * [mms] Fix displaying Virtual Trash mailbox (Bug #13418). * [mms] Fix menu actions on the minimal message page (Bug #13440). * [jan] Fix switching to HTML editor in basic mode if signature display is not active. * [mms] Fix expiring session cached mailbox data when mailbox information changes. * [mms] Fix updating viewport immediately after deleting messages on POP3 servers. 6.2.3 6.2.0 stable stable 2014-10-29 GPL-2.0 * [mms] Fix handling authentication errors when they take place during an attempt to determine a mailbox's namespace. * [mms] Fix some folder display issues when not using IMAP subscriptions in dynamic view (Bug #13553). * [mms] Fix accessing dynamic compose page when file uploads are not available (Bug #13580). * [mms] Fix saving unique browser preferences for a specific backend in dynamic view. * [mms] Fix toggling select all checkbox in both dynamic mailbox layouts. 6.2.4 6.2.0 stable stable 2014-12-03 GPL-2.0 * [mms] Don't persist dynamic filter views across page reloads. * [mms] Fix message saving when using a POP3 server. * [jan] Fix JS error when using regexp characters in search string. * [mjr] Ensure we have a valid MIME part to display in thread view (Bug #13653). 6.2.5 6.2.0 stable stable 2015-01-14 GPL-2.0 * [mms] Fix advanced search (Bug #13773). * [mjr] Fix handling of iTips indicating a change to a series exception (Bug #13777). * [mms] Fix parsing broken S/MIME messages that don't include the smime-type content-type parameter (Request #13661). * [mms] Fix regression when working with multiple selected messages with a POP3 server (Bug #13759). * [mms] Only count successful compose mails when determining recipient limits (Bug #13751). 6.2.6 6.2.0 stable stable 2015-01-20 GPL-2.0 * [jan] Fix adding addresses from address book popup (Bug #13806). * [mjr] Fix fatal error when viewing a vTodo with attendees. * [jan] Make dependency on File_ASN1 optional. * [mms] Fix double listing of mailboxes in certain instances when subscriptions are active and unsubscribed mailboxes are shown. 6.2.7 6.2.0 stable stable 2015-02-10 GPL-2.0 * [jan] Fix regression with not being able to list users (Bug #13808). * [mms] Fix rebuilding the folder tree translations when the language is changed in a session (Bug #13821). 6.2.8 6.2.0 stable stable 2015-04-28 GPL-2.0 * [mms] SECURITY: Fix XSS vulnerability when manually switching between plaintext -> HTML compose mode. * [jan] Update Bcc address when switching identities (João Machado <geral@jpaulo.eu>, Bug #13922). * [jan] Fix protocol name in POP3 example backend configuration. * [mms] Don't honor linked attachment limit configuration options if linked attachments are disabled (Bug #13665). 6.2.9 6.2.0 stable stable 2015-06-18 GPL-2.0 * [jan] Don't focus body field when composing message with HTML editor. * [jan] Protect against infinite request loop if expanding all mailboxes. * [jan] Don't show ACL context menu if ACL preferences are locked. * [jan] Fix redirecting in smartmobile mode (Bug #14002). * [jan] Fix address autocompletion in redirection window of smartmobile mode (Bug #14002). * [jan] Fix setting single recipients in redirection window in basic mode (Bug #14002). * [jan] Don't switch to regular compose view after an error in the redirection view in basic mode. * [jan] Fix cancelling redirection window in basic mode (Bug #14002). 6.2.10 6.2.0 stable stable 2015-08-01 GPL-2.0 * [mms] Ensure mailbox name is a valid string (Bug #14049). 6.2.11 6.2.0 stable stable 2015-10-21 GPL-2.0 * [mjr] Request that the contacts API only consider email fields when detecting duplicates during automatic saving of attendees to the address book (Bug #14119). * [jan] Don't show "Create Keys" button if creating PGP keys is disabled (steffen.hau@rz.uni-mannheim.de, Request #14096). * [mjr] Fix displaying iTips with certain locale/date_format preference combinations (Bug #14076). 6.2.12 6.2.0 stable stable 2016-02-02 GPL-2.0 * [jan] Don't strip PGP mime parts when saving sent messages (Bug #14233). * [jan] Fix retrieving public PGP keys with certain HTTP client backends. * [jan] Send MDNs from the correct identity (Bug #14034). * [jan] Fix autocompleter filtering if items exceed the maximum size (jsveiga@it.eng.br, Bug #13984). * [jan] Use access rules compatible with both Apache 2.2 and 2.4. * [jan] Allow to disable remote accounts by locking the preference. * [jan] Fix setting title with newmail count in IE11 and Edge (Bug #14189). * [jan] Fix wrapping of plain text converted from HTML MIME parts. 6.2.13 6.2.0 stable stable 2016-03-21 GPL-2.0 * [mjr] Fix opening compose window on IE when uploads are disabled (Bug #14267). * [jan] Update Greek translation (Limperis Antonis <limperis@cti.gr>). * [jan] Fix creating new trash folder from preference screen. * [jan] Fix finding reply or forward text from signed or encrypted messages with HTML content. 6.2.14 6.2.0 stable stable 2016-04-05 GPL-2.0 * [mjr] Fix renaming subfolders in basic view (Bug #14254). * [mjr] Fix display of mailbox sizes in basic view (Bug #14308). * [mjr] Fix fatal error when deleting messages in basic view when IMAP server does not support QRESYNC or CONDSTORE (Bug #14257). 6.2.15 6.2.0 stable stable 2016-07-01 GPL-2.0 * [jan] Update Portuguese translation. * [jan] Update Basque translation. * [jan] Remove <link rel=""> tags with "Previous" and "Next" from basic message view (Bug #14400). * [jan] Display translated mailbox names in drop down lists too. * [jan] Consistently display the raw mailbox name in mailbox element titles. * [jan] Unset window opener when opening new windows from HTML messages (João Machado <geral@jpaulo.eu>). * [mjr] Fix re-adding an attachment after it has been removed from the compose window (Bug #14329). 6.2.16 6.2.0 stable stable 2016-09-06 GPL-2.0 * [jan] Optimize deleting or moving a large number of messages. * [jan] Fix the 'special_mboxes' backend configuration (Bug #14423). * [mjr] Fix display of application/pkcs-7-mime parts (Bug #14363). 6.2.17 6.2.0 stable stable 2016-12-16 GPL-2.0 * [jan] Update German translation. * [jan] Update Greek translation. * [mjr] Fix issue when forwarding an email to multiple recipients in Mobile view (Bug #14060). * [jan] Fix iTip MIME viewer actions if attachment type hasn't been specified. * [mjr] Add option to reload folder tree when fetching via the API. * [jan] Update preview cache after permanently unblocking images from a sender (Bug #14446). 6.2.18 6.2.0 stable stable 2017-03-20 GPL-2.0 * [jan] Catch errors when converting email address to IDNA. * [jan] Correctly use preference to save attachments with sent messages in mobile modes (Bug #14571). 6.2.19 6.2.0 stable stable 2017-05-03 GPL-2.0 * [jan] Fix filename charset of certain attachments (Bug #14618). * [jan] Fix cursor jumping in some browser when editing address fields (Bug #14606). * [mjr] Fix auto creation of SPECIAL_USER mailboxes (Bug #14620). * [mjr] Fix sending email after the attach_body_check hook fails in Smartmobile view (Bug #14610). 6.2.20 6.2.0 stable stable 2017-08-01 GPL-2.0 * [jan] Fix finding reply or forward text from signed or encrypted messages with HTML content again (Bug #14656). * [mjr] Fix issue with reattaching a file after removing it on Chrome browsers (Bug #14657), * [jan] Allow Command-C to copy text from HTML message previews (Bug #14653). 6.2.21 6.2.0 stable stable 2017-09-19 GPL-2.0 * [jan] Officially support PHP 7. imp-6.2.21/bin/imp-admin-upgrade0000775000175000017500000000541313160207077014477 0ustar janjan#!/usr/bin/env php * @category Horde * @copyright 2013-2017 Horde LLC * @license http://www.horde.org/licenses/gpl GPL * @package IMP */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/imp/lib/Application.php'; } Horde_Registry::appInit('imp', array('cli' => true)); $parser = new Horde_Argv_Parser(); $parser->addOption('-t', '--task', array( 'dest' => 'task', 'help' => 'Upgrade task' )); list($values,) = $parser->parseArgs(); switch ($values->task) { case 'backend_perms': case 'backend_perms_force': $upgrade = array( 'create_folders' => 'create_mboxes', 'max_folders' => 'max_create_mboxes' ); $backends = array_keys(IMP_Imap::loadServerConfig()); $perms = $injector->getInstance('Horde_Perms'); $cli->message($cli->bold('Upgrading permissions.')); if ($values->task == 'backend_perms_force') { foreach ($backends as $backend) { try { $perms->removePermission($perms->getPermission('imp:' . $backend), true); $cli->message(sprintf('Force deletion of all "%s" backend permissions.', $backend)); } catch (Horde_Exception $e) {} } } foreach ($upgrade as $key => $val) { $pkey = 'imp:' . $key; try { if ($perms->exists($pkey)) { $pval = $perms->getPermission($pkey); foreach ($backends as $backend) { $parent_perm = 'imp:' . $backend; if (!$perms->exists($parent_perm)) { $perms->addPermission($perms->newPermission($parent_perm)); } $perm_edit = clone $pval; $perm_edit->setName($parent_perm . ':' . $key); $perms->addPermission($perm_edit); $cli->message(sprintf('Added "%s" permission to the "%s" backend.', $key, $backend)); } $perms->removePermission($pval); $cli->message(sprintf('Removed obsolete "%s" permission.', $key)); } } catch (Horde_Exception $e) { $cli->message(sprintf('Error upgrading "%s" permission: %s.', $key, $e->getMessage()), 'cli.error'); } } $cli->message($cli->bold('DONE upgrading permissions.')); break; } imp-6.2.21/bin/imp-bounce-spam0000775000175000017500000000415413160207077014174 0ustar janjan#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/gpl GPL * @package IMP */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/imp/lib/Application.php'; } Horde_Registry::appInit('imp', array( 'authentication' => false, 'cli' => true )); /** Configuration **/ /** * Location of the bounce template. * The following strings will be replaced in the template: * %TO% - The spammer's e-mail address. * %TARGET% - The target's e-mail address. */ $bounce_template = IMP_BASE . '/config/bounce.txt'; /** End Configuration **/ /* If there's no bounce template file then abort */ if (!is_readable($bounce_template)) { $cli->fatal('Bounce template does not exist.'); } /* Read the message content. */ $data = $cli->readStdin(); /* Who's the spammer? */ $headers = Horde_Mime_Headers::parseHeaders($data); $return_path = $headers->getOb('return-path'); /* Who's the target? */ $delivered_to = $headers->getOb('delivered-to'); /* Read the bounce template and construct the mail */ $bounce = str_replace( array('%TO%', '%TARGET%'), array($return_path[0]->bare_address, $delivered_to[0]->bare_address), file_get_contents($bounce_template) ); /* Send the mail */ $sendmail = "/usr/sbin/sendmail -t -f ''"; $fd = popen($sendmail, 'w'); fputs($fd, preg_replace("/\n$/", "\r\n", $bounce . $data)); pclose($fd); imp-6.2.21/bin/imp-mailbox-decode0000775000175000017500000000265113160207077014637 0ustar janjan#!/usr/bin/env php * @category Horde * @license http://www.horde.org/licenses/gpl GPL * @package IMP */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/imp/lib/Application.php'; } Horde_Registry::appInit('imp', array( 'authentication' => false, 'cli' => true )); $opts = array( 1 => 'Decode base64url string => IMAP mailbox', 2 => 'Encode IMAP mailbox => base64url string' ); switch ($cli->prompt('Action:', $opts)) { case 1: $encoded = trim($cli->prompt('Base64url encoded mailbox:')); $cli->writeln(); $cli->message($cli->red('IMAP mailbox: ') . IMP_Mailbox::formFrom($encoded)); break; case 2: $decoded = trim($cli->prompt('IMAP mailbox:')); $cli->writeln(); $cli->message($cli->red('Base64url encoded mailbox: ') . IMP_Mailbox::formTo($decoded)); break; } imp-6.2.21/bin/imp-query-imap-cache0000775000175000017500000002371713160207077015123 0ustar janjan#!/usr/bin/env php * @category Horde * @copyright 2010-2017 Horde LLC * @license http://www.horde.org/licenses/gpl GPL * @package IMP */ $baseFile = __DIR__ . '/../lib/Application.php'; if (file_exists($baseFile)) { require_once $baseFile; } else { require_once 'PEAR/Config.php'; require_once PEAR_Config::singleton() ->get('horde_dir', null, 'pear.horde.org') . '/imp/lib/Application.php'; } Horde_Registry::appInit('imp', array('cli' => true)); $parser = new Horde_Argv_Parser(); $parser->addOption('-l', '--lifetime', array( 'dest' => 'lifetime', 'help' => 'Purge lifetime (in seconds; default: ALL entries purged)', 'type' => 'int' )); $parser->addOption('-p', '--pass', array( 'dest' => 'pass', 'help' => 'Password (otherwise, is prompted; query mode)' )); $parser->addOption('-P', '--purge', array( 'action' => 'store_const', 'const' => 1, 'dest' => 'purge', 'help' => 'Purge cache' )); $parser->addOption('-s', '--server', array( 'dest' => 'server', 'help' => 'Server key (otherwise, is prompted)' )); $parser->addOption('-u', '--user', array( 'dest' => 'user', 'help' => 'Username (otherwise, is prompted; query mode)' )); list($values,) = $parser->parseArgs(); $imp_imap = $injector->getInstance('IMP_Factory_Imap')->create(); /* Set first entry to 1, not 0. */ $sconfig = $slookup = array(''); $i = 1; foreach ($imp_imap->loadServerConfig() as $key => $val) { $sconfig[$i] = $val->name . ' [' . $key . ']'; $slookup[$i++] = $key; } unset($sconfig[0]); $server = $values->server; while (is_null($server) || !in_array($server, $slookup)) { $tmp = $cli->prompt('Server:', $sconfig); if (isset($slookup[$tmp])) { $server = $slookup[$tmp]; } } $cli->message('Server: ' . $server); /* Purge cache? */ $action = $values->purge; if (is_null($action)) { $opts = array( 1 => 'Purge Cache', 2 => 'Query Cache' ); while (is_null($action)) { $action = $cli->prompt('Action:', $opts); } } if ($action == 1) { $config = $imp_imap->loadServerConfig($server)->cache_params; if (isset($config['backend'])) { $config['backend']->clear($values->lifetime); $cli->message('Cache cleared.'); } exit; } $user = $values->user; if (is_null($user)) { while (is_null($user)) { $user = $cli->prompt('Username:'); if (!strlen($user)) { $user = null; } } } else { $cli->message('Username: ' . $user); } $pass = $values->pass; while (is_null($pass)) { $pass = $cli->passwordPrompt('Password:'); if (!strlen($pass)) { $pass = null; } } $ob = $imp_imap->createBaseImapObject($user, $pass, $server); if (!$ob) { $cli->fatal('Could not create Imap Client object.'); } /* Make sure cache exists in the driver. */ $cache = $ob->getCache(); if (is_null($cache)) { $cli->fatal('Could not get cache object from driver.'); } try { $ob->login(); $cli->message('Successfully logged in to server.'); $mboxes = $ob->listMailboxes('*', Horde_Imap_Client::MBOX_ALL, array('flat' => true, 'sort' => true)); $cli->message('User mailbox count: ' . count($mboxes)); } catch (Horde_Imap_Client_Exception $e) { $cli->fatal('Error: ' . $e); } $opts = array( 1 => 'Summary Statistics (All Mailboxes)', 2 => 'Detailed Statistics (All Mailboxes)', 3 => 'Detailed Statistics (Single Mailbox)', 4 => 'Summary Statistics (Single UID)', 5 => 'Detailed Statistics (Single UID)', 6 => 'Expire All Mailboxes', 7 => 'Expire Mailbox', 8 => 'Expire specific UIDs', 0 => 'Exit' ); while (true) { $cli->writeln(); $action = $cli->prompt('Action:', $opts); switch ($action) { case 0: exit; case 1: $mbox_list = array(); $msg_cnt = $search_cnt = 0; foreach (array_map('strval', $mboxes) as $val) { if ($res = $cache->get($val)) { $mbox_list[$val] = array( 'msgs' => count($res) ); $msg_cnt += $mbox_list[$val]['msgs']; if ($res = $cache->getMetaData($val, null, array(Horde_Imap_Client_Base::CACHE_SEARCH))) { $mbox_list[$val]['search'] = count($res[Horde_Imap_Client_Base::CACHE_SEARCH]); $search_cnt += $mbox_list[$val]['search']; } } } $cli->writeln(); $cli->message($cli->bold('Cached mailboxes:') . ' ' . count($mbox_list)); $cli->message($cli->bold('Cached messages:') . ' ' . $msg_cnt); $cli->message($cli->bold('Cached searches:') . ' ' . $search_cnt); break; case 2: case 3: if ($action == 3) { $prompt = $cli->prompt('Mailbox:'); if (!strlen($prompt)) { break; } $mbox_list = array($prompt); } else { $mbox_list = array_map('strval', $mboxes); } foreach ($mbox_list as $mbox) { if ($res = $cache->get($mbox)) { $cli->writeln(); $indices = new IMP_Indices($mbox, $res); $uids = $indices->getSingle(true); $cli->message('Mailbox: ' . $cli->green($mbox)); $cli->message('Cached messages: ' . count($res) . ' [' . $imp_imap->getIdsOb($uids[1])->tostring_sort . ']'); $total_size = 0; foreach ($cache->get($mbox, $res, null) as $val) { $data = serialize($val); $total_size += strlen($data); } $cli->message('Approximate size: ' . IMP::sizeFormat($total_size)); if ($res = $cache->getMetaData($mbox)) { try { $status = $ob->status($mbox, Horde_Imap_Client::STATUS_UIDVALIDITY | Horde_Imap_Client::STATUS_HIGHESTMODSEQ); } catch (Horde_Imap_Client_Exception $e) { $cli->writeln(); $cli->message('Error: ' . $e, 'cli.error'); } if ($res['uidvalid']) { $cli->message( 'UIDVALIDITY: ' . $res['uidvalid'] . (($status['uidvalidity'] != $res['uidvalid']) ? ' [Server value: ' . $cli->red($status['uidvalidity']) . ']' : '') ); } if (isset($res[Horde_Imap_Client_Base::CACHE_MODSEQ])) { $cli->message( 'Highest MODSEQ seen: ' . $res[Horde_Imap_Client_Base::CACHE_MODSEQ] . (($status['highestmodseq'] != $res[Horde_Imap_Client_Base::CACHE_MODSEQ]) ? ' [Server value: ' . $cli->red($status['highestmodseq']) . ']' : '') ); } if (isset($res[Horde_Imap_Client_Base::CACHE_SEARCH])) { $cli->message('Cached searches: ' . count($res[Horde_Imap_Client_Base::CACHE_SEARCH])); } } } elseif ($action == 3) { $cli->writeln(); $cli->message(sprintf('No cache information found for "%s".', $mbox), 'cli.error'); } } break; case 4: case 5: $mbox = $cli->prompt('Mailbox:'); if (!strlen($mbox)) { break; } $uid = $cli->prompt('UID:'); if (!strlen($uid)) { break; } if ($res = $cache->get($mbox, array($uid), null)) { $cli->writeln(); $cli->message(sprintf('Message information [%s:%d]', $mbox, $uid)); $cli->message('Cached fields: ' . implode(', ', array_keys($res[$uid]))); $data = serialize($res[$uid]); $msg_size = strlen($data); $cli->message('Approximate size: ' . IMP::sizeFormat($msg_size)); if ($action == 5) { $cli->writeln(); $cli->writeln(print_r($res[$uid], true)); } } else { $cli->writeln(); $cli->message(sprintf('No cache information found for "%s:%d".', $mbox, $uid), 'cli.error'); } break; case 6: case 7: if ($action == 7) { $prompt = $cli->prompt('Mailbox:'); if (!strlen($prompt)) { break; } $mbox_list = array($prompt); } else { $mbox_list = array_map('strval', $mboxes); } if ($cli->prompt('Delete mailbox cache(s)?', array('1' => 'No', '2' => 'Yes'), 1) == 2) { $cli->writeln(); foreach ($mbox_list as $val) { $cache->deleteMailbox($val); $cli->message('Deleted cache: ' . $val, 'cli.success'); } } break; case 8: $mbox = $cli->prompt('Mailbox:'); if (!strlen($mbox)) { break; } $uids = $cli->prompt('UIDs (sequence string format):'); if (!strlen($uids)) { break; } $uids = new IMP_Indices($uids); if (!count($uids)) { $cli->writeln(); $cli->message('No UIDs found', 'cli.error'); break; } $cli->writeln(); try { $cache->deleteMsgs($mbox, $uids->getSingle(true)); $cli->message(sprintf('Deleted %d UIDs from cache.', count($uids)), 'cli.success'); } catch (Horde_Imap_Client_Exception $e) { $cli->writeln(); $cli->message('Failed deleting UIDs. Error: ' . $e, 'cli.error'); } break; } } imp-6.2.21/config/.htaccess0000664000175000017500000000017413160207077013543 0ustar janjan Require all denied Deny from all imp-6.2.21/config/backends.php0000664000175000017500000005134413160207077014235 0ustar janjan false, 'name' => 'IMAP Server', 'hostspec' => 'localhost', 'hordeauth' => false, 'protocol' => 'imap', 'port' => 143, // Plaintext logins are disabled by default on IMAP servers (see RFC 3501 // [6.2.3]), so TLS is the only guaranteed authentication available by // default. 'secure' => 'tls', ); // POP3 server $servers['pop'] = array( // Disabled by default 'disabled' => true, 'name' => 'POP3 Server', 'hostspec' => 'localhost', 'hordeauth' => false, 'protocol' => 'pop', 'port' => 110, // Default to secure TLS authentication by default (see RFC 2595 [4]). 'secure' => 'tls', ); // Advanced example - mainly here to demonstrate the syntax of all available // options. $servers['advanced'] = array( // Disabled by default 'disabled' => true, 'name' => 'Advanced IMAP Server', 'hostspec' => 'localhost', 'hordeauth' => false, 'protocol' => 'imap', 'port' => 143, 'secure' => 'tls', 'maildomain' => '', 'smtp' => array( // 'auth' => true, // 'debug' => false, // 'horde_auth' => false, // 'host' => 'smtp.example.com', // 'lmtp' => false, // 'localhost' => 'localhost', // 'password' => null, // /* Mail from a MUA SHOULD be sent via the mail submission port (587) // * rather than the MTA port (25). (See RFC 6409/STD 72). // * Note that mail submission REQUIRES some method of authentication // * (whether explicit user/password credentials or configuring the // * mail submission agent to automatically authenticate this host // * based on the network location). */ // 'port' => 587, // 'username' => null ), 'spam' => array( // 'innocent' => array( // 'display' => true, // // // Email reporting driver // 'email' => null, // 'email_format' => 'digest', // // // Null reporting driver // 'null' => true, // // // Program reporting driver // 'program' => null // ), // 'spam' => array( // 'display' => false, // // // Email reporting driver // 'email' => null, // 'email_format' => 'digest', // // // Null reporting driver // 'null' => true, // // // Program reporting driver // 'program' => null // ), // // It is possible to directly define additional spam drivers. // // The 'drivers' array should contain a list of driver objects // // (these classes must implement the IMP_Spam_Base class). // 'drivers' => array( // new IMP_Example_Spam_Driver() // ) ), 'admin' => array( // 'user' => 'cyrus', // 'password' => 'cyrus_pass', // 'userhierarchy' => 'user.' ), 'acl' => true, 'cache' => false, // 'debug' => '/tmp/imp_imap.log', // 'debug_raw' => false, 'quota' => array( 'driver' => 'imap', 'params' => array( 'hide_when_unlimited' => true, 'unit' => 'MB' ) ), 'special_mboxes' => array( // IMP_Mailbox::MBOX_DRAFTS => 'Drafts', // IMP_Mailbox::MBOX_SENT => 'Sent', // IMP_Mailbox::MBOX_SPAM => 'Spam', // IMP_Mailbox::MBOX_TEMPLATES => 'Templates', // IMP_Mailbox::MBOX_TRASH => 'Trash', // IMP_Mailbox::MBOX_USERSPECIAL => array( // 'Example' => _("Example Special Mailbox") // ) ), 'autocreate_special' => false, ); imp-6.2.21/config/conf.xml0000664000175000017500000002003113160207077013406 0ustar janjan true none Attachments false false true 5242880 0 0 0 0 Message Replies 200000 Address Autocompletion 3 HTML Signature 30000 0 history All attempts to send messages can be logged, including who has sent a message, when the message was sent, and to which recipients. This information can be used to configure message sending limits, create favorite recipient lists, or assist in tracking down malicious use. Enable this feature only if it doesn't violate privacy rules or laws in your country. Null 60 24 60 24 imp_sentmail IMP_Contacts_Avatar_Addressbook IMP_Contacts_Avatar_Addressbook IMP_Contacts_Avatar_Gravatar IMP_Contacts_Avatar_Unknown IMP_Contacts_Flag_Host true true imp-6.2.21/config/hooks.php.dist0000664000175000017500000006613413160207077014553 0ustar janjan $credentials, // // 'userId' => $userId // // ); // // return true; // // case 'transparent': // // Example: Always login as 'demo' user, with password 'demo'. // // // return array( // // 'credentials' => array( // // 'password' => 'demo', // // 'transparent' => true // // ), // // 'userId' => 'demo' // // ); // // return true; // } // } /** * AUTHENTICATION HOOK: post-authentication actions. * * See horde/config/hooks.php.dist for more information. * See preauthenticate() above for the list of credentials available. */ // public function postauthenticate($userId, $credentials) // { // return true; // } /** * PREFERENCE INIT: Set preference values on login. * * See horde/config/hooks.php.dist for more information. * * MAKE SURE YOU ACTIVATE THE INIT HOOK IN config/prefs.local.php! */ // public function prefs_init($pref, $value, $username, $scope_ob) // { // switch ($pref) { // case 'add_source': // // Dynamically set the add_source preference. // // // Example: Useful hook when using a Turba source with shares // // enabled (i.e. the example localsql configuration). // return is_null($username) // ? $value // : $GLOBALS['registry']->call('contacts/getDefaultShare'); // // // case 'search_fields': // case 'search_sources': // // Dynamically set the search_fields/search_sources preferences. // // // Example #1: Use the list of sources defined in the contacts // // application (e.g. Turba). // if (!is_null($username) && // $GLOBALS['registry']->hasMethod('contacts/sources')) { // $sources = $GLOBALS['registry']->call('contacts/sources'); // // if ($pref == 'search_fields') { // $out = array(); // foreach (array_keys($sources) as $source) { // $out[$source] = array(); // foreach ($GLOBALS['registry']->call('contacts/fields', array($source)) as $key => $val){ // if ($val['search']) { // $out[$source][] = $key; // } // } // } // } else { // $out = array_keys($sources); // } // // return json_encode($out); // } // // return $value; // } // } /** * Perform actions on compose attachments. * * @param IMP_Compose_Attachment $atc The attachment object. * * @throws IMP_Compose_Exception */ public function compose_attachment(IMP_Compose_Attachment $atc) { // // Example: Do a virus scan on the attachment, and reject attachment // // if a virus is found. // // This example uses the open source ClamAV binary (tested with // // v0.96). See: http://www.clamav.net/ // $clamscan = '/path/to/clamscan'; // exec($clamscan . ' --quiet ' . escapeshellarg($atc->tmpfile), $output, $return_var); // // switch ($return_var) { // case 1: // // Virus found. // throw IMP_Compose_Exception::createAndLog('INFO', 'Virus found in uploaded attachment. Attachment will not be added to the compose message.'); // // case 2: // // Error occurred. // Horde::log('Unknown error when scanning message for virus.', 'INFO'); // break; // } } /** * Check compose e-mail recipient before sending. * * @param Horde_Mail_Rfc822_Address $addr The address object. * * @return mixed If an error, an array with the following possible keys: * - msg: (string) The error text. * - level: (string; OPTIONAL) Either 'bad' (DEFAULT) or 'warn'. */ // public function compose_addr(Horde_Mail_Rfc822_Address $addr) // { // // Example #1: Only allow sending to local addresses (the // // "example.com" domain. // if ($addr->host != 'example.com') { // return array( // 'msg' => 'Can only send to addresses at example.com.', // 'level' => 'bad' // ); // } // // // // Example #2: Require valid domain (i.e. disallow bare usernames). // if (!strlen($addr->host)) { // return array( // 'msg' => sprintf('"%s" is missing the domain name.', $addr->mailbox), // 'level' => 'bad' // ); // } // } /** * Checks the raw text of the outoging compose message for words that * might indicate an attachment is present, and issues a warning if no * attachments are indeed present. * * If this hook is not defined, this check is not performed. * * This hook is run at most once per message. * * @return array A list of words to search for in the body text. */ // public function attach_body_check($body) // { // /* List of words to search for. */ // return array( // 'attachment', 'attached' // ); // } /** * Perform an action before a message has been sent. * * If an exception is thrown, sending is cancelled and the exception text * will be shown to the user in an error message. * * @param Horde_Mime_Part $message The message content object. * @param Horde_Mime_Headers $headers The message headers object. * @param IMP_Compose $compose The compose object. * * @throws IMP_Compose_Exception */ // public function pre_sent($message, $headers, $compose) // { // // Example #1: Add custom headers to outgoing message. // $custom_hdrs = array(); // // /* Add information on organization to which the sender belongs. // * Not standardized for use in e-mail, but generally recognized. // * See RFC 2076 [3.7]; RFC 1036 [2.2.8] */ // $custom_hdrs['Organization'] = 'Example Corp.'; // // // Add the IP of the remote browser // $custom_hdrs['X-Originating-IP'] = $_SERVER['REMOTE_ADDR']; // // // Add the Browser information of the remote browser // $custom_hdrs['X-Remote-Browser'] = $_SERVER['HTTP_USER_AGENT']; // // foreach ($custom_hdrs as $key => $val) { // $headers->addHeader($key, $val); // } // } /** * Perform an action after a message has been sent successfully. * * @param Horde_Mime_Part $message The message content object. * @param Horde_Mime_Headers $headers The message headers object. */ // public function post_sent($message, $headers) // { // // Do action here -- no return value from this hook. // } /** * Dynamically create the contents of the message trailer text. * * @param boolean $html If true, the trailer text to be * used in the HTML part. If null is * returned, the plaintext trailer * text will be used. * @param IMP_Prefs_Identity $identity The identity object of the sender. * @param Horde_Mail_Rfc822_List $to The list of addresses the message * is being sent to. * * @return string The trailer text to be used. */ // public function trailer( // $html, // IMP_Prefs_Identity $identity, // Horde_Mail_Rfc822_List $to // ) // { // // Example #1: Static trailer text. // if ($html) { // return "
This message was sent using IMP.
"; // } else { // return "--------------------------------\n" . // "This message was sent using IMP."; // } // // // // Example #2: Set the trailer from the system taglines file, // // located at "/usr/share/tagline" (generated by the "TaRT" utility; // // See: http://sourceforge.net/projects/linuxtart/). // return file_get_contents('/usr/share/tagline'); // // // // Example #3: Set the trailer using the LDAP directory (entry // // 'ispmanDomainSignature'). // $vdomain = Horde_String::lower(preg_replace('|^.*?\.|i', '', getenv('HTTP_HOST'))); // $ldapServer = 'localhost'; // $ldapPort = '389'; // $searchBase = 'ispmanDomain=' . $vdomain . ",o=ispman"; // // $ds = @ldap_connect($ldapServer, $ldapPort); // $searchResult = @ldap_search($ds, $searchBase, 'uid=' . $vdomain); // $information = @ldap_get_entries($ds, $searchResult); // $trailer = $information[0]['ispmandomainsignature'][0]; // @ldap_close($ds); // // return $trailer; // } /** * Add additional message flags in the message listing screen for a * mailbox. * * @param array $data The overview information for a message as returned * from the IMP_Mailbox_List::getMailboxArray() call * (see lib/Mailbox/List.php for documentation on the * structure of the array). * * @return array An array of additional flags to add. These flags must be * defined in the 'msgflags' preference. On error, return * an empty array. */ // public function msglist_flags($data) // { // // Example #1: Add a icon if the message was sent from a user within // // the same domain. // $flags = array(); // // if (($from_ob = $data['envelope']->from[0]) && // ($from_ob->host == 'example.com')) { // /* The '$indomain' flag in this example must have already been // * created in the 'msgflags' preference. */ // $flags = array('$indomain'); // } // // return $flags; // } /** * If message content filtering is enabled (see 'filtering' preference), * this defines the message filtering configuration. * * @return array An array with the following keys: * - replacement: (string) The string filtered words will be replaced * with. * - words: (array) The list of words to filter. */ public function msg_filter() { return array( 'replacement' => '****', 'words' => array( 'poop' ) ); } /** * Alter access permissions for a mailbox. * * The better way to accomplish this is to directly manipulate the ACLs * on the IMAP server (admins can do this via the ACL management page in * IMP's preferences). However, if ACL is not available on the remote * server, or mailbox permissions need to be dynamically altered, this * hook can be used instead. * * NOTE: This hook is only called once during a user's session - the * results of this hook are cached within the session. * * @param IMP_Mailbox $mailbox The mailbox. * @param Horde_Imap_Client_Data_Acl $acl The mailbox ACL. */ // public function mbox_acl(IMP_Mailbox $mailbox, // Horde_Imap_Client_Data_Acl $acl) // { // // Example #1: Make the 'Foo' mailbox a "fixed" folder (can't be // // renamed or deleted). // if ($mailbox == 'Foo') { // unset($acl[Horde_Imap_Client::ACL_DELETEMBOX]); // } // // // // Example #2: Make the 'Bar' mailbox read-only. // if ($mailbox == 'Bar') { // unset( // $acl[Horde_Imap_Client::ACL_DELETEMBOX], // $acl[Horde_Imap_Client::ACL_DELETEMSGS], // $acl[Horde_Imap_Client::ACL_EXPUNGE], // $acl[Horde_Imap_Client::ACL_INSERT], // $acl[Horde_Imap_Client::ACL_SEEN], // $acl[Horde_Imap_Client::ACL_WRITE] // ); // } // } /** * When a mailbox is opened in IMP, allow redirection based on the mailbox * name. * * @param string $mailbox The mailbox which the user has opened. * * @return string A valid page within a Horde application which will be * placed in a "Location" header to redirect the client. * Return an empty string if the user is not to be * redirected. */ // public function mbox_redirect($mailbox) // { // // Example #1: Redirect to various Horde apps based on the mailbox // // name. // if ((stripos($mailbox, "INBOX/Calendar") !== false) || // preg_match("!^user/[^/]+/Calendar!", $mailbox)) { // return Horde::url('', false, array('app' => 'kronolith')); // } elseif ((stripos($mailbox, "INBOX/Tasks") !== false) || // preg_match("!^user/[^/]+/Tasks!", $mailbox)) { // return Horde::url('', false, array('app' => 'nag')); // } elseif ((strpos($mailbox, "INBOX/Notes") !== false) || // preg_match("!^user/[^/]+/Notes!", $mailbox)) { // return Horde::url('', false, array('app' => 'mnemo')); // } elseif ((strpos($mailbox, "INBOX/Contacts") !== false) || // preg_match("!^user/[^/]+/Contacts!", $mailbox)) { // return Horde::url('', false, array('app' => 'turba')); // } // // return ''; // // // // Example #2: Kolab defaults. // $type = $GLOBALS['injector']->getInstance('Horde_Kolab_Storage') // ->getFolder($mailbox)->getType(); // switch ($type) { // case 'event': // return Horde::url('', false, array('app' => 'kronolith')); // // case 'task': // return Horde::url('', false, array('app' => 'nag')); // // case 'note': // return Horde::url('', false, array('app' => 'mnemo')); // // case 'contact': // return Horde::url('', false, array('app' => 'turba')); // // case 'prefs': // return $GLOBALS['registry']->getServiceLink('prefs', 'horde'); // // default: // return ''; // } // } /** * Allow a custom mailbox icon to be specified for "standard" mailboxes * ("Standard" means all mailboxes except the INBOX, sent-mail, and * trash mailboxes.) * * @return array A list of mailboxes, with the name as keys and the * values an array with 'icon' and 'alt' entries. * If a mailbox name doesn't appear in the list, the * default mailbox icon is displayed. */ // public function mbox_icons() // { // // Example #1: Default Kolab redirection scheme // $types = $GLOBALS['injector']->getInstance('Horde_Kolab_Storage') // ->getList()->getQuery()->listTypes(); // // $icons = array(); // foreach ($types as $f => $type) { // $t = preg_replace('/\.default$/', '', $type); // switch ($t) { // case 'event': // $icons[$f] = array( // 'alt' => _("Calendar"), // 'icon' => Horde_Themes::img('kronolith.png', 'kronolith') // ); // break; // // case 'task': // $icons[$f] = array( // 'alt' => _("Tasks"), // 'icon' => Horde_Themes::img('nag.png', 'nag') // ); // break; // // case 'note': // $icons[$f] = array( // 'alt' => _("Notes"), // 'icon' => Horde_Themes::img('mnemo.png', 'mnemo') // ); // break; // // case 'contact': // $icons[$f] = array( // 'alt' => _("Contacts"), // 'icon' => Horde_Themes::img('turba.png', 'turba') // ); // break; // // case 'h-prefs': // $icons[$f] = array( // 'alt' => _("Preferences"), // 'icon' => Horde_Themes::img('prefs.png', 'horde') // ); // break; // } // } // // return $icons; // } /** * Dynamically alter a mailbox display label. * * @param string $mbox The mailbox name. * @param string $label The current label. * * @return string The display label for $mbox. */ // public function mbox_label($mbox, $label) // { // // Example #1: Show 'foo' as 'bar' // return ($mbox == 'foo') // ? 'bar' // : $label; // } /** * Override sort preferences for a mailbox. * * @param IMP_Prefs_Sort_Sortpref $ob A sortpref object. */ // public function mbox_sort($ob) // { // // The sortpref object has two properties that can be set - 'sortby' // // and 'sortdir'. These properties will already contain the default // // values if there is no specific sort preferences defined for a // // mailbox (the mailbox can be found in the 'mbox' property). // // // Example #1: Assume that the 'sortdir' preference defaults to an // // ascending sort. However, the sort direction is desired to be // // descending for date searches (i.e. newest messages first). // if ($ob->sortdir_default && // in_array($ob->sortby, array(Horde_Imap_Client::SORT_SEQUENCE, IMP::IMAP_SORT_DATE))) { // $ob->sortdir = 1; // } // } /** * Determine whether to prompt a user to send a Message Disposition * Notification (MDN; a/k/a read-receipt) if their preferences require * a prompt. Useful if MDNs should automatically be sent for a certain * subset of messages, e.g. e-mail addresses within the domain. * * @param Horde_Mime_Headers $headers A headers object. * * @return boolean Should the user be prompted to send a MDN? */ // public function mdn_check($headers) // { // // Example #1: Don't require MDN prompt if the message is sent by // // someone within the same domain (NOTE: this does no checking on // // spoofed e-mail addresses; further verification should probably // // be done before automatically sending out a MDN). // $from = $headers->getOb('from'); // return (strcasecmp($from['host'], 'example.com') !== 0); // } /** * Allow additional information to be added/edited from the data that is * passed to the mailbox display template: * basic: imp/templates/basic/mailbox/mailbox.html * dynamic: imp/templates/dynamic/msglist_[horiz|vert].html * * If you are going to add new columns, you also have to update these * fields: * basic: imp/lib/Basic/Mailbox.php to specify the column width. * dynamic: imp/themes/dynamic/screen.css to specify the column width. * * @param array $msgs The mailbox data. * * @return array The altered array to use in the template. */ // public function mailboxarray($msgs) // { // // Example #1: Adds a 'foo' entry to each message element. // switch ($GLOBALS['registry']->getView()) { // case Horde_Registry::VIEW_BASIC: // case Horde_Registry::VIEW_DYNAMIC: // foreach (array_keys($msgs) as $key) { // $msgs[$key]['foo'] = true; // } // break; // } // // return $msg; // } /** * Dynamically disable composing messages. * * @return boolean Is composing disabled? */ // public function disable_compose() // { // // Example #1: Entirely disable composition. // return false; // } /** * Hide IMAP mailboxes in folder listings. * * @param string $mailbox The mailbox name. * * @return boolean If false, do not display the mailbox. */ // public function display_folder($mailbox) // { // // Example #1: Do not display the mailbox 'Foo'. // return ($mailbox != 'Foo'); // // // // Example #2: Kolab default // $types = $GLOBALS['injector']->getInstance('Horde_Kolab_Storage') // ->getList()->getQuery()->listTypes(); // return empty($types[$mailbox]) || ($types[$mailbox] == 'mail'); // } /** * Perform an action after messages have been reported as spam/innocent. * * @param string $action Either 'spam' or 'innocent'. * @param IMP_Indices $indices The list of indices that have been * reported as spam/innocent. */ // public function post_spam($action, $indices) // { // // Example #1: Copy messages to a (not)spam mailbox. This is the // // full mailbox name. // $targetMbox = 'foo'; // // $imp_message = $GLOBALS['injector']->getInstance('IMP_Message'); // $imp_message->copy($targetMbox, 'copy', $indices, array('create' => true)); // } /** * Determine quota for a user. * * @param array $params Parameters for the function, set in backends.php. * * @return array Tuple with two members: * - first: disk space used (in bytes) * - second: maximum disk space (in bytes) */ // public function quota($params = null) // { // // Example #1: Sample function for returning the quota. // // Uses the PECL ssh2 extension. // // Requires the 'command' parameter to be defined in backends.php, // // which defines the quota reporting function to run on the SSH // // host. // $imap_ob = $GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create(); // $host = $imap_ob->getParam('hostspec'); // $user = $params['host']; // $pass = $imap_ob->getParam('password'); // $command = $params['command']; // // $session = ssh2_connect($host); // if (!$session) { // throw new IMP_Exception(_("Connection to server failed.")); // } // // if (!ssh2_auth_password($session, $user, $pass)) { // throw new IMP_Exception(_("Authentication failed.")); // } // // $stream = ssh2_exec($session, $command, false); // stream_set_blocking($stream, true); // // $quota = preg_split('/\s+/', trim(stream_get_contents($stream)), 2); // return array($quota[1] * 1024, $quota[2] * 1024); // } /** * Retrieves public S/MIME keys of message recipients. * * The hook will be called first when searching for the keys, and further * lookup techniques will only be used if the hook throws an exception or * returns an empty result. * * @param string $address The email address of the recipient. * * @return string The base64-encoded public S/MIME key that matches the * email address. */ // public function smime_key($address) // { // $ldapServer = 'localhost'; // $ldapPort = 389; // $searchBase = 'ou=users,dc=example,dc=com'; // $binddn = 'uid=admin,dc=example,dc=com'; // $bindpw = 'secret'; // $attribute = 'simepublickey'; // // if (!@ldap_connect($ldapServer, $ldapPort)) { // return; // } // if (!@ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) { // return; // } // if (!@ldap_bind($ds, $binddn, $bindpw)) { // return; // } // // $searchResult = @ldap_search($ds, $searchBase, 'mail=' . $address); // $information = @ldap_get_entries($ds, $searchResult); // ldap_close($ds); // // if ($information === false || $information['count'] == 0) { // return; // } // // return $information[0][$attribute][0]; // } /** * Retrieves public PGP keys of message recipients. * * The hook will be called first when searching for the keys, and further * lookup techniques will only be used if the hook throws an exception or * returns an empty result. * * @param string $address The email address of the recipient. * @param string $keyid The PGP key id of the recipient. * * @return string The base64-encoded public PGP key that matches either * the email address or the fingerprint. */ // public function pgp_key($address, $keyid) // { // $ldapServer = 'localhost'; // $ldapPort = 389; // $searchBase = 'ou=users,dc=example,dc=com'; // $binddn = 'uid=admin,dc=example,dc=com'; // $bindpw = 'secret'; // $attribute = 'pgppublickey'; // // if (!@ldap_connect($ldapServer, $ldapPort)) { // return; // } // if (!@ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) { // return; // } // if (!@ldap_bind($ds, $binddn, $bindpw)) { // return; // } // // $searchResult = @ldap_search($ds, $searchBase, 'mail=' . $address); // $information = @ldap_get_entries($ds, $searchResult); // ldap_close($ds); // // if ($information === false || $information['count'] == 0) { // return; // } // // return $information[0][$attribute][0]; // } } imp-6.2.21/config/menu.php.dist0000664000175000017500000000333313160207077014364 0ustar janjan 'http://www.example.com/', * 'text' => 'Example, Inc.', * 'icon' => 'example.png', * 'icon_path' => 'http://www.example.com/images/', * 'target' => '_blank' * ); * * To add items in a separate container, separated by line separators, use a * unique 'container' property for each item to appear in the same container. * * For example, the following two entries will appear in the same container: * * $_menu[] = array( * 'url' => 'http://www.example.com/', * 'text' => 'Example, Inc.', * 'icon' => 'example.png', * 'icon_path' => 'http://www.example.com/images/', * 'target' => '_blank', * 'container' => 'mylinks' * ); * $_menu[] = array( * 'url' => 'http://www.another-example.com/', * 'text' => 'Another Example, Inc.', * 'target' => '_blank', * 'container' => 'mylinks' * ); */ $_menu = array(); /* Add your custom entries below this line. */ imp-6.2.21/config/mime_drivers.php0000664000175000017500000002162313160207077015145 0ustar janjan array( 'inline' => true, 'handles' => array( 'application/pgp', 'text/plain', 'text/rfc822-headers' ), 'limit_inline_size' => 1048576, /* Scans the text for inline PGP data. If true, will strip this data * out of the output (and, if PGP is active, will display the * results of the PGP action). */ 'pgp_inline' => false, /* If you want to scan ALL incoming text/plain messages for UUencoded * data, set the following to true. This is very performance intensive * and can take a long time for large messages. It is not recommended * (as UUencoded data is rare these days) and is disabled by * default. */ 'uudecode' => false ), /* HTML driver settings */ 'html' => array( /* NOTE: Inline HTML display is turned OFF by default. */ 'inline' => false, 'handles' => array( 'text/html' ), 'icons' => array( 'default' => 'html.png' ), 'limit_inline_size' => 1048576, /* Check for phishing exploits? */ 'phishing_check' => true ), /* Default smil driver. */ 'smil' => array( 'inline' => true, 'handles' => array( 'application/smil' ) ), /* Image display. */ 'images' => array( 'inline' => true, 'handles' => array( 'image/*' ), /* Display images inline that are less than this size (in bytes). */ 'inlinesize' => 262144, /* Display image thumbnails? */ 'thumbnails' => true, /* If displaying image thumbnails, send thumbnail data with the * base message data? This saves server accesses (1 for each thumbnail * generated in a message) at the expense that ALL thumbnails for a * message need to be generated before the message can be viewed. */ 'thumbnails_dataurl' => false ), /* Enriched text display. */ 'enriched' => array( 'inline' => true, 'handles' => array( 'text/enriched' ), 'icons' => array( 'default' => 'text.png' ) ), /* PDF display. */ 'pdf' => array( 'handles' => array( 'application/pdf', 'application/x-pdf', 'image/pdf' ), 'icons' => array( 'default' => 'pdf.png' ), /* Display PDF thumbnails? */ 'thumbnails' => true ), /* PGP (Pretty Good Privacy) display. */ 'pgp' => array( 'inline' => true, 'handles' => array( 'application/pgp-encrypted', 'application/pgp-keys', 'application/pgp-signature' ), 'icons' => array( 'default' => 'encryption.png' ) ), /* S/MIME display. */ 'smime' => array( 'inline' => true, 'handles' => array( 'application/x-pkcs7-signature', 'application/x-pkcs7-mime', 'application/pkcs7-signature', 'application/pkcs7-mime' ), 'icons' => array( 'default' => 'encryption.png' ) ), /* vCard display. */ 'vcard' => array( 'inline' => true, 'handles' => array( 'text/directory', 'text/vcard', 'text/x-vcard' ), 'icons' => array( 'default' => 'vcard.png' ) ), /* Zip file display. */ 'zip' => array( 'handles' => array( 'application/x-compressed', 'application/x-zip-compressed', 'application/zip' ), 'icons' => array( 'default' => 'compressed.png' ) ), /* Delivery status messages display. */ 'status' => array( 'inline' => true, 'handles' => array( 'message/delivery-status' ) ), /* Message Disposition Notification (MDN) display. */ 'mdn' => array( 'inline' => true, 'handles' => array( 'message/disposition-notification' ) ), /* Appledouble message display. */ 'appledouble' => array( 'inline' => true, 'handles' => array( 'multipart/appledouble' ), 'icons' => array( 'default' => 'apple.png' ) ), /* ITIP (iCalendar Transport-Independent Interoperability Protocol) * display. */ 'itip' => array( 'inline' => true, 'handles' => array( 'text/calendar', 'text/x-vcalendar' ), 'icons' => array( 'default' => 'itip.png' ), /* How event replies are handled when a user opens the message. * - false: Reply status is never automatically updated; requires * explicit action by the user. * - true: Reply status is always automatically updated. * - Array: An array of domains for which replies are always * automatically updated. All other domains require the * reply status to be explicitly updated by user action. */ 'auto_update_eventreply' => false, /* How free/busy publish data is handled when a user opens the * message. * - false: Free/busy data is never automatically updated; requires * explicit action by the user. * - true: Free/busy data is always automatically updated. * - Array: An array of domains for which free/busy data is always * automatically updated. All other domains require the * free/busy data to be explicitly updated by user * action. */ 'auto_update_fbpublish' => false, /* How free/busy replies are handled when a user opens the message. * - false: Free/busy data is never automatically updated; requires * explicit action by the user. * - true: Free/busy data is always automatically updated. * - Array: An array of domains for which free/busy data is always * automatically updated. All other domains require the * free/busy data to be explicitly updated by user * action. */ 'auto_update_fbreply' => false ), /* Audio data. */ 'audio' => array( 'handles' => array( 'audio/*' ), 'icons' => array( 'default' => 'audio.png' ) ), /* Video data. */ 'video' => array( 'handles' => array( 'video/*' ), 'icons' => array( 'default' => 'video.png' ), /* Display video thumbnails? */ 'thumbnails' => true, /* REQUIRED for thumbnails: location of ffmpeg binary. * http://ffmpeg.org/ */ 'ffmpeg' => '/usr/bin/ffmpeg' ), /* Alternative part display. * YOU SHOULD NOT NORMALLY ALTER THIS SETTING. */ 'alternative' => array( 'inline' => true, 'handles' => array( 'multipart/alternative' ) ), /* Related part display. * YOU SHOULD NOT NORMALLY ALTER THIS SETTING. */ 'related' => array( 'inline' => true, 'handles' => array( 'multipart/related' ), 'icons' => array( 'default' => 'html.png' ) ), /* Partial parts display. * YOU SHOULD NOT NORMALLY ALTER THIS SETTING. */ 'partial' => array( 'handles' => array( 'message/partial' ) ), /* Digest message (RFC 2046 [5.2.1]) display. * YOU SHOULD NOT NORMALLY ALTER THIS SETTING. */ 'rfc822' => array( 'handles' => array( 'message/rfc822', 'x-extension/eml' ) ), /* External-body (RFC 2046 [5.2.3]) display. * YOU SHOULD NOT NORMALLY ALTER THIS SETTING. */ 'externalbody' => array( 'handles' => array( 'message/external-body' ) ) ); imp-6.2.21/config/prefs.php0000664000175000017500000014470413160207077013605 0ustar janjan _("General"), 'label' => _("Personal Information"), 'desc' => _("Change the name, address, and signature that people see when they read and reply to your email."), 'members' => array( 'replyto_addr', 'alias_addr', 'tieto_addr', 'bcc_addr', 'signature', 'sig_dashes', 'signature_html_select', 'save_sent_mail', 'sent_mail_folder', 'sentmailselect' ), 'type' => 'identities' ); $_prefs['replyto_addr'] = array( 'value' => '', 'type' => 'text', 'desc' => _("Your Reply-to: address: (optional)") ); $_prefs['alias_addr'] = array( 'value' => '', 'type' => 'textarea', 'desc' => _("Your alias addresses: (optional, enter each address on a new line)") ); $_prefs['tieto_addr'] = array( 'value' => '', 'type' => 'textarea', 'desc' => _("Addresses to explicitly tie to this identity: (optional, enter each address on a new line)") ); $_prefs['bcc_addr'] = array( 'value' => '', 'type' => 'textarea', 'desc' => _("Addresses to BCC all messages: (optional, enter each address on a new line)") ); $_prefs['signature'] = array( 'value' => '', 'type' => 'textarea', 'desc' => _("Your signature:") ); $_prefs['sig_dashes'] = array( 'value' => 1, 'type' => 'checkbox', 'desc' => _("Precede your text signature with dashes ('-- ')?") ); // User's HTML signature - UI widget $_prefs['signature_html_select'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_HtmlSignature', 'requires_nolock' => array('signature_html'), 'suppress' => function() { return !$GLOBALS['session']->get('imp', 'rteavail'); } ); // User's HTML signature $_prefs['signature_html'] = array( 'value' => '' ); // Show signature on compose screen? $_prefs['signature_show_compose'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Show the signature on the compose screen?") ); $_prefs['save_sent_mail'] = array( 'value' => 1, 'type' => 'checkbox', 'desc' => _("Save sent mail?") ); // sent mail mailbox $_prefs['sent_mail_folder'] = array( // NOTE: Localization of this name for display purposes is done // automatically. To change the default value based on the backend, see // the 'special_mboxes' option in config/backends.php. 'value' => 'Sent' ); // sent mail mailbox selection widget. $_prefs['sentmailselect'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Sentmail', 'requires_nolock' => array('sent_mail_folder') ); // *** ACL Preferences *** $prefGroups['acl'] = array( 'column' => _("General"), 'label' => _("Share Mailboxes"), 'desc' => _("Share your mailboxes with other users."), 'members' => array('aclmanagement'), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_ACL); } ); // ACL preference management screen $_prefs['aclmanagement'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Acl' ); // mailbox sharing preferences $_prefs['acl'] = array( // set 'locked' => true to disable mailbox sharing 'value' => '' ); // *** Remote Accounts Preferences *** $prefGroups['remote'] = array( 'column' => _("General"), 'label' => _("Remote Accounts"), 'desc' => _("Configure remote mail accounts to display."), 'members' => array('remotemanagement') ); // UI for remote management. $_prefs['remotemanagement'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Remote', 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_REMOTE); } ); // Internal remote accounts storage value $_prefs['remote'] = array( // set 'locked' => true to disable remote accounts // 'value' = serialize(array()) 'value' => 'a:0:{}' ); // *** Saved Searches Preferences *** $prefGroups['searches'] = array( 'column' => _("General"), 'label' => _("Saved Searches"), 'desc' => _("Manage your saved searches"), 'members' => array( 'searchesmanagement' ), 'suppress' => function() { $imap = $GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create(); return (!$imap->access(IMP_Imap::ACCESS_SEARCH) || !$imap->access(IMP_Imap::ACCESS_FOLDERS)); } ); // UI for saved searches management. $_prefs['searchesmanagement'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Searches' ); $_prefs['vfolder'] = array( // By default, Virtual Inbox is enabled and Virtual Trash is disabled. // 'value' => serialize(array()) 'value' => 'a:0:{}' ); $_prefs['filter'] = array( // By default, all filters are enabled. // 'value' => serialize(array()) 'value' => 'a:0:{}' ); // *** Filter Preferences *** $prefGroups['filters'] = array( 'column' => _("General"), 'label' => _("Filters"), 'desc' => _("Create filtering rules to organize your incoming mail, sort it into mailboxes, and delete spam."), 'members' => array( 'filters_link', 'filters_blacklist_link', 'filters_whitelist_link', 'filter_on_login', 'filter_on_display', 'filter_any_mailbox', 'filter_menuitem' ) ); $_prefs['filters_link'] = array( 'type' => 'link', 'img' => 'filters.png', 'desc' => _("Edit your Filter Rules"), 'help' => 'filter-edit-rules', 'suppress' => function() { try { $GLOBALS['registry']->link('mail/showFilters'); return false; } catch (Horde_Exception $e) {} return true; }, 'on_init' => function($ui) { $ui->prefs['filters_link']['url'] = $GLOBALS['registry']->link('mail/showFilters'); } ); $_prefs['filters_blacklist_link'] = array( 'type' => 'link', 'url' => '', 'img' => 'filters.png', 'desc' => _("Edit your Blacklist"), 'help' => 'filter-edit-blacklist', 'suppress' => function() { try { $GLOBALS['registry']->link('mail/showBlacklist'); return false; } catch (Horde_Exception $e) {} return true; }, 'on_init' => function($ui) { $ui->prefs['filters_blacklist_link']['url'] = $GLOBALS['registry']->link('mail/showBlacklist'); } ); $_prefs['filters_whitelist_link'] = array( 'type' => 'link', 'url' => '', 'img' => 'filters.png', 'desc' => _("Edit your Whitelist"), 'help' => 'filter-edit-whitelist', 'suppress' => function() { try { $GLOBALS['registry']->link('mail/showWhitelist'); return false; } catch (Horde_Exception $e) {} return true; }, 'on_init' => function($ui) { $ui->prefs['filters_whitelist_link']['url'] = $GLOBALS['registry']->link('mail/showWhitelist'); } ); $_prefs['filter_on_login'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Apply filter rules upon logging on?"), 'help' => 'filter-on-login', 'suppress' => function() { return !IMP_Filter::canApplyFilters(); } ); $_prefs['filter_on_display'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Apply filter rules whenever Inbox is displayed?"), 'help' => 'filter-on-display', 'suppress' => function() { return !IMP_Filter::canApplyFilters(); } ); $_prefs['filter_any_mailbox'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Allow filter rules to be applied in any mailbox?"), 'help' => 'filter-any-mailbox', 'suppress' => function() { return !IMP_Filter::canApplyFilters(); } ); $_prefs['filter_menuitem'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Show the filter icon on the menubar?") . ' (' . _("Basic view only") . ')', 'help' => 'filter-menuitem' ); // *** Event Request Preferences *** $prefGroups['events'] = array( 'column' => _("General"), 'label' => _("Event Requests"), 'desc' => _("Configure how event or meeting requests should be handled."), 'members' => array('conflict_interval') ); $_prefs['conflict_interval'] = array( 'value' => 30, 'type' => 'number', 'desc' => _("Minutes needed to consider a event as non-conflicting in iTip") ); // *** PGP Preferences *** $prefGroups['pgp'] = array( 'column' => _("General"), 'label' => _("PGP"), 'desc' => _("Configure PGP encryption support."), 'members' => array( 'pgpmanagement' ), 'suppress' => function() { return !isset($GLOBALS['conf']['gnupg']['path']); } ); // These preferences MUST appear on the same page. $_prefs['pgpmanagement'] = array( 'value' => array( 'use_pgp', 'use_pgp_text', 'pgp_attach_pubkey', 'pgp_verify', 'pgp_reply_pubkey', 'pgppublickey', 'pgpprivatekey' ), 'type' => 'container' ); $_prefs['use_pgp'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Enable PGP functionality?"), 'help' => 'pgp-overview' ); $_prefs['use_pgp_text'] = array( 'value' => '
' . _("PGP support requires popup windows to be used. If your browser is currently set to disable popup windows, you must change this setting or else the PGP features will not work correctly.") . '
', 'type' => 'rawhtml', 'requires' => array('use_pgp') ); $_prefs['pgp_attach_pubkey'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Should your PGP public key to be attached to your messages by default?"), 'help' => 'pgp-option-attach-pubkey', 'requires' => array('use_pgp') ); $_prefs['pgp_verify'] = array( 'value' => 1, 'type' => 'checkbox', 'desc' => _("Should PGP signed messages be automatically verified when viewed?"), 'help' => 'pgp-option-verify', 'requires' => array('use_pgp') ); $_prefs['pgp_reply_pubkey'] = array( 'value' => 1, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Check for valid recipient PGP public keys while replying?"), 'help' => 'pgp-option-reply-pubkey', 'requires' => array('use_pgp') ); $_prefs['pgppublickey'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_PgpPublicKey', 'requires' => array('use_pgp') ); $_prefs['pgp_public_key'] = array( 'value' => '' ); $_prefs['pgpprivatekey'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_PgpPrivateKey', 'requires' => array('use_pgp') ); $_prefs['pgp_private_key'] = array( 'value' => '' ); // *** S/MIME Preferences *** $prefGroups['smime'] = array( 'column' => _("General"), 'label' => _("S/MIME"), 'desc' => _("Configure S/MIME encryption support."), 'members' => array( 'smimemanagement' ), 'suppress' => function() { return (!Horde_Util::extensionExists('openssl') || !isset($GLOBALS['conf']['openssl']['path'])); } ); // These preferences MUST appear on the same page. $_prefs['smimemanagement'] = array( 'value' => array( 'use_smime', 'use_smime_text', 'smime_verify', 'smimepublickey', 'smimeprivatekey' ), 'type' => 'container' ); $_prefs['use_smime'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Enable S/MIME functionality?"), 'help' => 'smime-overview' ); $_prefs['use_smime_text'] = array( 'value' => '
' . _("S/MIME support requires popup windows to be used. If your browser is currently set to disable popup windows, you must change this setting or else the S/MIME features will not work correctly.") . '
', 'type' => 'rawhtml', 'requires' => array('use_smime') ); $_prefs['smime_verify'] = array( 'value' => 1, 'type' => 'checkbox', 'desc' => _("Should S/MIME signed messages be automatically verified when viewed?"), 'help' => 'smime-option-verify', 'requires' => array('use_smime') ); // S/MIME public key management widget $_prefs['smimepublickey'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_SmimePublicKey', 'requires' => array('use_smime') ); $_prefs['smime_public_key'] = array( 'value' => '' ); // S/MIME private key management widget $_prefs['smimeprivatekey'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_SmimePrivateKey', 'requires' => array('use_smime') ); $_prefs['smime_private_key'] = array( 'value' => '' ); $_prefs['smime_additional_cert'] = array( 'value' => '' ); // *** Compose Preferences *** $prefGroups['compose'] = array( 'column' => _("Compose"), 'label' => _("Composition"), 'desc' => _("Configure how you send mail."), 'members' => array( 'mailto_handler', 'compose_spellcheck', 'set_priority', 'compose_html', 'compose_html_font_family', 'compose_html_font_size', 'compose_cursor', 'signature_show_compose', 'encryptselect', 'delete_attachments_monthly_keep', 'request_mdn', 'reply_lang', 'compose_popup', 'compose_confirm' ) ); // Link to register a mailto: handler with the browser $_prefs['mailto_handler'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Mailto' ); $_prefs['compose_spellcheck'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Check spelling before sending a message?") ); $_prefs['set_priority'] = array( 'value' => 1, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Set a priority header when composing messages?") ); $_prefs['compose_html'] = array( 'value' => 0, 'type' => 'enum', 'enum' => array( 0 => _("Plain Text"), 1 => _("Rich Text (HTML)") ), 'desc' => _("Default method to compose messages:") ); // For the HTML editor, this is the default font family. // This needs to be in CSS-parseable format. $_prefs['compose_html_font_family'] = array( 'value' => 'Arial', 'advanced' => true, 'locked' => true, 'type' => 'string', 'desc' => _("The default font family to use in the HTML editor."), 'requires' => array('compose_html') ); $_prefs['compose_html_font_size'] = array( 'value' => 14, 'advanced' => true, 'locked' => true, 'type' => 'number', 'desc' => _("The default font size to use in the HTML editor (in pixels)."), 'requires' => array('compose_html') ); $_prefs['compose_cursor'] = array( 'value' => 'top', 'type' => 'enum', 'enum' => array( 'top' => _("Top"), 'bottom' => _("Bottom") ), 'desc' => _("Where should the cursor be located in the compose text area by default?") ); // Select widget for the 'default_encrypt' preference $_prefs['encryptselect'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Encrypt', 'requires_nolock' => array('default_encrypt') ); // The default encryption method to use when sending messages $_prefs['default_encrypt'] = array( 'value' => IMP::ENCRYPT_NONE ); $_prefs['delete_attachments_monthly_keep'] = array( 'value' => 6, 'advanced' => true, 'type' => 'number', 'zero' => true, 'desc' => _("Delete linked attachments after this many months (0 to never delete):"), 'help' => 'prefs-delete_attachments_monthly_keep', 'suppress' => function() { return empty($GLOBALS['conf']['compose']['link_attachments']); } ); $_prefs['request_mdn'] = array( 'value' => 'never', 'advanced' => true, 'type' => 'enum', 'enum' => array( 'never' => _("No"), 'always' => _("Yes") ), 'desc' => _("Request read receipts?"), 'help' => 'prefs-request_mdn' ); $_prefs['reply_lang'] = array( // 'value' => serialize(array()) 'value' => 'a:0:{}', 'advanced' => true, 'type' => 'multienum', 'enum' => array(), 'desc' => _("What language(s) do you prefer replies to your messages to be in? (Hold down the CTRL key when clicking to add multiple languages)"), 'on_init' => function($ui) { $enum = Horde_Nls::getLanguageISO(); asort($enum); $ui->prefs['reply_lang']['enum'] = $enum; }, ); $_prefs['compose_popup'] = array( 'value' => 1, 'type' => 'checkbox', 'desc' => _("Compose messages in a separate window?") . ' (' . _("Basic view only") . ')' ); $_prefs['compose_confirm'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Display confirmation in popup window after sending a message?") . ' (' . _("Basic view only") . ')', 'requires' => array('compose_popup') ); // The list of buttons to show in CKeditor // See http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Toolbar for // details on configuration $_prefs['ckeditor_buttons'] = array( 'value' => "[['Bold','Italic','Underline'],['Font','FontSize'],['TextColor','BGColor'],['Cut','Copy','Paste'],['Undo','Redo'],['Link','Unlink'],['Image','Table','Smiley','SpecialChar']]", // Very basic set of buttons: // 'value' => "['Bold','Italic','-','NumberedList','BulletedList','-','Link','Unlink']", // More advanced set of buttons (default for IMP < 6.2): // 'value' => "[['Source','Maximize','-','Templates'],['Cut','Copy','Paste'],['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],'/',['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],['Link','Unlink'],['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar'],'/',['Styles','Format','Font','FontSize'],['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],['TextColor','BGColor']]", ); $_prefs['signature_expanded'] = array( 'value' => 0, 'type' => 'implicit', ); // *** Compose Templates Preferences *** $prefGroups['composetemplates'] = array( 'column' => _("Compose"), 'label' => _("Compose Templates"), 'desc' => _("Edit compose templates."), 'members' => array('composetemplates_management', 'composetemplates_new'), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->isImap(); } ); // Compose templates configuration widget $_prefs['composetemplates_management'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_ComposeTemplates' ); // Link to compose templates mailbox. $_prefs['composetemplates_new'] = array( 'type' => 'link', 'xurl' => '', 'img' => 'edit.png', 'desc' => _("Create new Template"), 'suppress' => function() { return !IMP_Mailbox::getPref('composetemplates_mbox'); }, 'on_init' => function($ui) { $clink = new IMP_Compose_Link(); $ui->prefs['composetemplates_new']['xurl'] = $clink->link()->add(array( 'actionID' => 'template_new', 'type' => 'template_new' )); } ); // Compose templates mailbox $_prefs['composetemplates_mbox'] = array( // NOTE: Localization of this name for display purposes is done // automatically. To change the default value based on the backend, see // the 'special_mboxes' option in config/backends.php. 'value' => 'Templates' ); // *** Compose Reply Preferences *** $prefGroups['reply'] = array( 'column' => _("Compose"), 'label' => _("Replies"), 'desc' => _("Configure how you reply to mail."), 'members' => array( 'reply_format', 'reply_charset', 'reply_headers', 'reply_quote', 'attrib_text', 'reply_strip_sig' ) ); $_prefs['reply_format'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("When replying, use the same format as the original message?") ); $_prefs['reply_charset'] = array( 'desc' => _("Use the charset of the original message when replying?"), 'advanced' => true, 'value' => 0, 'type' => 'checkbox' ); $_prefs['reply_headers'] = array( 'desc' => _("Include a brief summary of the original message's header in a reply?"), 'value' => 0, 'type' => 'checkbox' ); $_prefs['reply_quote'] = array( 'value' => 1, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Include original message in a reply?") ); $_prefs['attrib_text'] = array( 'value' => _("Quoting %f:"), 'advanced' => true, 'type' => 'text', 'desc' => _("How to attribute quoted lines in a reply?"), 'help' => 'prefs-attrib_text', 'requires' => array('reply_quote') ); $_prefs['reply_strip_sig'] = array( 'desc' => _("Strip the sender's signature from plaintext replies?"), 'advanced' => true, 'value' => 0, 'type' => 'checkbox', 'requires' => array('reply_quote') ); // *** Compose Forward Preferences *** $prefGroups['forward'] = array( 'column' => _("Compose"), 'label' => _("Forwards"), 'desc' => _("Configure how you forward mail."), 'members' => array('forward_default', 'forward_format') ); $_prefs['forward_default'] = array( 'value' => 'attach', 'advanced' => true, // If this preference is locked, the user will not be able to select the // forward method. // 'locked' => true, 'type' => 'enum', 'enum' => array( 'attach' => _("As attachment"), 'body' => _("In the body text"), 'both' => _("As both body text and an attachment"), 'editasnew' => _("Edit as New") ), 'desc' => _("How should messages be forwarded by default?") ); $_prefs['forward_format'] = array( 'value' => 0, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("When forwarding a message in the body text, should the same format as the original message be used?") ); // *** Drafts Preferences *** $prefGroups['drafts'] = array( 'column' => _("Compose"), 'label' => _("Drafts"), 'desc' => _("Manage message drafts."), 'members' => array( 'draftsselect', 'close_draft', 'unseen_drafts', 'auto_save_drafts' ) ); // drafts mailbox selection widget. $_prefs['draftsselect'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Drafts', 'requires_nolock' => array('drafts_folder') ); // drafts mailbox $_prefs['drafts_folder'] = array( // NOTE: Localization of this name for display purposes is done // automatically. To change the default value based on the backend, see // the 'special_mboxes' option in config/backends.php. 'value' => 'Drafts' ); $_prefs['close_draft'] = array( 'value' => 1, 'type' => 'checkbox', 'desc' => _("Close the compose window after saving a draft?") ); $_prefs['unseen_drafts'] = array( 'value' => 0, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Save drafts as unseen?") ); $_prefs['auto_save_drafts'] = array( // Value is in minutes 'value' => 5, 'advanced' => true, 'type' => 'enum', 'enum' => array( 0 => _("No"), 1 => _("Every minute"), 5 => _("Every 5 minutes") ), 'desc' => _("Save drafts automatically while composing?"), ); // *** Sent Mail Preferences *** $prefGroups['sentmail'] = array( 'column' => _("Compose"), 'label' => _("Sent Mail"), 'desc' => _("Manage sent mail."), 'members' => array( 'save_attachments', 'rename_sentmail_monthly', 'delete_sentmail_monthly_keep', 'purge_sentmail_interval', 'purge_sentmail_keep' ) ); $_prefs['save_attachments'] = array( 'value' => 'never', 'type' => 'enum', 'enum' => array( 'always' => _("Save attachments"), 'never' => _("Do not save attachments") ), 'desc' => _("Save attachments in the sent-mail message?"), 'help' => 'prefs-save_attachments' ); $_prefs['rename_sentmail_monthly'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Rename sent mail mailbox at beginning of month?"), 'help' => 'prefs-rename_sentmail_monthly', 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); } ); $_prefs['delete_sentmail_monthly_keep'] = array( 'value' => 0, 'type' => 'number', 'zero' => true, 'desc' => _("Delete old sent mail mailboxes after this many months (0 to never delete):"), 'help' => 'prefs-delete_sentmail_monthly_keep', 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); } ); $_prefs['purge_sentmail_interval'] = array( 'value' => 0, 'type' => 'enum', 'enum' => array_merge(array(0 => _("Never")), Horde_LoginTasks::getLabels()), 'desc' => _("Purge sent mail how often:"), 'help' => 'prefs-purge_sentmail_interval', 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); } ); $_prefs['purge_sentmail_keep'] = array( 'value' => 30, 'type' => 'number', 'desc' => _("Purge messages in sent mail mailbox(es) older than this amount of days."), 'help' => 'prefs-purge_sentmail_keep', 'requires' => array('purge_sentmail_interval'), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); } ); // *** Addressbook Preferences *** $prefGroups['addressbooks'] = array( 'column' => _("Compose"), 'label' => _("Address Books"), 'desc' => _("Select address book sources for adding/searching."), 'members' => array( 'save_recipients', 'display_contact', 'sourceselect', 'add_source' ), 'suppress' => function() { $contacts_app = $GLOBALS['registry']->hasInterface('contacts'); return (!$contacts_app || !$GLOBALS['registry']->hasPermission($contacts_app)); } ); $_prefs['save_recipients'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Save recipients automatically to the default address book?") ); // If your default address book is large and slow to display, you may want to // disable and lock this preference. $_prefs['display_contact'] = array( 'value' => 1, 'type' => 'checkbox', 'desc' => _("List all contacts when loading the contacts screen? (if disabled, you will only see contacts that you search for explicitly)") ); // address book selection widget $_prefs['sourceselect'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Sourceselect', 'requires_nolock' => array('search_sources'), 'on_init' => function($ui) { Horde_Core_Prefs_Ui_Widgets::addressbooksInit(); } ); // Address book(s) to use when expanding addresses // Refer to Turba's config/backends.php for possible source values // // You can provide default values this way: // 'value' => json_encode(array('source_one', 'source_two')) $_prefs['search_sources'] = array( 'value' => '' ); // Field(s) to use when expanding addresses // Refer to Turba's config/backends.php for possible source and field values // // If you want to provide a default value, this field depends on the // search_sources preference. For example: // 'value' => json_encode(array( // 'source_one' => array('field_one', 'field_two'), // 'source_two' => array('field_three') // )) // will search the fields 'field_one' and 'field_two' in source_one and // 'field_three' in source_two. $_prefs['search_fields'] = array( 'value' => '' ); // If NOT using shared address books in Turba, you can put a $cfgSources array // element name in the value field. See the preference hook example in // config/hooks.php.dist if using shared address books. $_prefs['add_source'] = array( // 'value' => 'localsql', 'value' => '', 'type' => 'enum', 'enum' => array(), 'desc' => _("Choose the address book to use when adding addresses."), 'suppress' => function() { try { $GLOBALS['registry']->call('contacts/sources', array(true)); return false; } catch (Horde_Exception $e) {} return true; }, 'on_init' => function($ui) { $ui->prefs['add_source']['enum'] = $GLOBALS['registry']->call('contacts/sources', array(true)); } ); // *** Message Viewing Preferences *** $prefGroups['viewing'] = array( 'column' => _("Message"), 'label' => _("Viewing"), 'desc' => _("Configure how messages are displayed."), 'members' => array( 'filtering', 'strip_attachments', 'alternative_display', 'image_replacement', 'image_replacement_manage', 'highlight_text', 'highlight_simple_markup', 'show_quoteblocks', 'dim_signature', 'emoticons', 'parts_display', 'mail_hdr', 'send_mdn' ) ); $_prefs['filtering'] = array( 'value' => 0, 'locked' => true, 'type' => 'checkbox', 'desc' => _("Filter message content for unwanted text (e.g. profanity)?") ); $_prefs['strip_attachments'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Allow attachments to be stripped from messages?")); $_prefs['alternative_display'] = array( 'value' => 'html', 'advanced' => true, 'type' => 'enum', 'enum' => array( 'html' => _("HTML part"), 'text' => _("Plaintext part") ), 'desc' => _("For messages with alternative representations of a text part, which part should be displayed?"), 'suppress' => function() { $mock_part = new Horde_Mime_Part(); $mock_part->setType('text/html'); return !$GLOBALS['injector']->getInstance('IMP_Factory_MimeViewer')->create($mock_part)->canRender('inline'); } ); $_prefs['image_replacement'] = array( 'value' => 1, 'type' => 'checkbox', 'desc' => _("Block images in messages unless they are specifically requested to be loaded?"), 'help' => 'prefs-image_replacement' ); $_prefs['image_replacement_manage'] = array( 'type' => 'special', 'advanced' => true, 'handler' => 'IMP_Prefs_Special_ImageReplacement', 'requires' => array('image_replacement') ); // List of e-mail addresses to allow images from (in addition to e-mail // addresses contained in the user's addressbooks. // You can provide default values this way: // 'value' => json_encode(array('foo@example.com', 'foo2@example.com')) $_prefs['image_replacement_addrs'] = array( // Value is a JSON encoded array of email addresses. 'value' => '[]' ); $_prefs['highlight_text'] = array( 'value' => 1, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Mark different levels of quoting with different colors?") ); $_prefs['highlight_simple_markup'] = array( 'value' => 1, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Mark simple markup?") ); $_prefs['show_quoteblocks'] = array( 'value' => 'thread', 'type' => 'enum', 'enum' => array( 'shown' => _("Shown"), 'thread' => _("Hidden in Thread View"), 'list' => _("Hidden in List Messages"), 'listthread' => _("Hidden in Thread View and List Messages"), 'hidden' => _("Hidden") ), 'desc' => _("How should large blocks of quoted text be shown by default? (Toggling the block will always be available).") ); $_prefs['dim_signature'] = array( 'value' => 0, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Dim signatures?") ); $_prefs['emoticons'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Convert textual emoticons into graphical ones?") ); $_prefs['parts_display'] = array( 'value' => 'atc', 'type' => 'enum', 'enum' => array( 'all' => _("Show all parts"), 'atc' => _("Show all attachments"), 'none' => _("Do not show parts") ), 'desc' => _("Which message parts do you want to display in the summary?") ); // Display custom headers (configured via the identity screen) when viewing // messages? $_prefs['mail_hdr'] = array( // Value is a list of headers to display, separated by "\n" // e.g.: "Message-ID\nX-Spam-Level" 'value' => '', 'type' => 'textarea', 'desc' => _("Additional headers to display when viewing: (enter each header on a new line)") ); $_prefs['send_mdn'] = array( 'value' => 1, 'advanced' => true, 'type' => 'enum', 'enum' => array( 0 => _("Never send read receipt"), 1 => _("Always prompt"), // This preference is not given to the user by default - it makes it // too easy for spam messages to determine valid e-mail addresses. // 2 => _("Prompt only if necessary; otherwise automatically send") ), 'desc' => _("Prompt to send read receipt (a/k/a message disposition notification) when requested by the sender?"), 'help' => 'prefs-send_mdn', 'suppress' => function() { return ($GLOBALS['injector']->getInstance('IMP_Maillog') instanceof IMP_Maillog_Storage_Null); } ); // *** Delete/Move Messages Preferences *** $prefGroups['delmove'] = array( 'column' => _("Message"), 'label' => _("Deleting and Moving Messages"), 'desc' => _("Set preferences for what happens when you move and delete messages."), 'members' => array( 'mailbox_return', 'delete_mark_seen', 'use_trash', 'trashselect', 'delhide_trash', 'empty_trash_menu', 'purge_trash_interval', 'purge_trash_keep' ) ); $_prefs['mailbox_return'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Return to the mailbox listing after deleting, moving, or copying a message?") . ' (' . _("Basic view only") . ')' ); $_prefs['delete_mark_seen'] = array( 'value' => 0, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Mark messages as seen when deleting?") ); $_prefs['use_trash'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Move deleted messages to your Trash mailbox instead of marking them as deleted in the current mailbox?"), 'on_change' => function() { $GLOBALS['injector']->getInstance('IMP_Mailbox_SessionCache') ->expire(IMP_Mailbox_SessionCache::CACHE_SPECIALMBOXES); if ($GLOBALS['prefs']->getValue('use_trash') && !$GLOBALS['prefs']->getValue('trash_folder')) { $GLOBALS['notification']->push(_("You have activated move to Trash but no Trash mailbox is defined. You will be unable to delete messages until you set a Trash mailbox in the preferences."), 'horde.warning'); } } ); // trash mailbox selection widget. $_prefs['trashselect'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Trash', 'requires' => array('use_trash'), 'requires_nolock' => array('use_trash', 'trash_folder'), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_TRASH); } ); // trash mailbox $_prefs['trash_folder'] = array( // NOTE: Localization of this name for display purposes is done // automatically. To change the default value based on the backend, see // the 'special_mboxes' option in config/backends.php. 'value' => 'Trash', 'on_change' => function() { if ($GLOBALS['prefs']->getValue('use_trash') && !$GLOBALS['prefs']->getValue('trash_folder')) { $GLOBALS['notification']->push(_("You have activated move to Trash but no Trash mailbox is defined. You will be unable to delete messages until you set a Trash mailbox in the preferences."), 'horde.warning'); } } ); // This REALLY should be disabled; other clients may not be configured the // same as IMP so it is very dangerous to hide messages that still exist in // the mailbox (enabling Trash indicates that the user wants to ignore the // \Deleted flag in IMP). $_prefs['delhide_trash'] = array( // Disabled and locked by default 'value' => 0, 'locked' => true, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Hide deleted messages even if using the Trash mailbox?") ); $_prefs['empty_trash_menu'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Display the \"Empty Trash\" link in the menubar?") . ' (' . _("Basic view only") . ')', 'requires' => array('use_trash'), 'requires_nolock' => array('use_trash'), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_TRASH); } ); $_prefs['purge_trash_interval'] = array( 'value' => 0, 'type' => 'enum', 'enum' => array_merge(array(0 => _("Never")), Horde_LoginTasks::getLabels()), 'desc' => _("Purge Trash how often:"), 'help' => 'prefs-purge_trash_interval', 'requires' => array('use_trash'), 'requires_nolock' => array('use_trash'), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_TRASH); } ); $_prefs['purge_trash_keep'] = array( 'value' => 30, 'type' => 'number', 'desc' => _("Purge messages in Trash mailbox older than this amount of days."), 'help' => 'prefs-purge_trash_keep', 'requires' => array('use_trash', 'purge_trash_interval'), 'requires_nolock' => array('use_trash'), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_TRASH); } ); // hide deleted $_prefs['delhide'] = array( 'value' => 0 ); // *** Spam Preferences *** $prefGroups['spamreport'] = array( 'column' => _("Message"), 'label' => _("Spam Reporting"), 'desc' => _("Configure spam reporting."), 'members' => array( 'spamselect', 'delete_spam_after_report', 'move_innocent_after_report', 'empty_spam_menu', 'purge_spam_interval', 'purge_spam_keep' ) ); // spam mailbox selection widget. $_prefs['spamselect'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Spam', 'requires_nolock' => array('spam_folder') ); // spam mailbox $_prefs['spam_folder'] = array( // NOTE: Localization of this name for display purposes is done // automatically. To change the default value based on the backend, see // the 'special_mboxes' option in config/backends.php. 'value' => 'Spam' ); $_prefs['delete_spam_after_report'] = array( 'value' => 0, 'type' => 'enum', 'enum' => array(), 'desc' => _("What to do with messages after they have been reported as spam?"), 'help' => 'prefs-delete_spam_after_report', 'on_init' => function($ui) { $enum = array( 0 => _("Nothing"), 1 => _("Delete message") ); if ($GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS)) { $enum[2] = _("Move to Spam mailbox"); } $ui->prefs['delete_spam_after_report']['enum'] = $enum; } ); $_prefs['move_innocent_after_report'] = array( 'value' => 0, 'type' => 'enum', 'enum' => array( 0 => _("Nothing"), 1 => _("Move to Inbox") ), 'desc' => _("What to do with messages after they have been reported as innocent?"), 'help' => 'prefs-move_innocent_after_report', 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); } ); $_prefs['empty_spam_menu'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Display the \"Empty Spam\" link in the menubar?") . ' (' . _("Basic view only") . ')', 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); } ); $_prefs['purge_spam_interval'] = array( 'value' => 0, 'type' => 'enum', 'enum' => array_merge(array(0 => _("Never")), Horde_LoginTasks::getLabels()), 'desc' => _("Purge Spam mailbox how often:"), 'help' => 'prefs-purge_spam_interval', 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); } ); $_prefs['purge_spam_keep'] = array( 'value' => 30, 'type' => 'number', 'desc' => _("Purge messages in Spam mailbox older than this amount of days."), 'help' => 'prefs-purge_spam_keep', 'requires' => array('purge_spam_interval'), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); } ); // *** New Mail Notification Preferences *** $prefGroups['newmail'] = array( 'column' => _("Message"), 'label' => _("New Mail"), 'desc' => _("Control when new mail will be checked for, and whether or not to notify you when it arrives."), 'members' => array( 'refresh_time', 'nav_poll_all', 'newmail_notify', 'newmail_soundselect' ) ); $_prefs['refresh_time'] = array( // Value in seconds 'value' => 0, 'type' => 'enum', 'enum' => array( 0 => _("Never"), 30 => _("Every 30 seconds"), 60 => _("Every minute"), 300 => _("Every 5 minutes"), 900 => _("Every 15 minutes"), 1800 => _("Every half hour") ), 'desc' => _("New mail poll interval on mailbox page:"), ); $_prefs['newmail_notify'] = array( 'value' => 0, 'type' => 'checkbox', 'desc' => _("Display notification when new mail arrives?"), ); // Sound to play on new mail notification $_prefs['newmail_audio'] = array( 'value' => '' ); // sound selection widget $_prefs['newmail_soundselect'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_NewmailSound', 'requires' => array('newmail_notify'), 'requires_nolock' => array('newmail_audio') ); // *** IMAP Flag Preferences *** $prefGroups['flags'] = array( 'column' => _("Message"), 'label' => _("Flags"), 'desc' => _("Configure flag highlighting."), 'members' => array('flagmanagement', 'show_all_flags'), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FLAGS); } ); // UI for flag management. $_prefs['flagmanagement'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_Flag' ); // This array contains the list of flags created by the user through the // flags UI, and any modifications to the built-in system flags. $_prefs['msgflags'] = array( // 'value' = serialize(array()) 'value' => 'a:0:{}' ); $_prefs['show_all_flags'] = array( 'value' => 0, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Show all flags (including flags set by other mail programs)?") ); // *** Printing Preferences *** $prefGroups['printing'] = array( 'column' => _("Message"), 'label' => _("Printing"), 'desc' => _("Configure message printing."), 'members' => array('add_printedby') ); $_prefs['add_printedby'] = array( 'value' => 0, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Add a \"Printed By\" header to the top of printed messages?") ); // *** Mailbox Display Preferences *** $prefGroups['mboxdisplay'] = array( 'column' => _("Mailbox"), 'label' => _("Mailbox Display"), 'desc' => _("Change display preferences for viewing the listing of messages in a mailbox."), 'members' => array( 'initialpageselect', 'mailbox_start', 'sortby', 'sortdir', 'sortdate', 'max_msgs', 'from_link', 'atc_flag', 'preview_enabled', 'preview_maxlen', 'preview_strip_nl', 'preview_show_unread', 'preview_show_tooltip' ) ); // select widget for the initial_page preference $_prefs['initialpageselect'] = array( 'type' => 'special', 'handler' => 'IMP_Prefs_Special_InitialPage', 'requires_nolock' => array('initial_page'), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); } ); // The initial page to display. Either: // - IMP::INITIAL_FOLDERS (display folders page) // - mailbox name (defaults to INBOX) $_prefs['initial_page'] = array( 'value' => '' ); $_prefs['mailbox_start'] = array( 'value' => IMP::MAILBOX_START_FIRSTUNSEEN, 'type' => 'enum', 'enum' => array( IMP::MAILBOX_START_FIRSTUNSEEN => _("First (oldest) Unseen Message"), IMP::MAILBOX_START_LASTUNSEEN => _("Last (newest) Unseen Message"), IMP::MAILBOX_START_FIRSTPAGE => _("First Page"), IMP::MAILBOX_START_LASTPAGE => _("Last Page") ), 'desc' => _("When opening a mailbox for the first time, where do you want to start?") ); $_prefs['sortby'] = array( // Sort by sequence by default. It is the fastest sort as it is the only // sort that can be done without parsing message headers. It sorts // messages by the order they were initially processed by the mail server. 'value' => Horde_Imap_Client::SORT_SEQUENCE, 'type' => 'enum', 'enum' => array( Horde_Imap_Client::SORT_SEQUENCE => _("NONE"), IMP::IMAP_SORT_DATE => _("Date"), Horde_Imap_Client::SORT_FROM => _("From Address"), Horde_Imap_Client::SORT_TO => _("To Address"), Horde_Imap_Client::SORT_SUBJECT => _("Subject"), Horde_Imap_Client::SORT_SIZE => _("Message Size"), Horde_Imap_Client::SORT_THREAD => _("Thread") ), 'desc' => _("Default sorting criteria:") ); $_prefs['sortdir'] = array( 'value' => 0, 'type' => 'enum', 'enum' => array( 0 => _("Ascending"), 1 => _("Descending") ), 'desc' => _("Default sorting direction:") ); // sort prefs for individual mailboxes $_prefs['sortpref'] = array( // value = serialize(array()) 'value' => 'a:0:{}' ); $_prefs['sortdate'] = array( // Use internal IMAP date by default - this is generally the date that a // message was first received on the IMAP server and is maintained even // if the message moves between mailboxes. 'value' => Horde_Imap_Client::SORT_ARRIVAL, 'advanced' => true, 'type' => 'enum', 'enum' => array( Horde_Imap_Client::SORT_ARRIVAL => _("Arrival time on server"), Horde_Imap_Client::SORT_DATE => _("Date in message headers") ), 'desc' => _("Criteria to use when sorting by date:") ); $_prefs['max_msgs'] = array( 'value' => 30, 'type' => 'number', 'desc' => _("Messages per page in the mailbox view.") . ' (' . _("Basic view only") . ')' ); $_prefs['from_link'] = array( 'value' => 1, 'type' => 'enum', 'enum' => array( 0 => _("Clicking on the address will compose a new message to the sender"), 1 => _("Clicking on the address will open the message to be read") ), 'desc' => _("The From: column of the message should be linked:") ); $_prefs['atc_flag'] = array( // Disabled by default since display requires a bit of extra overhead to // obtain the MIME Content-Type of the base portion of the message. // Additionally, this algorithm is not 100% accurate. 'value' => 0, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Indicate whether attachments exist in a message in the mailbox listing?") ); $_prefs['preview_enabled'] = array( // Disabled and locked by default: previews can be performance intensive, // especially without caching. 'value' => 0, 'locked' => true, 'type' => 'checkbox', 'desc' => _("Enable message previews?") . ' (' . _("Basic view only") . ')' ); $_prefs['preview_maxlen'] = array( 'value' => 250, 'advanced' => true, 'type' => 'enum', 'enum' => array( 100 => _("100 characters"), 250 => _("250 characters"), 500 => _("500 characters"), 1000 => _("1000 characters") ), 'desc' => _("Characters to display in preview:"), 'requires' => array('preview_enabled') ); $_prefs['preview_strip_nl'] = array( 'value' => 1, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Strip linebreaks in preview?"), 'requires' => array('preview_enabled') ); $_prefs['preview_show_unread'] = array( 'value' => 1, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Show previews for unread messages only?"), 'requires' => array('preview_enabled') ); $_prefs['preview_show_tooltip'] = array( 'value' => 0, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Show previews in tooltips?"), 'requires' => array('preview_enabled') ); // *** Folder Display Preferences *** $prefGroups['folderdisplay'] = array( 'column' => _("Mailbox"), 'label' => _("Folder Display"), 'desc' => _("Change folder navigation display preferences."), 'members' => array( 'subscribe', 'nav_expanded', 'tree_view', 'nav_poll_all' ) ); $_prefs['subscribe'] = array( 'value' => 1, 'advanced' => true, 'type' => 'checkbox', 'desc' => _("Use IMAP mailbox subscriptions?"), 'on_change' => function() { $GLOBALS['injector']->getInstance('IMP_Ftree')->init(); } ); $_prefs['nav_expanded'] = array( 'value' => 2, 'type' => 'enum', 'enum' => array( IMP_Ftree_Prefs_Expanded::NO => _("No"), IMP_Ftree_Prefs_Expanded::YES => _("Yes"), IMP_Ftree_Prefs_Expanded::LAST => _("Remember the last view") ), 'desc' => _("Expand the entire folder tree by default in the folders view?"), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); } ); $_prefs['tree_view'] = array( 'value' => 0, 'advanced' => true, 'type' => 'enum', 'enum' => array( 0 => _("Combine all namespaces"), 1 => _("Show non-private mailboxes in separate folders") ), 'desc' => _("How should namespaces be displayed in the folder tree view?"), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); }, 'on_change' => function() { $GLOBALS['injector']->getInstance('IMP_Ftree')->init(); } ); $_prefs['nav_poll_all'] = array( // This is locked and disabled by default. You almost certainly DO NOT // want to poll all mailboxes by default: this can cause crippling load // on your server and is generally NOT what users want (polling things // such as Drafts, Sent-Mail, and Trash mailboxes is confusing to the // average user). 'value' => 0, 'advanced' => true, 'locked' => true, 'type' => 'checkbox', 'desc' => _("Poll all mailboxes for new mail?"), 'suppress' => function() { return !$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create()->access(IMP_Imap::ACCESS_FOLDERS); }, 'on_change' => function() { $GLOBALS['injector']->getInstance('IMP_Ftree')->init(); } ); // list of folders to expand by default $_prefs['expanded_folders'] = array( // value = serialize(array()) 'value' => 'a:0:{}' ); // list of mailboxes to poll for new mail $_prefs['nav_poll'] = array( 'value' => '' ); imp-6.2.21/docs/CHANGES0000600000175000017500000060755713160207077012433 0ustar janjan------- v6.2.21 ------- [jan] Officially support PHP 7. ------- v6.2.20 ------- [jan] Fix finding reply or forward text from signed or encrypted messages with HTML content again (Bug #14656). [mjr] Fix issue with reattaching a file after removing it on Chrome browsers (Bug #14657), [jan] Allow Command-C to copy text from HTML message previews (Bug #14653). ------- v6.2.19 ------- [jan] Fix filename charset of certain attachments (Bug #14618). [jan] Fix cursor jumping in some browser when editing address fields (Bug #14606). [mjr] Fix auto creation of SPECIAL_USER mailboxes (Bug #14620). [mjr] Fix sending email after the attach_body_check hook fails in Smartmobile view (Bug #14610). ------- v6.2.18 ------- [jan] Catch errors when converting email address to IDNA. [jan] Correctly use preference to save attachments with sent messages in mobile modes (Bug #14571). ------- v6.2.17 ------- [jan] Update German translation. [jan] Update Greek translation. [mjr] Fix issue when forwarding an email to multiple recipients in Mobile view (Bug #14060). [jan] Fix iTip MIME viewer actions if attachment type hasn't been specified. [mjr] Add option to reload folder tree when fetching via the API. [jan] Update preview cache after permanently unblocking images from a sender (Bug #14446). ------- v6.2.16 ------- [jan] Optimize deleting or moving a large number of messages. [jan] Fix the 'special_mboxes' backend configuration (Bug #14423). [mjr] Fix display of application/pkcs-7-mime parts (Bug #14363). ------- v6.2.15 ------- [jan] Update Portuguese translation. [jan] Update Basque translation. [jan] Remove tags with "Previous" and "Next" from basic message view (Bug #14400). [jan] Display translated mailbox names in drop down lists too. [jan] Consistently display the raw mailbox name in mailbox element titles. [jan] Unset window opener when opening new windows from HTML messages (João Machado ). [mjr] Fix re-adding an attachment after it has been removed from the compose window (Bug #14329). ------- v6.2.14 ------- [mjr] Fix renaming subfolders in basic view (Bug #14254). [mjr] Fix display of mailbox sizes in basic view (Bug #14308). [mjr] Fix fatal error when deleting messages in basic view when IMAP server does not support QRESYNC or CONDSTORE (Bug #14257). ------- v6.2.13 ------- [mjr] Fix opening compose window on IE when uploads are disabled (Bug #14267). [jan] Update Greek translation (Limperis Antonis ). [jan] Fix creating new trash folder from preference screen. [jan] Fix finding reply or forward text from signed or encrypted messages with HTML content. ------- v6.2.12 ------- [jan] Don't strip PGP mime parts when saving sent messages (Bug #14233). [jan] Fix retrieving public PGP keys with certain HTTP client backends. [jan] Send MDNs from the correct identity (Bug #14034). [jan] Fix autocompleter filtering if items exceed the maximum size (jsveiga@it.eng.br, Bug #13984). [jan] Use access rules compatible with both Apache 2.2 and 2.4. [jan] Allow to disable remote accounts by locking the preference. [jan] Fix setting title with newmail count in IE11 and Edge (Bug #14189). [jan] Fix wrapping of plain text converted from HTML MIME parts. ------- v6.2.11 ------- [mjr] Request that the contacts API only consider email fields when detecting duplicates during automatic saving of attendees to the address book (Bug #14119). [jan] Don't show "Create Keys" button if creating PGP keys is disabled (steffen.hau@rz.uni-mannheim.de, Request #14096). [mjr] Fix displaying iTips with certain locale/date_format preference combinations (Bug #14076). ------- v6.2.10 ------- [mms] Ensure mailbox name is a valid string (Bug #14049). ------ v6.2.9 ------ [jan] Don't focus body field when composing message with HTML editor. [jan] Protect against infinite request loop if expanding all mailboxes. [jan] Fix redirecting in smartmobile mode (Bug #14002). [jan] Fix address autocompletion in redirection window of smartmobile mode (Bug #14002). [jan] Fix setting single recipients in redirection window in basic mode (Bug #14002). [jan] Don't switch to regular compose view after an error in the redirection view in basic mode. [jan] Fix cancelling redirection window in basic mode (Bug #14002). ------ v6.2.8 ------ [mms] SECURITY: Fix XSS vulnerability when manually switching between plaintext -> HTML compose mode. [jan] Update Bcc address when switching identities (João Machado , Bug #13922). [jan] Fix protocol name in POP3 example backend configuration. [mms] Don't honor linked attachment limit configuration options if linked attachments are disabled (Bug #13665). ------ v6.2.7 ------ [jan] Fix regression with not being able to list users (Bug #13808). [mms] Fix rebuilding the folder tree translations when the language is changed in a session (Bug #13821). ------ v6.2.6 ------ [jan] Fix adding addresses from address book popup (Bug #13806). [mjr] Fix fatal error when viewing a vTodo with attendees. [jan] Make dependency on File_ASN1 optional. [mms] Fix double listing of mailboxes in certain instances when subscriptions are active and unsubscribed mailboxes are shown. ------ v6.2.5 ------ [mms] Fix advanced search (Bug #13773). [mjr] Fix handling of iTips indicating a change to a series exception (Bug #13777). [mms] Fix parsing broken S/MIME messages that don't include the smime-type content-type parameter (Request #13661). [mms] Fix regression when working with multiple selected messages with a POP3 server (Bug #13759). [mms] Only count successful compose mails when determining recipient limits (Bug #13751). ------ v6.2.4 ------ [mms] Don't persist dynamic filter views across page reloads. [mms] Fix message saving when using a POP3 server. [jan] Fix JS error when using regexp characters in search string. [mjr] Ensure we have a valid MIME part to display in thread view (Bug #13653). ------ v6.2.3 ------ [mms] Fix handling authentication errors when they take place during an attempt to determine a mailbox's namespace. [mms] Fix some folder display issues when not using IMAP subscriptions in dynamic view (Bug #13553). [mms] Fix accessing dynamic compose page when file uploads are not available (Bug #13580). [mms] Fix saving unique browser preferences for a specific backend in dynamic view. [mms] Fix toggling select all checkbox in both dynamic mailbox layouts. ------ v6.2.2 ------ [mms] Ensure that search/POP3 mailbox listings are saved even if there is an issue with the underlying cache backend. [mms] Fix replying to non-UTF-8 messages when the 'reply_charset' preference is true. [jan] Fix vCard MIME viewer. [jan] Fix MIME viewer form actions in basic view (Bug #12677). [mms] Don't store/retrieve message history data if the Message-ID is missing/invalid. [mms] Fix resuming draft from mailbox page in basic view. [mms] Fix displaying Virtual Trash mailbox (Bug #13418). [mms] Fix menu actions on the minimal message page (Bug #13440). [jan] Fix switching to HTML editor in basic mode if signature display is not active. [mms] Fix expiring session cached mailbox data when mailbox information changes. [mms] Fix updating viewport immediately after deleting messages on POP3 servers. ------ v6.2.1 ------ [mjr] Fix iTip handling when recurrence exceptions are present (Bug #13399). [mms] Fix displaying Sent mailbox label when multiple sent-mail mailboxes are defined. [mms] Fix advanced search in all mailboxes if virtual folders or remote accounts exist (Bug #13384). [mms] Fix regression in automatically expanding deeply nested mailboxes in the dynamic folder list. [mms] Fix regression where containers could not be moved via drag/drop in dynamic view. [mms] Don't perform purge sentmail login task unless at least one sentmail mailbox exists. [mms] Don't perform purge Spam login task unless Spam mailbox exists. [mms] Fix dragging a mailbox to the base level in dynamic view. [mms] Add ability to drag/drop text to dynamic HTML compose window on Chrome and IE. [mms] Re-enable drag/drop of text to dynamic plaintext compose window (Bug #13281). ------ v6.2.0 ------ [mms] Fix some regressions in linked attachments behavior (Bug #13232). [mjr] Fix fatal error when printing empty HTML attachments (Bug #13322). --------- v6.2.0RC1 --------- [mms] Fix handling image attachments when added via the HTML editor Image dialog. ----------- v6.2.0beta3 ----------- [mms] Fix saving attachments to sent-mail message in smartmobile view (Bug #13257). [mms] Remove the 'default_msg_charset' preference. [mms] Rewritten folder list code for dynamic view. [mms] Fix saving expanded state when expanding all mailboxes when all mailboxes are already cached in the browser. ----------- v6.2.0beta2 ----------- [mms] Allow drag/drop to HTML compose body work with text data. [mms] Cache mailbox exists results in the current access. ----------- v6.2.0beta1 ----------- [jan] Add Japanese help file (Hiromi Kimura ). [mms] Add automatic configuration of remote account connection details. [mms] Support LMTP servers when sending mail. [mms] Fix regression where creating a mailbox that is currently a container would not subscribe to that mailbox. [mms] Add checks to ensure that saved session expiration message was created by the user rather than an outside source. [mms] Improved handling for multiple expand/collapse actions in the dynamic folder list (Bug #13170). [mms] Provide visual UI info to user that file is uploading when drag/drop attachments in dynamic view. ------------ v6.2.0alpha1 ------------ [mms] Don't set References header in reply message if equal to In-Reply-To header (RFC 5322 [3.6.4]). [mms] Add configurable IMAP quota checking interval (Request #12907). [mms] Honor 'from_link' preference in dynamic view. [mms] Add support for storing image data within HTML signatures. [mms] Ensure that viewing large mailboxes does not overload the session storage size. [mms] Implement web notifications for new mail alerts. [mms] Add bare address information to title attribute in viewport on dynamic mailbox page [mms] Display flags on the smartmobile mailbox page (Request #12687). [mms] Support non-ASCII characters in user-defined flag names (Request #12335). [mms] Potentially save a call to the contacts backend when viewing HTML messages if no image data is present in the message. [mms] Improved styling of dynamic mailbox page, to fix issues when resizing the browser font size (Bug #13071). [mms] Don't send as multipart/alternative if plaintext part is empty. [mms] Add smiley data to message when added via the HTML editor (Request #13051). [mms] Add mailbox size information retrieval to dynamic view (Request #12965). [mms] Display unread message count in title via favicon bubbles, if browser supports. [mms] Abstracted maillog code. [mms] Enable configuration of IMAP cache lifetime for Horde_Cache and Hashtable backends. [mms] Only refresh quota information when switching to a mailbox the first time. [mms] More efficiently store mailbox cache information in the session. [mms] Load copy/move mailbox selection list on-demand in smartmobile view. [mms] Cache results of inline image view status. [mjr] Add IMP_Api::logRecipient. [mms] Remove the mail_domain preference. [mjr] Add display of reccurence data to iTip viewer (Request #12919). [mms] Allow HTML data to be pasted within HTML compose editor paste dialog. [mms] Filter outgoing HTML compose messages for XSS vulnerabilities. [mms] Add permission to limit the maximum body size of a composed message. [mms] Show placeholder image when dropping onto HTML editor while the image is uploaded to the server. [mms] Add rate limiting to new mail notification alerts to prevent flooding of the remote mail server (Request #12705). [mms] Browser stored preferences are now prefixed by user information. [mms] Strip PGP armor text when replying to a message. [mms] Move determination whether to scan plaintext messages for PGP data from preferences to MIME viewer configuration. [mms] Add copy email option to the address context menu in dynamic view. [mms] Better reporting of e-mail address errors when composing. [mms] Add list information display to dynamic view. [jan] Add signatures to compose view. [mms] Add keyboard shortcuts to allow a more granular scroll of the dynamic preview pane (Request #12750). [mms] Add country flag graphic to contact image information in dynamic view. [mms] Address autocompleter on dynamic and basic page now uses a fancy UI. [mms] Add ability to specify maximum total attachment size in composed message before all attachments are converted to links. [mms] Cache generation of print-specific CSS. [mms] Add support for showing a contact image in the contacts popup box in dynamic view. [mms] Add ability to create a new filter rule from context menus in the dynamic view. [mms] More intelligent sizing of raw message parts opened in a popup window. [mms] Load sent-mail mailbox list on demand in dynamic view. [mms] Allow configurable access to remote accounts from within a session (Request #8077). [jan] Display "Other Options" icon instead of "New Window" icon in collapsed preview headers. [mms] More advanced auto-completion for smartmobile view. ------ v6.1.8 ------ [mms] SECURITY: Fix XSS in displaying user-defined flags in basic mailbox and message view. [mms] SECURITY: Fix XSS in displaying user-defined flags in dynamic mailbox view (João Machado ). [mms] SECURITY: Fix XSS in displaying mailbox name in dynamic mailbox view (João Machado ). [mms] Fix scrolling through large search mailboxes in dynamic view (Bug #13138). [mms] Better handling of malformed message dates in mailbox listing (Bug #13114). [jan] Update Korean translation (Deokgon Kim ). ------ v6.1.7 ------ [mms] Add Save All link to the popup message page in dynamic view. [jan] Update Danish translation (Erling Preben Hansen ). [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 #12746). [mms] Don't provide links to view attachments in compose screen unless the attachment can be displayed (Bug #12841). ------ v6.1.6 ------ [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). ------ v6.1.5 ------ [mms] SECURITY: Fix XSS in message and search screens resulting from a user-defined flag label (João Machado ). [mms] Support uploading multiple attachments at once in dynamic view. [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 #12608). [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). ------ v6.1.4 ------ [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 draft. [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). ------ v6.1.3 ------ [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 #12417). [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). ------ v6.1.2 ------ [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. ------ v6.1.1 ------ [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 #12312). [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. ------ v6.1.0 ------ [mms] Fix fatal error when importing a S/MIME key (Bug #12290). [mms] Fixed segfaults caused by SMTP debugging. --------- v6.1.0RC1 --------- [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). ----------- v6.1.0beta2 ----------- [mms] Directly output image thumbnails via data URIs when possible. [jan] Fix incorrect dependencies. ----------- v6.1.0beta1 ----------- [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 backend. [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 generated. [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. ------ v6.0.6 ------ [mms] Fix displaying some HTML messages that contain blocked CSS rules (Bug #12294). [mms] Catch and ignore errors from contacts backend when determining whether to show images in a message (Bug #12294). ------ v6.0.5 ------ [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 #12079). [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 listings. [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). ------ v6.0.4 ------ [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] Update Slovak translation (Jozef Sudolský ). [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 (aarno.sandvik@helsinki.fi, 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). ------ v6.0.3 ------ [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 #11874). [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). [jan] Update Basque translation (Ibon Igartua ). [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 #11795). [mms] Honor 'hide_when_unlimited' option for the quota driver (Thomas Jarosch , Bug #11782). [mms] Fix toggling other options in dynamic compose screen. ------ v6.0.2 ------ [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 #11672). [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. ------ v6.0.1 ------ [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). [jan] Update Slovak translation (Jozef Sudolský ). [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 #11603). [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). ------ v6.0.0 ------ [mms] Fix regression in adding an attachment in minimal view. --------- v6.0.0RC2 --------- [jan] Update Polish translation (Krzysztof Kozera ). [jan] Update Dutch translation (Arjen de Korte ). [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. --------- v6.0.0RC1 --------- [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. ----------- v6.0.0beta4 ----------- [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 #11394). [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). ----------- v6.0.0beta3 ----------- [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. ----------- v6.0.0beta2 ----------- [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 #11324). [mms] Fix regression in select all checkbox on traditional mailbox page (Bug #11317). [mms] Fix regression in altering sort direction in dynamic mailbox view (Bug #11300). [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 identities. [mms] Fix recursive mailbox delete in dynamic view (Bug #11288). ----------- v6.0.0beta1 ----------- [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. ------------ v6.0.0alpha1 ------------ [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 #11135). [mms] Improved handling of messages with multiple From addresses in mailbox views. [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 view. [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 preference. [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 window. [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 mailbox. [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 view. [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 #10886). [mms] Traditional mode now requires javascript on the browser. [mms] Added 'mbox_special' hook (rsalmon@mbpgroup.com, 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). ------- v5.0.24 ------- [mms] SECURITY: Fix obscure XSS issue if uploading a file in dynamic view from the browser's local filesystem that has a filename that contains HTML. [mms] Don't attempt to use non-IMAP mailbox names in IMAP server commands (Bug #11623). [mms] Catch failure to add attachments in dynamic view because PHP's maximum allowed POST size was exceeded. [jan] Fix search link from portal if using dynamic view (Bug #11314). [mms] Fix regression in using Virtual Trash (Bug #11478; tonyb@go-concepts.com). [mms] Fix sending MDN notifications in traditional view (Bug #11311). [mms] Fix changing sort order in dynamic search mailboxes (Bug #11108). [mms] Fix regression in creating top-level mailbox in traditional view (Bug #11326). [mms] Fix spam reporting in minimal view. ------- v5.0.23 ------- [mjr] Only ask for the count of matching contacts when determining to use browser vs ajax autocompletion. [jan] Fix closing the compose window after redirecting (Bug #11259). [jan] Display correct values in permission-denied error messages (Bug #11253). ------- v5.0.22 ------- [mms] SECURITY: Only allow display of basic image types directly in browser. [jan] Update Turkish translation (İstanbul Technical University). [jan] Re-add option to report messages as spam/ham through redirection. [jan] Update Swedish translation (Jakob Alvermark ). ------- v5.0.21 ------- [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. [jan] Update Italian translation (Emilien ). [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). [jan] Update Slovak translation (Marika Schvarczova ). [jan] Update Czech translation (Michal Foist ). ------- v5.0.20 ------- [mms] Added the 'delhide_trash' preference. [jan] Update Hungarian translation (Zoltán Németh ). [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 tree. [mms] Fix regression in displaying From address on mailbox page in traditional view. [mms] Fix updating the compose address fields when using the contacts popup. ------- v5.0.19 ------- [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 #10947). [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 #10926). [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. ------- v5.0.18 ------- [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. ------- v5.0.17 ------- [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). ------- v5.0.16 ------- [jan] Use locale based folder sorting. [mms] Workaround broken PGP signed data contained within encrypted parts (Bug #10809). [mms] Fix signature verification display for combined encrypted/signed PGP messages. [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). [jan] Update Dutch translation (Pieterjan Heyse ). [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 session. [mms] Fix 'server' credential in preauthenticate hook. [jan] Fix updating events from attendee responses (Bug #10772). [jan] Update Japanese translation (Hiromi Kimura ). [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). ------- v5.0.15 ------- [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 (http://grepular.com/email_privacy_tester/). [mms] Fix intermittent attachment loss when composing messages. [mms] Correctly reference CSS stylesheets contained within a multipart/related part. [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 information. [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). ------- v5.0.14 ------- [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 status. [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 #10539). ------- v5.0.13 ------- [jan] Fix broken dependency on Text_Flowed. ------- v5.0.12 ------- [mms] Fix UI artifacts when renaming mailboxes in dynamic view (Bug #10533). [jan] Don't open certain links in HTML messages in the message pane. [mms] Add ability to toggle hide deleted messages in dynamic view (Request #10256). [mms] Add auto-generated message filter (see RFC 3834). [mms] Remove non-existent parent mailbox when removing last child mailbox in dynamic view (Bug #10495). [mms] Provide content duration information for audio & video data if that information is available (RFC 3803). [jan] Fix setting sender when redirecting messages via SMTP (Bug #10488). [mms] Add List-ID information, if available, to auto-reply notification. [mms] Display information on reply method in standard view, and allow for easy method switching, when automatically choosing the reply type. [mms] Fix generation of Save All attachments link. [mms] More intelligent quoting of flowed text messages sent in HTML format. [mms] Browser mailto-handler respects current IMP view mode (Bug #10475). [mms] Always show image thumbnail previews, if an image conversion utility is present on the system. [mms] More workarounds for broken suhosin extension (Bug #10462). ------- v5.0.11 ------- [mms] Automatically track rownumber updates when selecting messages; fixes SHIFT-DEL behavior in the dynamic view. [mms] Fix contents of sent message when directly sending from spellcheck in standard view (Bug #10464). [mms] Fix namespace auto-detection for non-sane namespace configs (Bug #10447). [mms] Fix POP3 regression (Bug #10450). [mms] Forwarded messages no longer treated as an attachment in the UI (Request #9754). [mms] Correctly display submailboxes in dynamic view when new submailbox is created before parent mailbox is expanded (Bug #10429). ------- v5.0.10 ------- [mms] Display flag to indicate a mailing list message. [mms] Immediately update mailbox list when message is deleted and the mailbox does not support flags (e.g. POP3) (Bug #10424). [mjr] Fix notifications not showing while accepting iTips [mms] Correctly determine page with first/last unseen messages when using descending sequence sorting (Bug #9882). [mms] Deletion works correctly from popup message view if base window is no longer available (Bug #9761). [mms] Fix explicitly applying filters in INBOX in dynamic view (Bug #10291). [mms] Add 'Edit as New' action for messages (Request #10206). [mms] Remove 'allow_resume_all' configuration option (Request #10206). [mms] Add personal contacts search filter. [mms] Add ability to search all mailboxes (Request #10204). ------ v5.0.9 ------ [mms] Fix to allow search filters to be saved. [mjr] Fix mouse click handling on mobile view (Bug #10355). [mms] Ensure correct message charset is use if forward/reply headers contain non US-ASCII characters (Bug #10148). [mms] Select all checkbox in dynamic view can now be toggled (Request #10067). [mms] Remember vertical splitbar size in dynamic view. [mms] Workaround IE quirks for compose autocomplete box (Bug #10250). [mms] Fix resuming HTML drafts for non-reply messages (Bug #10298). [jan] Fix verifying of inline signed PGP messages (requires Horde_Crypt 1.0.4). [mms] Fix Shift-N shortcut in dynamic view (Bug #10352). [mms] Add save message link to dynamic view preview window. [mms] Correctly quote e-mail names when composing from compose links in the dynamic view (Bug #10292). ------ v5.0.8 ------ [jan] Don't attempt to delete linked attachments monthly if they have been disabled (Bug #10166). [jan] Don't show basic headers twice when showing all headers (Bug #10276). [jan] Add IMP_Contents#getTree() to return a tree representation of a message's MIME parts. [mms] Fix regression in parsing list reply address (Bug #10258). [jan] Tick sent-mail checkbox off when selecting sent-mail folder in dynamic view. [jan] Keep key navigation active after clicking into a HTML message (Request #9720). [mms] Fix additional regression when flagging all messages in a mailbox (Bug #10243). [mms] Fix "Don't Show" filtering in traditional mailbox view (Bug #10244). ------ v5.0.7 ------ [mms] Don't strip HTML part of compose message when stripping attachments from saved sent-mail message (Bug #10234). [mms] Fix regression when copying/moving messages into a new mailbox in traditional view (Bug #10232). [mms] Fix regression when flagging all messages in a mailbox (Bug #10224). [jan] Fix folder links in virtual folders (Bug #10221). [mms] Show translated name for special mailboxes in sent mail lists (Bug #10220). [mms] Fix regression in filtering mailbox in traditional view (Bug #10213). ------ v5.0.6 ------ [mms] Fix regression in renaming mailboxes in dynamic view (Bug #10207). [mms] Fix selecting sent-mail mailbox for not empty namespaces (Bug #10090). [mms] Fix saving expand/collapse state in traditional folders view. [mms] Update all flag changes in dynamic mode (Bug #10146). [mms] Fix editing saved searches in dynamic mode (Bug #10189). [mms] Fix regression in saving sent mail in traditional view (Bug #10193). [mms] Fix regression in deleting mailboxes in traditional view (Bug #10170). [mms] Fix currently selected mailbox in folder lists (Bug #10163). [jan] Don't show button to strip attachments if turned off in the preferences (Bug #10154). [jan] Fix printing from message popup (Bug #10188). [jan] Fix viewing messages source from message popup (Bug #10190). [jan] Fix editing saved searches in traditional view (Bug #10184). ------ v5.0.5 ------ [jan] Fix loading message previews from search results (Bug #10152). [mms] Fix sending messages with linked attachments (Bug #10125). [mms] Handle response codes/errors returned from POP3 servers. [mms] Fix POP3 regressions. [mms] Workaround broken suhosin extension to allow search mailboxes (Request #9842). ------ v5.0.4 ------ [mms] Fix filter links in the preferences UI (Bug #10117). [mms] Fix print icon for non text/html displayable attachments (Bug #10112). [mms] Support $Junk/$NotJunk keywords when marking spam/ham. [jan] Fix link to send PGP key to keyserver (Bug #10070). [mms] Fix resizing compose window in dynamic view for IE 7/8 (Bug #10075). [mms] Fix setting/unsetting passphrases in preferences (Bug #10096). [mms] Base64url encode breacdrumb hash information in dynamic view. [mms] Add login task to autocreate special mailboxes. [mms] Workaround broken messages by allow viewing multipart/related parts that are not referenced in the base part (Request #9827). [mms] Use ACLs to determine when to hide various UI options (Request #9537). [mms] Cache various calculated mailbox information in the session. [mms] Fix adding flags in advanced search (Bug #10049). [mms] Fix display of subfolders in mobile view (Bug #10043). [mms] Improved determination of available flags in a mailbox. [mms] Fix adding to whitelist from dynamic view (rui.carneiro@portugalmail.net, Bug #10036). ------ v5.0.3 ------ [jan] Add missing files to package. ------ v5.0.2 ------ [mms] Add quick flag filtering to traditional view. [mms] Fix viewing linked attachments (Bug #9972). [mms] Add support for the content-id access type of message/external-body. [mms] Consolidate IMAP error handling code in IMP_Imap_Exception. [mms] Use translated namespace name if available. ------ v5.0.1 ------ [mms] Fix resuming reply drafts in HTML mode (Bug #9928). [mms] Fix updating flags/logs on original messages after resuming from draft. [mms] Fix flagging messages in search mailboxes in dynamic view. [mms] Don't attempt to poll non-IMAP mailboxes (Bug #9896). [mms] Fix deleting attachments from compose message in dynamic view (Bug #9899). [mms] Newmail portal block can now be configured to auto-update. [mms] Fix deleteMessages and flagMessages API calls (Bug #9888). [mms] More intelligent polling in dynamic view (Request #9808). [mms] Fix spurious viewport loading in rare situations (Bug #9768). [mms] Show human readable message in multipart/report parts in the richest format possible (Bug #9873). [mms] Fix unneeded body part downloads in alternative parts (Bug #9862). [mms] Fix importing PGP private keys. [mms] More intelligent part naming if name is not specified in the message (Request #9853). [jan] Avoid double escaping of folder names in sent-mail drop down list. [jan] Fix translation of special folders on certain IMAP servers. [jan] Fix display of status icons in traditional view (Bug #9844). [mms] Fix displaying all message parts in standard view (Bug #9827). [mms] Allow .eml files to be imported into a mailbox (Request #9827). [mms] Fix vertical layout resize in dynamic view (Bug #9834). [mms] Fix link for filters menu item (Bug #9831). [mms] Fix composing messages in mobile view. [mms] IMP will refuse to work with POP3 servers that don't support UIDL. [mms] Many POP3 fixes. ---- v5.0 ---- [jan] Notify about new mails in any Horde application. [mms] New mail notifications now handled by the Horde Notification system (Request #9751). [mms] Fix resuming messages with attachments (Bug #9780). [mms] Fix javascript actions in standard view in IE 7/8 (Bugs #9801, 9809). [jan] Fix application-specific permission checks (Bug #9786). [mms] Fix printing of message parts in IE, regardless of local user settings (Bug #9756). [mms] Fix IMP_Maillog regression from RC2 (Bug #9763). [mms] Fix honoring default encryption option in dynamic view. [jan] Show full alarm notifications in dynamic view (Request #9748). [jan] Fix saving S/MIME certs to address book. [mms] Support importing of compressed mailbox files if the zip extension is not available. -------- v5.0-RC2 -------- [mms] Fix max_folders permission (Bug #9741). [jan] Rename all scripts in bin/ to be prefixed with imp- (Request #9647). [jan] Correctly render notifications with embedded HTML in dynamic view (Bug #9729). [mms] Fix moving to new mailbox, tasklist, and notepad in traditional view (Bug #9732). [jan] Add left and right keys as aliases for up and down keys in dynamic view. [mms] Add mailbox sorting and select all messages to vertical layout in the dynamic view (Request #9708). [jan] Fix expansion of quoted sections in thread view. [jan] Fix message previews in traditional view (Bug #9695). [jan] Support importing of compressed mailbox files. [jan] Fix upgrading of search_fields preference. [jan] Fix key navigation in traditional mailbox view. [mms] Don't cache FETCH data for the Spam and Trash mailboxes. [mms] All views now honor 'initial_page' preference. [mms] Fix loading virtual folder as initial page in standard view (Bug #9696). -------- v5.0-RC1 -------- [jan] Update installation and upgrade instructions. [mms] Fix upgrading virtual folders from IMP 4 (Bug #9692). [mms] Fix editing the size search criteria. [mms] Optimize importing messages from mbox file. [mms] Fix deletion from Virtual Inbox in standard view (Bug #9686). [mms] Fix loading virtual folders from drop-down folder list (Bug #9687). [mms] Fix thread sort by newest messages first (Bug #9685). [mms] Add import/download mailbox ability to dynamic view. [jan] Remove application tabs from AJAX interface (Bug #9679). [mms] Move all portal rendering code to Horde. [mms] Fix flag display in message list in traditional view (Bug #9673). ---------- v5.0-BETA1 ---------- [mms] Fix purging deleted messages in dynamic view (Bug #9627). [mms] Fix display of non-IMAP mailbox elements in folder lists (Bug #9650). [mms] Fix print part display. [jan] Fix listing users through IMP API. ----------- v5.0-ALPHA1 ----------- [jan] Add configuration whether to load other applications in an IFRAME. [mms] Indicate negative rights in ACL display (Request #4488). [jan] Provide default configuration files instead of .dist versions. [mms] Add priority and request read receipt information to saved drafts (Request #9457). [mms] Added example in pre_sent hook to do forgotten attachment checking at send time (Request #9028). [mms] Add subfolder searching (subfolders dynamically determined at time of search). [mms] Refactor inline message image blocking to operate on all messages, not just HTML messages. [mms] Add attachment message filter. [mms] Add post_spam hook called after reporting spam/ham (Request #6455). [mms] Implement stationery support in DIMP. [mms] Add preference to control displayed content for multipart/alternative parts (Request #6711). [mms] Allow multiple messages to be forwarded in a single outgoing message (DIMP) (Request #9132). [mms] Add personal recipient message filter (Request #8659). [mms] Add mailing list message filter (Request #8659). [mms] Add ability to define search criteria to be applied to any mailbox (Request #8659). [mms] Use recipient search (To/Cc/Bcc) by default instead of To search. [mms] Virtual folders now editable via a preferences group. [mms] Search code has been entirely rewritten. [jan] Rename servers.php to backends.php. [mms] Use alternate text part to generate reply/forward text when switching compose modes if user has not altered message text (DIMP). [mms] Improved login error reporting/logging in IMP (Request #9211). [mms] Add hook to skip MDN prompt based on content of message headers. [mms] Allow expand/collapse of folders in MIMP. [mms] Use single, unified mailbox cache. [mms] Add support for setting/retrieving special-use mailboxes from IMAP server. [mms] Add preference to control if we check for recipient PGP public keys when replying (Request #7962). [mms] Automatically determine view based on browser and 'dynamic_view' preference (Request #9159). [mms] Add preference to define default font family/size for the HTML compose editor. [mms] Honor nav_expanded preference (DIMP). [mms] Allow admin to define list of safe e-mail addresses that will not experience HTML image blocking (Request #9129). [mms] HTML compose editor uses Horde language for UI (Request #9084; leandro.damascena@gmail.com). [mms] Add config option to disable multipart/related conversions (Request #9099). [mms] Sentmail SQL driver now supports split read/write operation. [mms] Pass compose message data to mailer backend via stream; much more efficient, especially with larger messages (Request #8909). [mms] Add strip attachments support in DIMP. [mms] Add PGP & S/MIME compose support to DIMP. [mms] Check for incorrect identity on compose if a single recipient address is tied to a different identity than the sending identity. [mms] Use CATENATE (RFC 4469), if available, to strip MIME parts (Request #8092). [mms] Add preference to show flags created by other MUAs (Request #8882). [mms] Added HTML signature support (Request #1406). [mms] Simplified date sorting display (Request #8936). [mms] Properly redirect messages pursuant to RFC 5322 [3.6.6]. [mms] Add redirect message capability to DIMP. [mms] Add ability to add attachments to composed messages for advanced mobile browsers - disabled by default (MIMP). [mms] Add checkbox interface to mailbox page for advanced mobile browsers - disabled by default (MIMP). [mms] Add preference to allow viewing of all inline parts by default (MIMP). [mms] Add hook to alter composed message details before sending. [mms] DIMP now honors the 'allow_resume_all' configuration option. [mms] Remove 'sort_limit' configuration option. [mms] Mobile view no longer supports WML output. [jan] Implement iTip viewer actions in DIMP (Request #8061). [mms] Display alarm notifications in DIMP (Request #6232). [mms] Auto-determine charset for text attachments (Bug #8858). [mms] Remove IE 6 (and below) and Safari 2 (and below) support for DIMP. [mms] Add chance to switch between forward options on compose page when using auto-forward (DIMP). [mms] Add chance to switch reply type to single recipient on compose page when using auto-reply (DIMP). [mms] Fix printing multipage HTML messages in Mozilla browsers (Bug #8708). [mms] Provide command line script to obtain IMAP caching statistics. [mms] Catch flag changes from other IMAP clients when refreshing if CONDSTORE is available on the IMAP server (DIMP). [mms] Improved forwarding options. [mms] Add support for LIST-STATUS IMAP extension; provides more efficient mailbox polling. [mms] Add hook to allow determination of compose attachments MIME type. [mms] Move AJAX processing framework to Horde (Request #4561). [mms] If selected message(s) disappear from mailbox, gracefully handle in the user interface (DIMP). [mms] Only update search mailbox on explicit user action (Request #7297) (DIMP). [mms] Add auto-save draft to IMP (Request #7656). [mms] Add keyboard shortcut to move to next unseen message (Request #8223). [mms] Add hook to dynamically change mailbox label (Request #6734). [mms] Improved address expansion in MIMP. [mms] Load folders on-demand in sidebar (DIMP). [mms] Add priority setting to DIMP. [mms] Simplify and improve priority header generation/display. [mms] Add Face: header support to IMP. [mms] Add splitbar to resize sidebar in DIMP. [mms] Use LIST-EXTENDED IMAP extension (RFC 5258), if available, to get subscribed mailbox information. [mms] Split ham/spam reporting actions into two separate preferences (Request #8221). [mms] When clicking on base reply button, auto-determine the best way to reply to a message based on the header information. [mms] Add vertical-pane preview layout to DIMP. [mms] Wrap content-related MIME parts in a border when viewing inline to indicate their relationship. [mms] For drafts, save the original message index for forwards/replies so when eventually sent, log information can be updated (Request #8663). [mms] Upgrade RTE to CKEditor v3. [mms] Sort by display name for to/from fields if supported on IMAP server. [mms] Add ability to quickly filter by flags in DIMP. [mms] Add ability to select sent-mail mailbox when composing in DIMP. [mms] Add ability to save drafts in MIMP. [mms] Add spam reporting in MIMP. [mms] Added contextmenu support in DIMP for Opera. [mms] Display HTML parts inline by using IFRAMEs (based on code by rui.carneiro@portugalmail.net; Request #8592). [mms] Add ability to search by relative date intervals (Request #3438). [mms] Add advanced search query interface to DIMP (Request #6875). [mms] Add ability to search by a custom defined header (Request #6875). [mms] Improved advanced search query interface (Request #6875). [mms] More intelligent ordering of autocomplete search results. [mms] Add a mini search query interface to IMP (Request #6875). [mms] Make DIMP quicksearch field selection persist across sessions. [mms] Move JS/CSS caching to Horde framework. [mms] Add simple search function to MIMP. [mms] DIMP now honors the 'mailbox_start' preference. [mms] Logins now handled by Horde login handler. [mms] When generating and sending compressed ZIP data, use server-side temp streams to minimize memory usage. [mms] Decode bodypart data on server if possible (RFC 3516). [mms] Use PHP temporary streams when working with message body data to reduce memory usage (Request #3359). [mms] Add ability to expand/collapse all folders in DIMP. [mms] Add Folder Options menu to DIMP. [mms] Add save link to full message display in DIMP. [mms] Allow on-demand filter application (if filter backend supports) in DIMP. [mms] Add full IMAP subscription support to DIMP (Request #8059). [mms] Add message information to preview screen (DIMP). [mms] Add Alt + PGUP/PGDN shortcut to scroll through preview message (DIMP). [jan] Show possible event conflicts in iTip viewer (Request #3991, Gonçalo Queirós ). [mms] Move subfolders of special folders to lower folder display tree in DIMP (Bug #8127). [mms] Simplify quicksearch UI in DIMP. [mms] Improve notification display (DIMP). [mms] Use mailbox names in folder confirmation actions (DIMP) (Request #8162). [mms] Optimize viewport row insertion/updating (DIMP). [mms] Add support for defining and displaying custom IMAP flags and for configuring the highlighting of system flags (Request #937). [mms] Move attachment display on mailbox page from hook to preference. [mms] Always process priority/precedence headers. [mms] Support $MDNSent keyword (RFC 3503) on IMAP server. [mms] Link URLs/e-mails in subjects in message views (Request #7487). [mms] Implement spellcheck on send in DIMP. [mms] Sanity check - don't do message operations reliant on UID list if UIDVALIDITY of mailbox has changed. [mms] Remember splitbar position on login/refresh (DIMP). [mms] Disable advanced functions if using POP3 driver (caching, on-demand filtering, searching, sorting) because it is too resource intensive. [mms] Use native PHP code for POP3 driver (c-client no longer required). [mms] IMP code now uses Exceptions instead of PEAR_Errors. [mms] Fix wrong charset on filenames when stripping attachments (Bug #7220). [mms] Use effects queue to prevent issues with users clicking on effects elements too quickly. [mms] Trim leading/trailing whitespace from reply/forwarded text. [mms] Add full IMAP message flagging capabilities to DIMP. [mms] Decode IDN (RFC 3490) names in addresses (Request #5836). [mms] Add ability to download attachments in MIMP (Request #2925). [mms] Revamp JS event handling model. [mms] ESC in DIMP search box now clears the search (Request #7196). [mms] Enhancements to status icon view (Request #7519) (DIMP). [mms] If the browser supports it, embed image data in cached CSS files via data URLs (Request #7174). [mms] Translate special folder names (Request #7545). [mms] Make autocompletion threshold parameters configurable (Request #7322). [mms] Add compose attachment preview to DIMP. [mms] Add 'unit' parameter for quota display (Carlos Pires , Request #7044). [mms] Add support for '$Forwarded' IMAP keyword (Request #3402). [mms] Attachments in a signed message now can be downloaded via the download all attachments link (Bug #2939). [mms] Remember preview toggle header preference (Request #7264) (DIMP). [mms] Fix stripping attachments when saving to sent-mail folder when attaching the PGP public key (Bug #4221). [mms] Removed Special Characters menu. [mms] Add 'undelete' to Other Actions menu (Bug #7496) (DIMP). [mms] All PGP & S/MIME functions now work in DIMP (Bug #5388). [mms] Encrypted bodytext now appears when replying/forwarding a message (Request #1345). [mms] When deleting/emptying a folder, display message count (Request #7424). [mms] No longer need HTTP_Request - use Horde_Http_Client instead. [mms] Use Horde_Imap_Client as the IMAP library in IMP. [mms] DIMP and MIMP have been moved into IMP. [mms] Allow all parts in a message to be displayed (Bug #1866). [jan] Re-add access keys (DIMP). [mms] Quota template has been moved inside of base include file (DIMP). [mms] Added an alerts log (Request #7173) (DIMP). [mms] Added support to access IMP's Virtual Folders (DIMP). [mms] Shift-drag for messages will copy instead of move (DIMP). [mms] Remove support for Xinha as GUI HTML editor. [mms] Strip extra 'Fwd' and 'Re' cruft from subject line when replying to or forwarding a message. [mms] Don't send server requests when autocompleting addresses when possible. [mms] Added readonly mailbox and disable compose hooks. [mms] Saving draft on session expiration now handled via VFS. [mms] Add preference to delete draft on resume & send. ------- v4.3.10 ------- [jan] Don't submit the action form when reloading messages with iTip attachments (Bug #9502). ------ v4.3.9 ------ [mms] Fix error if user's account only contains an INBOX (Bug #9273). ------ v4.3.8 ------ [jan] SECURITY: Properly escape user input in Fetchmail configuration. [mms] Fix updating POP3 indices when using mailbox caching (Bug #8035). [jan] Include "anyone" user when listing users in the ACL screen (Bug #9135). [mms] Turn DNS prefetching off when displaying untrusted message content (Request #8836). ------ v4.3.7 ------ [mms] Fix spellcheck-on-send when using fckeditor and no errors exist (Bug #8833). [mms] Fix authenticate API call and synchronization when using realms (robin.west@dal.ca, Bugs #6749, #8872). [mms] Optimize folder tree initialization (Request #8805). [mms] Add command line fetchmail script (tjacyno@galasoft.net, Request #8812). [jan] Workaround broken PHP number formatting with some locales (Bug #8780). ------ v4.3.6 ------ [cjh] Fix the default value for the nav_audio preference (sistemisti-posta@csi.it, Bug #8725). [mms] Make sure sent-mail folders exist if using the drop-down selection list on the compose page (Bug #8520). [mms] When replying to list, correctly extract e-mail address if multiple entries exist in the List-Post header (Bug #8719). [mms] For messages marked as innocent but not moved to Inbox, don't report them as deleted within the current mailbox (Bug #8221). [jan] Don't show address book preference group if address books are disabled (Bug #8692). [mms] Save References/In-Reply-To header info when saving a draft (Bug #8661). [jan] Fix viewing S/MIME encrypted and signed messages from Outlook (Express) (Bug #8629). [jan] Add Oracle-specific SQL script. [jan] Add Croatian translation (Matej Vela , Iva Rumora ). [mms] Don't use translated folder prefixes in rename dialog (Bug #8554). [jan] Add hook to retrieve public S/MIME and PGP keys. ------ v4.3.5 ------ [mms] Upgrade prototype.js to v1.6.1. [jan] Add example hook for the search_sources preference (dom.lalot@gmail.com, Request #7796). [mms] Fix renaming shared folders contained in empty namespaces (Bug #8468). [mms] Correctly handle NO untagged responses on login (Bug #8478). [mms] Correctly set charset of Bcc header in sent mail (Bug #8362). [mms] Fix spellcheck in text-mode for certain words in non-English locales (Bug #8330). [mms] Fix some javascript if using IE 8 (uses IE 7 compatibility mode) (Bug #8345). [jan] Allow to lock default_encrypt preference. [mjr] Add example hook for the add_source preference (Bug #8285). [mms] Fix unqualified domain preference (Bug #8272). [jan] Highlight signed messages depending on the signature verification. [mms] Fix display_folder hook (m.gabriel@das-netzwerkteam.de, Bug #8254). [jan] Use correct charset when rendering inline PGP data. ------ v4.3.4 ------ [mms] SECURITY: Don't cache local PGP public keys retrieved from the addressbook (found by Peter Meier ). [mms] If using spellcheck on send, automatically send if no spelling errors exist (Request #6892). [jan] Show all addresses when printing messages. [mms] Fix cache issues in folder tree when deleting a mailbox (Bug #7745). [mms] Fix updating POP3 indices when deleting in mailbox view (Bug #8035). [jan] If updating a calendar event fails, try to import it instead (Bug #7589). [mms] Fix [un]escaping of various URLs on message screen caused by security fixes in v4.3.3 (Bug #7926). [jan] Fix rendering of subjects in RTL scripts when using LTR translations (vilius@lnk.lt, Bug #3511). [mms] Add hook to allow hiding of IMAP folders (Gunnar Wrobel , Request #7353). [jan] Fix logging of messages forwarded with attachments (Bug #7911). ------ v4.3.3 ------ [cjh] SECURITY: Escape output in message.php, pgp.php and smime.php (found by Gunnar Wrobel ). [jan] Use all credentials and mailer settings for iTip replies (Bug #7388). [mms] Show translated 'INBOX' prefix for subfolders (Request #7759). [mms] Workaround obsolete 'UT' date format (Request #5717). [mms] Fix tracking folder changes when renaming (Bug #7772). [cjh] Suppress browser autocomplete when redirecting messages (Bug #7767). ------ v4.3.2 ------ [mms] Fix prototypejs regression on IE (Bug #6590). ------ v4.3.1 ------ [jan] SECURITY: Escape output in test.php. [mms] Don't include Virtual Folder information in when tracking folder tree changes (Bug #7739). [mms] Marked stripped parts as 'attachment', not 'inline' (Request #4664). [mms] Fix linking from addresses in mailbox to compose screen (Bug #7432). [jan] Use mailer configuration when sending iTip replies (Bug #7388). [jan] Always display multipart/appledouble attachments. [mms] Upgrade prototype.js to v1.6.0.3. ---- v4.3 ---- [jan] Add compose token to redirect view (Bug #7383). [jan] Don't resize window if not composing messages in a popup. -------- v4.3-RC2 -------- [mms] Fix loading of print stylesheets when printing a message (Bug #7310). [mjr] Fix redirect loop when conf[server][change_server] is true (Bug #6978). [mms] Fix message caching and optimize storage. [mms] Fix autocomplete address positioning on IE (Bug #7074). [cjh] When the selected view doesn't match the type of browser's default view (IMP or DIMP for a mobile browser, MIMP or DIMP for a desktop browser), explicitly redirect to that view and disable the frameset (Bug #6332). [jan] Add support for updating exsting events and cancelled recurring event instances to iTip viewer (Bug #6636). [mms] Fix uploaded compose attachment names if magic quoting is on (Bug #7215). [mms] Cache results of address formatting. [jan] Show name and email address in the address book popup (Request #6937). [mms] Messages from lists can now have large quotes automatically hidden. --------------------------------- v4.3-RC1 (released as v4.2.1-RC1) --------------------------------- [mms] Fix incorrect autocomplete replacement in certain cases (Bug #6819). [mms] Use optimized autocomplete javascript library. [mms] Handle ';' to delimit addresses when composing. [jan] Don't allow adding private PGP keys as public keys (Bug #7080). [jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV ). [mms] Search by size now displayed in KB (Request #6921). [jan] Add option to attach personal vCard to message (requires Turba 2.2.2). [jan] Fix maildir quota driver (Bug #7014). [jan] Add configuration for quota message format. [mms] Maintain original header encoding on redirect (Bug #7006). [cjh] Add CSRF tokens to the Compose screen (Kris Steinhoff ). [jan] Fix adding vhost specific trailer.txt. [jan] Add more flexible placeholders to SQL quota driver. [jan] Fix passing passwords to quota drivers. [mms] Improved folder list generation (Bug #6972). [cjh] Allow hiding quota messages when quota is unlimited (Thomas Jarosch , Request #6934). [jan] Add mailto: handler for Firefox 3+. [mms] Fix address MIME encoding issues when saving a draft (Bug #6986). [cjh] Include a hint about fixing invalid From addresses in the error message (steinhof@umich.edu, Bug #6941). [cjh] Fix overwriting $params in _imp_adminDo API call (Bug #6955). [mms] Never wrap flowed lines in text/plain messages. [mms] Fix broken spellcheck when using fckeditor on Safari 3 (Bug #6909). [mms] Fix unescaping URL parameters passed to popup windows (Bug #6834). [jan] Fix logging of forwarded messages. [mms] Fix creation of subfolders in certain namespaces (thomas.jarosch@intra2net.com, Bug #6827). [mms] Improve search page by moving flags into search criteria section (Request #6825). [mms] If using imagemagick, allow creation of PDF thumbnails. [mms] Strip quotation marks and backslashes from displayed addresses. [mms] Fix spellcheck in HTML mode when using Xinha on IE (Bug #6799). [mms] Fix rare case when spellchecking HTML input could result in the HTML tags being recognized as misspelled words. [jan] Fix parsing for Token System configuration parameters. [mms] Add ability to search by size. ------ v4.2.2 ------ [cjh] SECURITY: Escape output in message.php, pgp.php and smime.php (found by Gunnar Wrobel ). ------ v4.2.1 ------ [jan] SECURITY: Escape output in test.php. ---- v4.2 ---- [cjh] Fix display of email groups in received messages. [cjh] Fix sending email to contact lists (Bug #6732). [cjh] Make sure that email addresses entered in the Identities screen pass basic well-formedness validation (Bug #6654). [cjh] Fix default server selection on the login screen (adrieder@sbox.tugraz.at, Bug #6738). [cjh] Fix defaulting to the wrong address book in the Contacts popup (steinhof@umich.edu, Bug #6723). -------- v4.2-RC4 -------- [mms] Add ability to cache JS/CSS files to static files to improve performance and to fix problems when updating JS/CSS files. [cjh] Apply fix for http://dev.rubyonrails.org/ticket/11473 to prototype.js (Request #6590). [cjh] Make request token lifetime configurable (faurep@agr.gc.ca, Request #6679). [mms] If using SMTP, send messages using 8BITMIME (RFC 1652) or BINARYMIME (RFC 3030) if appropriate (Request #6645). [cjh] Work around a spellchecking issue with proc_close and --enable-sigchild (Bug #6625). [jan] Show user drop down list in ACL screen if possible. [mms] Redirect after doing maintenance to the proper view (Bug #6179). [mms] Allow switching views in mobile login mode (Request #6332). [jan] Support vhosts setting when loading header.php, servers.php, spelling.php and trailer.txt configuration files. [mas] Use delete icon on search page to remove elements. (Liam Hoekenga , Request #6515). [mms] Add link to delete entire thread on thread screen (Request #5884). [mms] Hide trash-related options when trash is disabled. [jan] Allow users to specify server name and login credentials in Horde's preferences (requires Horde 3.2). [mms] Message cache now stored in configurable chunks to reduce memory usage. [mms] Fix mailbox list caching when hiding deleted messages. -------- v4.2-RC3 -------- [mas] Replace %l and %d with the current short username and domain name in spam reporting shell calls. (Bug #6364) [cjh] Add a hook quota driver (Michael.Redinger@uibk.ac.at, Request #6322). [mms] Make xinha add BR tag instead of P tag on enter keypress (Mozilla only). [mms] Add fckeditor to list of supported javascript editors. [jan] Hide iTip actions if not using IMP frontend (Bug #6116). [cjh] Fix showing suggestions for the second or subsequent misspelled word (Bug #6081). [jan] Add configuration option to force users to a certain view. [jan] Localize default folder names. [jan] Call a contacts/add API method to create links for adding contacts if available. [jan] Filter HTML body when replying to HTML messages with the WYIWYG editor. [jan] Allow users to set the HTML editor toolbar buttons in their preferences. [jan] Fix charset of composed HTML messages (Bug #6268). [cjh] Protect mailbox, message, and folder actions with CSRF tokens. [cjh] Fix action dropdowns in IE6 (Bug #6177). [cjh] Make sure to call Event.extend() when using inline event handlers, for IE6's benefit. [cjh] Fix improper enabling of HTML composition on replies (Bug #6176). [jan] Use subject's CN instead of OU for storing public keys (Bug #6169). [cjh] Make sure that custom checkbox preferences are stored as 0 or 1 instead of 'on' or ''. [jan] Fix popup URL generation (Bug #6139). -------- v4.2-RC2 -------- [mms] SECURITY: When sending linked attachments, protect against JAR attacks in some Mozilla browsers (Bug #5892). [cjh] Fix the bottom Select: menu in the mailbox view (Bug #6128). [mms] Add hook for adding formatting information to a message list row (Request #5234). [mms] If javascript is available, automatically size the popup compose window. [jan] Allow to write outside of HTML signatures in WYSIWYG editor (Bug #3753). [jan] Highlight HTML signatures in WYSIWYG editor. [jan] Remember webmail mode selected on the last login. [mms] Compress download data. -------- v4.2-RC1 -------- [jan] Fix broken tags in HTML messages. [mms] When sending notification that linked attachment has been downloaded, correctly set timezone in download time (Bug #4609). [cjh] If encrypting a message, encrypt an attached public key as well (Bug #5733). [jan] Remove "default search field" preference, show all common fields instead. [cjh] Rename IMP_IMAP_Client::namespace to getNamespace() for PHP 5.3 compatibility. [cjh] Cache PGP public keys for one hour (adrieder@sbox.tugraz.at, Request #5773). [mms] Add mailbox list caching across sessions. [cjh] Don't translate "Fwd:" in email subjects (Request #5674). [jan] Add link to strip all attachments from a message. [jan] Show owner of S/MIME cert in signed messages, not the message sender. [jan] Allow maintenance tasks to rename and delete fixed folders (Bug #5592). [mms] Allow all javascript and CSS in a page to be served in a single browser request. [jan] Move all IMP-specific hook examples from Horde's config/ directory. [jan] Fix compose window widgets with certain translations (Bug #5638). [jan] Fix sidebar tree generation with certain translations (Bug #5525). [cjh] Fix spellchecking HTML messages with active links (Bug #5629). [cjh] Fix a fatal error when composing for users with no signature (Bug #5682). [cjh] The pspell extension is no longer supported for spell checking since it doesn't work with HTML composition at all (Bug #5516). [cjh] Fix switching signatures when using HTML composition (Bugs #3753, #5594). ---------- v4.2-ALPHA ---------- [jan] Add configuration for folders that may not be modified. [mms] Inline PHP-generated javascript to avoid cross-domain leaking (Bug #5307). [cjh] Preserve current mailbox when composing in the main window (Bug #5415). [cjh] Add a few more new mail sounds and allow the user to choose between them (Request #3260). [mms] Preserve URL anchor information when performing login. [jan] Fetch public PGP keys from keyserver if not available in address book (Requires Horde 3.2). [mms] Add compose support for e-mails containing Internationalized Domain Names (Request #5180). [jan] Add a hook for post sending actions, after a message has been sent. [mms] Add option to login screen to allow user to select the application mode if either DIMP or MIMP is also installed. [jan] Add unified IMAP quota driver to obsolete the Cyrus and Courier drivers. [mms] Don't allow namespace delimiters in new mailbox names. [mms] Change 'Important' flag to 'Flagged For Followup' and clear the flag after a reply (Request #4867). [mms] Allow display of shared/public folders separate from a user's personal folders (Request #3581). [mms] Allow thumbnails to be generated for all attached images, regardless of image size. [cjh] Add a modal confirmation dialog for emptying a folder (Request #4812). [mms] Add ability for admin to limit size of reply text. [mms] Add RSS/Atom feed for mailboxes (Eric Garrido , Request #2733). [mms] If tidy is available, use it to clean up outgoing HTML messages. [mms] Automatically delete blacklisted messages (Request #4569). [cjh] Implement non-modal newmail popups (Request #3327). [mms] Add option to restrict size of MIME message parts that can be displayed inline. [cjh] Add a Help entry for keyboard navigation (Bug #4716). [mms] Most javascript code now uses the Prototype library. [jan] Address auto-completion searches only at beginning of names and addresses. [jan] Add button to empty the current folder. [jan] Show percentage of attachment limit usage in compose window (Eric Garrido , Request #3434). [jan] Add SQL driver for quotas (Tomas Simonaitis , Request #4053). [mms] Allow user to view PGP encrypted messages sent by themself (Bug #4332). [mas] Make ACL editor more intuitive (Eric Garrido , Request #3808). [mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines. (Request #4080) [mms] Added preference to allow composition in reply/forward based on "richest" format available in original message (Request #4270). [mms] Added preferences to determine default forwarding method and whether to include body text in forwards by default. [mms] Add preference to only verify PGP & S/MIME signed data upon user request (Request #4022). [mms] Add preference to indicate default cursor location in compose text area (Request #3245). [jan] Add support for symmetric PGP encryption (Requires Horde 3.2). [cjh] Add an onbeforeunload handler so Firefox and IE users can be prompted before accidentally closing a compose window (phyre@rogers.com, Request #4271). [jan] Move mail_hdr preference from identities to a regular preference. [mms] Remove current mailbox information from session - allows multiple simultaneous open IMP windows (Request #3171). [mms] Add folder size display to folders screen (Request #4065). [mms] Add ability to filter HTML message output with tidy (Request #388). [cjh] Show thumbnails of large images instead of linking to them (Eric Garrido , Request #3808). [mms] Page location in mailbox is remembered for subsequent mailbox visits. [mas] Add maintenance task to purge old messages from spam folder (Request #3860). [mms] Implement mailbox message list caching. [mms] Port AJAX spell checking code from DIMP. [mms] Port auto-complete contacts AJAX code from DIMP. [mms] Add preference to poll all folders for new mail (Request #2197). [mms] Allow admins to add "Printed By" headers to the top of all printed messages (Request #1965). [mms] Allow user to save per-folder sort preferences (Request #1483). [jan] Add multidomain support for Kolab servers (tokoe@kde.org, Request #3579). [cjh] Add a hook for post-login actions, after the session is established but before redirection. [mms] Recent search queries can be retrieved on the search page (Request #3337). [mms] Convert all templates to Horde_Template::. [cjh] Show vTodo parts in the iTip driver (Request #3344). [jan] Add maintenance task to purge old messages from sent-mail folders. [cjh] Move allow_cc and allow_bcc to compose_cc and compose_bcc preferences. [ben] Better support for MS-SQL. [jan] Whether and where to show alternative mime parts is now a preference instead of MIME configuration. [mms] Split out custom spelling dictionary into separate configuration file. [jan] Delete original message after saving a resumed draft. [cjh] If the browser supports the necessary javascript, unblock images in HTML messages without a page reload. [cjh] Do all message styling based on flags with CSS. [mms] Implement message caching. [jan] Add permissions to restrict maximum number of recipients per message and time. [jan] Add API method "contacts/favouriteRecipients". [jan] Add logging of sent messages. ------ v4.1.6 ------ [jan] Fix sentmail folder not being updated in the preference interface after updating to Horde 3.1.5 (Bug #5842). [jan] Fix broken tags in HTML messages. ------ v4.1.5 ------ [cjh] Lower memory usage when downloading folders (Andrew Morgan ). [mms] Fix detection of default namespace information when no namespaces are defined on the server (Bug #5538). [mms] Don't lose message bodies When moving messages to trash when over quota (Bug #5470). [cjh] Remove unused defaults in Fetchmail_imap (Bug #2799). [jan] Fix empty folder name appearing on Cyrus and servers with similar namespaces (Bug #5138). [jan] Only show reply options in iCalendar viewer if a reply is requested. [cjh] Remove non-responsive www.keyserver.net and wwwkeys.pgp.net from PGP options (Bug #5323). [jan] Fix moving messages when over quota on Dovecot servers (Bug #5270). [jan] Fix parsing of certain distribution lists (Bug #5134). [mms] Fix rare occurrence where an action perfomed on the mailbox screen would instead be performed on the INBOX (Bug #5202). [mms] Don't show save attachments prompt in compose screen if configured to automatically link all attachments (Request #5189). ------ v4.1.4 ------ [jan] SECURITY: Fix XSS vulnerabilities in the search screen and thread view. [jan] Improve displaying of PGP messages (requires Horde 3.1.4 partially). [mms] Make sure we pass a read/write IMAP stream to the filters API (Bug #5054). [mms] Do not allow move to trash unless trash folder is defined (Bug #5012). [jan] Fix an encoding issue with the address book popup (Bug #5050). ---------- v4.1.4-RC1 ---------- [cjh] "Ignore All" spellchecking fixes (technology@pmi-portland.org, Bug #4922). [cjh] Absolute restriction on the width of the contacts window select elements (Request #1985). [cjh] Send lowercase mailto: attributes in iCalendar replies (Bug #4872). [cjh] Don't improperly increment iCalendar SEQUENCE values (Bug #4863). [mms] Always subscribe to created folders. [mms] Don't allow both trash folder and Virtual Trash to be selected in the options (Bug #4698). [cjh] Turn mailto: links in HTML emails into IMP compose links (Bug #3079). [cjh] Attempt to calculate the actual filesystem block size in the IMP_Quota_command driver (Eric Rostetter , Request #4360). [cjh] Make sure to honor user date format preferences in iTip viewer (Bug #4635). [cjh] Fix message list header underflow in IE7 (Bug #4608). [cjh] Don't return empty sent-mail folders from the identity (Bug #4380). [cjh] Don't rename folders from or to an empty string (Bug #4380). [mas] Don't replace spaces with '.' when expanding addresses. (Bug #4236) ------ v4.1.3 ------ [mms] Add 'login_tries' server configuration option. [jan] Fix toggling compose mode if folders are turned off (Bug #4216). [mms] Fix blacklist/whitelist reporting (Bug #4160). [jan] Add link to view attached S/MIME key details. [cjh] Correctly escape all folder names. [mjr] Correctly restrict gallery list when saving images to a gallery program. [jan] Send notifications about downloaded attachments to address from identity. [mms] Escape group names pursuant to RFC 2822 (Bug #4018). [mms] Fix saving images to gallery program (e.g. Ansel) from search mailboxes (Bug #4046). ------ v4.1.2 ------ [mas] Check Cyrus quota for current mailbox, instead of always showing INBOX. (Eric Garrido ) [cjh] Send linked attachment notifications in the language of the user who sent the attachment (Bug #3712). [mms] Fix appending default personal namespace to default sent-mail folder (Bug #3873). [mms] Fix IMAP logins for some servers that throw in extraneous server information (Bug #3793). [mms] Quote IMAP usernames when using LOGIN authentication to allow usernames with spaces to login (Bug #3778). [jan] Fix creating folders through the api (Bug #3787). [mms] Added preference to toggle display of Virtual Inbox. [mms] Fix display of Virtual Trash (Bug #3665). ------ v4.1.1 ------ [mms] Silence some undefined warnings if folders are off (Bug #3755). [cjh] Escape X-color data (Bug #3751). [mms] Never open connection to specific mailbox unless we need it. [mms] Don't allow IMP preference access unless authenticated. [mms] Fix moving message to trash folder when over quota (Bug #3687). [mms] Add preference for default charset to be used for messages with improper charset information (requires Horde 3.1.1) (Request #2702). [mms] Fix stripping attachments (Bug #3510). [mms] Fix creation of duplicate Virtual INBOXes. [mms] Fix displaying Show/Hide/Purge links for deleted messages in certain cases. [jan] Fix downloading of all attachments from certain messages in a ZIP file with Internet Explorer. [mms] Use other login methods in IMP_IMAPClient:: if the first method is unsuccessful, to make Exchange working again. [mms] If an IMP maintenance task is activated, make sure the Horde preference controlling maintenance is also activated (Bug #2987). [mms] Fix spellcheck on send (Bug #3589). [mms] Allow user to select sent-mail folder in public namespace if public namespace is blank (Bug #3603). [mms] Add preference to define how we want to expand folder list in sidebar. ---- v4.1 ---- [mms] Correctly expunge current mailbox when deleting messages on a POP3 server (Bug #3156). -------- v4.1-RC3 -------- [mas] Add Hebrew translation. [mms] Attempt to login to mail server multiple times on non-auth failure to eliminate some "random" session timeouts (ag@netside.de, Bug #3404). [mms] Allow configuration of server timeouts in servers.php. [jan] Less intrusive notification when expanding of addresses in the compose view fails (Dmitriy MiksIr ). [mms] IMP_IMAPClient:: now uses the Auth_SASL PEAR module during CRAM-MD5 and DIGEST-MD5 authentication. -------- v4.1-RC2 -------- [jan] Add Khmer translation (Leang Chumsoben ). [mms] Make Linked attachments work in multipart/alternative messages (Bug #3335). [mms] Allow selection of Virtual Folder for login mailbox (Bug #3315). [mms] Prompt user before sending messages with empty subjects (Bug #3333). [mms] Add ability to edit search queries. [jan] Log correct address in login success message if connecting through a proxy (Bug #3289). [jan] Fix forwarding of multiple messages. [jan] Fix confirmations after successfully sending messages (Bug #3233). [jan] Apply _imp_hook_mbox_icons hook to the sidebar folder tree (Bug #3132). [mms] Re-add option to rebuild folder tree from IMAP server. [mms] Fix sent-mail folder selection in compose view (Bug #2802). [cjh] Fix redirection to initial_application preference after running Maintenance tasks. -------- v4.1-RC1 -------- [mms] Removed 'dotfiles' server parameter. [mms] Allow PHP expressions to be executed for user-defined headers (Bug #3093). [mms] Support 'DelSp' parameter in flowed text messages (requires Horde 3.1). [mms] Remove outdated, non-standards request for delivery confirmation. [mms] Hide lengthy address lists by default in message view and allow the user to toggle viewing (flachapelle@inverse.ca, Bug #3028). [cjh] Account for changes to strtotime() in PHP 5.1. [mms] It is not possible to hide deleted messages when using thread sort. [mms] Option to send notification that linked attachment has been downloaded, and link to delete the attachment (Bug #696). [mms] After fetching mail, return to the local mailbox where mail is downloaded to (Bug #2211). [mms] Check the IMAP server to see if it supports searches in the current charset. [mms] Do not require users to click on 'Attach' button when attaching files in the compose screen (Bug #2848). [mms] Don't display unsubscribed folders in sidebar (Bug #2869). [mms] Rename folders from top of tree to bottom to prevent errors on IMAP servers that automatically rename all child folders (Bug #2882). [mms] Fix opening compose popups when the mailbox contains urlencoded characters (Bug #2872). [mms] Fix refresh of folders when not using IMAP subscriptions (Bug #2878). [cjh] Skip results with empty email addresses when expanding names (Bug #2757). [cjh] Replace %u with the current username in spam reporting shell calls (Dmitriy MiksIr ). [mms] Don't ask for password for decryption when the user does not have a personal private key (Bug #2771). [mms] Add API method to return logged in server hostname. [mms] PGP encrypted messages now encrypted to all recipients in the same message (Bug #2670) (requires Horde 3.1). [mms] Added preference to define the default search field (Bug #2650). [jan] Add ability to create notes from email messages. [jmf] Add support for changing SMTP server/port on login (Bug #327). [mms] Removed 'folders', 'namespace, and 'hierarchies' server parameters. [mms] Add auto-detection of namespace information from IMAP server. [cjh] Support configuring where the "Report as" spam/innocent links appear (dustin@ywlcs.org, Bug #1096). [mms] Add preference to move spam/innocent messages to appropriate mailbox after reporting. [mms] Add multiple message view page (Bug #481). [jan] Add stationery and form responses. [cjh] Differentiate between signed and encrypted attachments (Bug #1712). [jmf] Ability to play sound on new mail. [jan] Add permissions to restrict creation of folders. [mms] Add configuration option to allow message bodies to be cached across page loads. [ben] Honor horde's alternate_login and redirect_on_logout settings. [jan] Add "Empty Spam" menu item (Bug #1765, jens@peino.de). [mms] Add Virtual INBOX to Virtual Folders. [mms] Make sure special Virtual Folders can never be edited. [mms] Allow import of photo attachments into a gallery application. [mms] Fix IMAP thread display when the base level contains more than one message. [mms] Better/more complete preview message generation. [mms] Graphical representation of thread on thread view screen. [mms] Virtual Trash folder support (Todd Merritt ). [mms] All composed messages are now sent in "flowed" format. The "wrap_width" preference has been eliminated. [mms] Success messages are not shown when adding a blacklist/whitelist address if an error in adding the address(es) occurred. [mms] No need to show a "Hide HTML images" link if the images have already been displayed. [mms] Include Cc: header information in the header text we display for forward and reply messages (Bug #1079). [jan] Show ZIP icon with "Download all attachments" link. [mms] S/MIME parts should always attempt to be viewed inline, notwithstanding the Content-Disposition for the part (requires Horde 3.1). ------ v4.0.5 ------ [cjh] Correctly escape all folder names. [jan] Fix French translation. ------ v4.0.4 ------ [mms] Add warning that PGP key generation may take awhile (Bug #2672). [mas] Add confirmation when reporting spam/innocent from message view. (kevin_myer@iu13.org, Bug #2285) [cjh] Fix check for duplicate addresses when automatically saving recipients (Bug #2663). ---------- v4.0.4-RC2 ---------- [mms] Fix additional newlines being added to forwarded messages when using sendmail on *NIX (Bug #2449, t.zell@gmx.de). [mms] Fix BCC addressess disappearing when resuming a message (Bug #2558). [mas] Fix reporting multiple messages as spam at once. (horde.org@spamvrij.kicks-ass.org, Bug #2549) [mms] Add entire message search to search page. [jan] Fix warnings if expanding names with spaces (Bug #2334). [mms] Don't display body text in thread view if inline viewing of the content is disabled. [jwm] Renamed Accounts menu item to Fetch Mail for more consistency. ---------- v4.0.4-RC1 ---------- [jan] Decode folder name when importing messages (ddibox@mail.ru, Bug #2479). [jan] Send iTip replies with the correct identity (Bug #1507). [jan] Name downloaded ZIP file with all attachments after the message subject. [jan] Allow to accept invitations and add them to the calendar at once. [jan] Show iTip attachments (event invitations) inline (Request #2032). [mms] Fix display of localized INBOX name in folder list/sidebar (Bug #2368). [mms] Fix display of linked attachments when the attachment filename contains characters that need to be escaped. [mms] Fix OR searches when user is hiding deleted messages. [mms] Save drafts so any images added via the HTML editor will correctly reappear when the message is resumed (Bug #1977). [mms] Allow HTML formatting to be retained when resuming a draft (Bug #2328). [mms] Work around broken c-client sort by arrival. Turns out to be more efficient anyway (Bug #2139). [jan] Add Bosnian translation (Vedran Ljubovic ). [mms] If user selects a non-default sentmail folder on the compose screen, make sure this is saved through any intervening spelling check (Bug #2093). [mms] Ensure that no maintenance tasks may be skipped (Bug #1926). [mas] Protect against special characters at the beginning of a line when using aspell. (Bug #2060) [cjh] Generate only one Select All checkbox on search results listings spanning multiple mailboxes (Bug #1991). [jan] Block embedded images if viewing HTML messages in a popup. [cjh] Don't lose incomplete addresses after expansion is attempted. (Bug #1900). [jan] Fix background expansion of non-ascii names in compose view (Bug #1575). [jan] Allow non-ascii searches (requires Horde 3.0.5). [mms] Don't pass server information via login page if not being altered by the user. (Bug #1883) [mms] Add separate confirmation page when deleting/emptying folders (Bug #783). [cjh] Allow sending blank searches to Turba even if the display_contact preference is false (Bug #1854). [mms] Encode attachment parameters with the same character set used in the base message (Bug #1591). [mms] Don't allow user to unsubscribe from INBOX. [mms] Don't alter header encodings when redirecting messages (Bug #1823). [mms] Fix charset issues with strip attachment message (Bug #1861). [cjh] Add missing binary.png for the TNEF MIME Viewer (Bug #1873). [jan] Localize all remaining INBOX strings in the interface. [mms] Fix drop down lists in folder preferences (Bug #1794). [jan] Fix compose links with non-ascii characters in email header links on Internet Explorer (Bug #1726). [mms] Ignore empty lines in config/header.txt (Bug #1770). [cjh] Don't trigger the left/right key message navigation if the user is holding down any modifier keys - let those bubble up to the browser (Bug #1763). [cjh] Only use a Refresh: header if we need to, and if the URL is under 160 characters, to prevent triggering browser bugs that cause hangs (Bug #1728). [cjh] Prevent IE from clearing compose window fields if the user presses ESC (Bug #1686). ------ v4.0.3 ------ [jan] Ignore quoted text if spellchecking with aspell (Bug #1673, kevin_myer@iu13.org). [cjh] Fix typo in attachment.php that caused a PHP warning (Xavier Montagutelli ). [mms] Correctly store all data from the compose screen when spell checking a message (Bug #1425). ---------- v4.0.3-RC1 ---------- [cjh] Validate outgoing email addresses before sending mail (Bug #1543). [mms] Added automatic detection of some mail server parameters to the test script. [mms] Fix Show/Hide Deleted links on search results screen (Bug #1587). [mms] Correctly process 'Report and Spam' and Blacklist/Whitelist additions from a search results mailbox view. [mms] Correctly sort the contents of the Virtual Folder. [mms] Fix viewing mailboxes in shared hierarchies in subscribe mode in the IMAP_Tree lists (Bug #1550). [jan] Return to current folder after emptying the trash folder (Bug #1563). [mms] Display the attachment expiration date when sending linked attachments. [mms] Fix editing virtual folders from the mailbox screen (Bug #1490). [cjh] Log logouts at the same level Horde does (Bug #1499). [jan] Don't lose session if clicking on link after blacklisting or whitelisting addresses (Bug #1417). [mms] Fix refresh of folder screen when viewing unsubscribed folders. [mms] Added optional 'delimiter' parameter to servers.php to aid login times for certain IMAP servers (selsky@columbia.edu, Bug #1485). [mms] Don't link emails in HTML message compositions (Bug #1472). [mms] Make sure we can create thumbnails/convert images before prompting user. [mms] Ensure multipart/related and multipart/alternative messages can be viewed if not viewable inline or if they contain only one part; multipart/related parts are now viewed with their correct charset (Bug #1433). [mms] Fix display of IMAP hierarchies in the folder view (Bug #1403). [jan] Fix viewing of multipart S/MIME or PGP signed messages (Bug #1393). [jan] Mark sent-mail checkbox when changing the sent-mail folder in the compose screen. [mms] Be smarter about we we consider to be downloadable/forwardable. Make sure text isn't both forwarded and attached in a forward message. [jan] Fix success screen after redirecting a message (Bug #1374). [jan] Fix "undefined index" warning (Bug #1367). ------ v4.0.2 ------ [mms] Don't wrap flowed text in print view (Bug #1318). [jan] Don't append trailer text twice if sending a message resumed from a draft (Bug #1306). [mms] Fix display of attachment names when forwarding messages (Bug #1300). ---------- v4.0.2-RC1 ---------- [mms] Decode the contents of preview messages. [mms] Fix reload of underlying window after entering PGP or S/MIME passphrase (Bug #1145). [cjh] Fix recompose recovery of messages written before a session timeout (Bug #1209). [mms] Don't escape 'From' at the beginning of the line in text messages. [mms] Fix 'smtphost' and 'smtpport' configuration parameters. [jan] Add batchCompose API method. [mms] Fix a (very rare) situation where a base64 encoded message is not decoded correctly in forwards/replies (Bug #1077). [mms] Fix forwarding as a digest from search folders (Bug #1263). [cjh] Fix PHP notice after forwarding a message (Bug #1283). [mms] Show, but don't activate current folder in "Move/Copy To" folder list (Bug #1240). [mms] Make sure we show container folders in the search screen folder list. [mms] Don't show address book save link for PGP and S/MIME keys if no default address book is configured (Bug #1144). [mms] Require virtual folders to have a label (Bug #1160). [jan] Speed up mailbox loading by caching processed email addresses. [jan] Fix new mail notification popups in mailbox views (Bug #876). [jan] Fix custom_login.php example script. [cjh] Don't insert entries for emails that already exist when gathering addresses from outgoing emails (Bug #1054). [jan] Fix wrapping of header in mailbox view with IE (Bug #1110). ------ v4.0.1 ------ [cjh] Fix columns running in to each other with Safari/KHTML in the mailbox view (requires Horde 3.0.1) (Bug #1026). [mms] Allow signed messages sent via multipart/encrypted to be displayed on non S/MIME enabled installations (Bug #1037). [cjh] Fix for login_compose when IMP does not provide authentication (Bug #892). ---- v4.0 ---- [mms] Messages sent in HTML format no longer link email addresses to non-existant javascript calls. [jan] Use short, indented folder names in search form. [jan] Return to correct mailbox page when clicking "Back to" link in threaded view. [jan] Fix sorting of folder names in summary block (Bug #987). [mms] Determine the default IMAP delimiter according to RFC 3501. [mms] Added 'smtpport' parameter to server configuration (bergonz@labs.it). [jan] Correctly wrap quoted headers in message replies (Bug #962). [jan] Show buttons on "message sent" screen as menu again. -------- v4.0-RC3 -------- [jan] Fix link generation in HTML composer (Bug #941). [cjh] Always honor the login_compose action (Bug #892). [cjh] Save messages with a "message/rfc822" mime type (Bug #922). [mms] Don't require to configure an e-mail address if using a spam hook. [mms] Fix expansion of e-mail addresses (Bug #889). [mms] Fix display of user-defined headers if the message contains more than one of those headers (Bug #912). [jan] Set one global date format in Horde's preferences (Bug #788). [jan] Fix some javascript errors with IE 5.0. -------- v4.0-RC2 -------- [mms] Allow more than one recipient for encrypted messages; store encrypted messages locally using the local user's encryption (Bug #865). [mms] Fix various S/MIME issues and update the code to more closely match the look and feel of the PGP code. [jan] Fix automatic spell checking on send, cutting off parts of the message (Bugs #227, #259). -------- v4.0-RC1 -------- [jan] Fix HTML message editor in IE (Bugs #692, #793). [cjh] Search only the preferred address books for senders allowed to send HTML messages with images. [jan] Disable Kolab servers if Kolab has been disabled globally. [mms] Allow all subscribed folders to be viewed in the IMP menu tree interface. [mms] Only scan for emoticons in the body of text MIME parts. [mms] Fix message saving and attachment ZIP file generation. [mms] Allow the spam reporting system to bounce a message to an email address. [mms] Move spam handling to a separate class. --------- v4.0-BETA --------- [mms] Added virtual folder support. [mms] Allow all messages in an entire folder to be marked as seen or unseen. [mms] Allow attaching files from local VFS filesystems. [mms] Allow quick and easy access to unsubscribed folders on the search screen. [jan] Add quota driver for Mercury/32 servers (Frank Lupo ). [mms] Add support for Message Disposition Notifications (RFC 2298). [jan] Dynamically add new attachment fields if all are used. [jan] Add special black-on-white styles for message printing. [mms] Added preference that allows user to strip attachment information for messages saved in the sent-mail folder after composing a message. [mms] Improve message threading display in the mailbox screen. [jan] Add Persian (Western) translation (Vahid Ghafarpour ). [cjh] Allow quoted parts of messages to get hidden. [mms] Add messages thread view. [jan] Allow navigation through mailbox pages with left and right keys. [jan] Allow purging of multiple folders in the folders view (Todd Merritt ). [jan] Allow turning off of the links to alternative parts in multipart/alternative messages. [cjh] Hide unnecessary UI elements when there's only one address book (Francois Marier ). [cjh] Trap adding the same address multiple times in the Contacts window (Francois Marier ). [cjh] Make the header checkbox on the folders page toggle selection of all folders (Francois Marier ). [cjh] Add the basis for sending attachments as links to hosted files (Andrew Coleman ). [cjh] INBOX is now localized for display. [jan] Show warning when compose or passphrase popups are blocked by the browser. [mms] Allow which headers to view by default to be defined for each identity (Vijay Mahrra ). [jan] Add mailbox management for supported servers like Cyrus. [cjh] Add option for reporting email as not spam (Liam Hoekenga ). [jon] Added a new preference that will cause a message to be spell checked before it is sent. [max] Add 'mail_domain' pref which overrides the server's maildomain setting. [mms] Added hooks for dynamic mailbox redirection and custom mailbox/folder icons on the folder page (Stuart Binge ). [mms] Use the MIME_Viewer system to generate 'previews' for composition attachments. ---------- v4.0-ALPHA ---------- [mms] Added addressbook lookup and expand names feature to the redirect screen. [jon] Added the ability to create new tasks from received email messages. [mms] Rewrote fetchmail to use subclasses/drivers to do all the work - this allows support for accessing more mail server types in the future. [mms] When renaming folders, all subfolders below the folder being rennamed are now renamed also. [mms] Handle creation/display of RFC 2646 format text messages (flowed text). [mms] Rewrite of IMP_Tree code - now uses cache results for all folder and mailbox updates instead of requerying the server for the folder tree. [jan] Add Indonesian language (Slamin ). [jan] Add check if the user has selected but not yet uploaded attachments. [mms] Configuration option to disable Mail logging. [jan] Add preference to automatically save all recipients in the default address book. [mms] Use NLS:: hostname->country lookup to show country-of-origin for e-mail messages on the message screen. [mms] Support for auto-BCC addresses during compose for each identity (Nicholas Sushkin ). [mms] Support multiple file uploads on an individual compose page. [mms] HTML composed messages with image links now have the images downloaded and sent inline with the message in a multipart/related part. [jan] Show graphical emoticons. [mms] For images that cannot be viewed directly by the browser, IMP can automatically convert to a format that can be viewed. [cjh] Log reply/forward/redirect actions and display these logs when viewing the messages. [cjh] IMP now supports a hordeauth setting in servers.php, a la Gollem and other applications (Vijay Mahrra ). [mms] Add on-demand generation of thumbnails for image attachments. [mms] Added 'Download All Attachments' link on message page to allow all attachments to be downloaded in a single zip file. [mms] Improved HTML to text conversion when replying/forwarding to a HTML message. [mms] Add 'tie to' ability to allow a specific identity to be explicitly tied to a message sent from a certain address. [mms] Maximum subject/from lengths, From: field link options, and mailbox time display formats are now user configurable preferences (Robert Ribnitz ). [jan] Add aliases to the user's identities to find messages sent to one of his identities but not directly to one of his email addresses. [mms] Preference to allow spam messages to be automatically deleted after reporting (Rudi Heitbaum ). [mms] Moved IMP authentication code to Auth_imp::. [mms] Added configuration options allowing admin to limit (per message) both the total size of attachments and the number of attachments. [mms] Added preference allowing user to choose where to start browsing in a mailbox when first opening the mailbox. [mms] The guts of the IMP filtering code has been removed and ported to 'ingo'. Thus, filtering is now handled via Horde API calls instead of internally. [mms] The IMP search page now handles NOT searches, as well as basic AND/OR searches via the IMAP_Search:: library. [cjh] Add shift-click selection/deselection of ranges of messages (Andrew Johnson ). [mms] Allow caching of folder list generation. [mms] Added IMP_IMAP:: class to handle IMAP/POP3 connections. [jan] Allow spam reporting from the mailbox view (Ahmed ). [jan] Add preference to store drafts marked unseen (Ahmed ). [cjh] The last_login preference is now entirely handled by Horde. [jan] Let the users select the message's charset while they are composing a message. [cjh] When a user's session times out while they are composing a message, give them a special login screen which displays the message and allows them to log in again to resume their message with all data intact. [cjh] Remove javascript refresh popups in the compose window. [mms] Allow display of uuencoded attachments. [cjh] Add flag-setting options on the message view (Dan Wilson ). [mms] Allow blocking of images in HTML messages by default (Amith Varghese ). [mms] Support for showing mail previews in javascript 'tooltips'. [mms] Added message/partial MIME_Viewer. [cjh] Add whitelist links to the mailbox view (Amith Varghese ). [jan] Make fetchmail on login a maintenance task (Nuno Loureiro ). [mms] Add VFS garbage collection for temporary attachment data. [mms] Add a default encryption preference for sending messages. [mms] Add 'Nuke Message' action to filters. [mms] Add quick search links to search the current mailbox. [mms] Scan messages for X-Priority and display results in the mailbox view (Florent AIDE ). [mms] Allow quicker access to large mailboxes on slower IMAP systems. [mms] Added multipart/appledouble MIME_Viewer. [jan] Add preference that lets users change the access control lists of their imap folders (Chris Hastie ). [mms] Split return receipt requests into 'delivered' and 'read' options (Ryan Malloy ). [mms] Implement fetchmail on login and fetchmail coloring to distinguish between remote servers (Nuno Loureiro ). [mms] User configurable attribution text for replies (Chris Hastie ). [mms] Added support for message/disposition-notification messages. [jan] Folder names in any encoding can now be created/read through PHP's multibyte support. [mms] The "Reply" link for list messages will always send a message to the original poster, never the list (Chris Hastie ). [mms] Don't show "Reply All" link if user is the only recipient. [mms] Added a multipart/report MIME_Viewer to make undelivered mail reports easier to read. [jan] Add Turkish translation (Genco Yilmaz ). [mms] Convert IMP_Folder:: into an OO-interface. [mms] Allow attachment descriptions to be altered (Cliff Green ). [mms] Set the local character set for all text/* composed messages. [mms] The full MIME_Contents:: object is now cached when viewing a message rather than the individual MIME_Parts. [jan] Add UTF-8 support. Any content with any charset can now be displayed with any translation. [cjh] The mail/compose method is now a full call, not a link. This means, aside from a bit less code duplication, that we now honor the compose_popup preference in $registry calls. [mms] Added hostname to information saved about user's last login. [mms] Added support for stripping attachments from messages. [mms] Better determination of MIME content-type for attachments when browser does not send good information (using MIME_Magic::). [mms] PGP messages are now rendered via the MIME embedded in the message. [mms] Move composition related functions to IMP_Compose::. [mms] Now, when reaching the end of the mailbox in the message screen, directly load the mailbox script instead of redirecting via a URL. [mms] Allow user to change disposition type of all attachments. [jan] Add a preference to display message previews in the mailbox view (Stephen Sherlock ). [cjh] Add a preference for whether or not to display the entire addressbook when first loading the contacts screen (Etienne Goyer ). [ejr] Add command line driver for quotas. [mms] Allow multiple messages to be forwarded as rfc822 parts from the mailbox screen. [jan] Add logfile driver for quotas (Tim Gorter ). [cjh] Add searching by Bcc header. [mir] Add hook option to filter mail fetched by the Accounts (lib/Fetchmail) feature. Example added in horde/config/hooks.php.dist [cjh] Migrate to the new hooks API, removing the last need for conf.php.dist (instead of conf.xml). [mac] Add S/MIME support. [avsm] Folders action bar only shows up at bottom if more than ten folders are displayed on the screen. [cjh] All hook functions that set preferences are now handled by the generic preferences hook system; see horde/config/hooks.php.dist. [mac] Don't modify the actual field name on auto-expand. [mms] Created an IMP_Mailbox:: class to deal with building mailbox information and, eventually, all message indexing. [mac] Quota display now handled by the IMP_Quota API. [mms] Can now filter by any header. [cjh] Clean up the filter_on_login code, so that it is _always_ run on login. [mac] Added an IMP specific ZIP MIME_Viewer. [cjh] Use new &Identity::singleton() method and application-specific driver implementations to load IMP's Identity_imp:: class. [mms] Moved IMP session creation functions to IMP_Session::. [mms] Added an IMP_Search:: class to handle mailbox searching. [mms] Message sending now handled by IMP::sendMessage(). [mms] Move text filtering to IMP:: class. [mms] Added an IMP_Filter:: class to handle all filtering activity. [mms] Spam reporting sends a message in message/rfc822 format. [mms] Allow the users PGP public key to be uploaded to a keyserver. [mms] The compose script makes sure to clean up all attachment files that are generated during a message composition. even if cancelled. [mms] Attachment disposition can now be set to either inline or attachment. [mms] Improved handling of attachment data. [mms] Added the multipart/related viewer. [mms] Moved the message index tracking mechanism in the message.php script to IMP_Message::. [cjh] Add an option (preference controlled) to use IE's designmode and send multipart/alternative messages. [jan] Use a seperate textarea field for blacklisted email addresses in the filters preference. [mms] Add an option to allow for header summaries to be inserted when replying to a message (Quinn Wilson ). [mms] Created an IMP_Headers:: class to deal with all header manipulation required in IMP. [mms] Added a generic multipart/* MIME_Viewer. [mms] Added a multipart/alternative MIME_Viewer. [mms] Moved all common functions dealing with displaying the content of mail messages to lib/Contents.php. [cjh] Add an option to see a confirmation that messages were succesfully sent. [cjh] Add option to delete fetched messages when using the fetchmail code. [mms] Added application/ms-tnef MIME_Viewer. [mms] Search for PGP public keys on a public keyserver for signed messages if no key found locally. [mms] Can now send messages with "X-Priority" set. [mms] Add option to search for PGP data in 'text/plain' messages. [mms] Add "Show All/Limited Headers" to message view. [jan] Add fetchmail feature (Nuno Loureiro ). [mms] Added MIME_Viewer to allow attached images to be viewed inline. [mms] Add link for "Reply to List" for mailing lists. [mms] Now recognize RFC 2369 headers (messages from mailing lists) and output the relevant information. [mms] Add message/rfc822 MIME_Viewer. [jon] Set the username and password parameters when SMTP authentication is requested. [mms] Handle the new behavior of MIME_Structure::parse(). [mms] Add OpenPGP functionality. [ejr] Add text/enriched MIME_Viewer. [cjh] If the server list is being used, users shouldn't be changing the folder prefix. [max] Add Brown IMP theme (Marco Obaid ) [cjh] Make it possible to call IMP::authenticate() with arguments coming from somewhere other than GET or POST vars. [jan] Re-enable to select no sent mail folder for an identity. [jan] Add method IMP::stripPreambleString(). [jan] Fix problems with sent mail folder maintenance not being executed. [cjh] Fix problems with the mailbox displayed after login if there is a folders prefix set. [cjh] Use the new PrefsUI class. [cjh] Revert to not storing the folder prefix as part of user preferences. [cjh] Fix problems with double Last Login: message and maintenance. [jon] Adapt to the new Horde::img() syntax. [cjh] Use the new Notification system. [jan] Remove the standard value for the language preference. The language to fall back to should be set Horde wide in lang.php instead. [jon] Honor the "save sent mail" checkbox on the compose screen. [jon] Print the language type in the entity. [jon] Add entity support. [jon] Add support to the mailbox and message views. [mms] Move the quote prefix character from conf.php to the preferences. [mms] Move the maintenace framework to Horde. ------ v3.2.8 ------ [jan] Close XSS when setting the parent frame's page title by javascript (cjh). [mms] Fix display of MIME parts less than 1K when local number format uses ',' as the decimal separator. [jan] Don't use trash folder on POP3 servers under certain circumstances (Bug #1373). [jan] Fix "Save as" link to save message sources (Bug #1233). ------ v3.2.7 ------ [mms] Determine the default IMAP delimiter according to RFC 3501. [mms] Fix the folders screen hanging if there was only one folder (Bug #504). [jan] Correctly cancel messages composition in all cases (Rich Bartell tags in the HTML MIME viewer. [jan] SECURITY: Remove scripts from obfuscated "on..." attributes in the HTML MIME viewer. ------ v3.2.5 ------ [jan] SECURITY: Close an XSS hole in the HTML viewer, a variation to the one reported in http://www.greymagic.com/security/advisories/gm005-mc/. [cjh] Fix escaped double quotes on some broken mail servers (Bug #292). [jan] Comment complete