This is a beta release for the next major version 1.7 of Roundcube webmail.
With this milestone we introduce a few breaking changes, some new features, and bring full support for PHP 8.4.
Some noteworthy changes are:
- Make
public_html/
mandatory as entry-point for HTTP daemons, protecting all installations better. - Improve support for OAuth2 (e.g. supporting OpenID Connect discovery URLs).
- A Mouse-over menu on the messages list with quick action icons.
- Advanced mail search syntax with more possibilities – you can now use e.g.
is:unread
to only match unread messages. The test file has a list of implemented keywords. - Message parts of content-type
text/markdown
are now rendered to HTML (if they are designated for showing). - Add a 'php' logging driver, which passes all log statements to PHP's
error_log
handler, allowing to unify all log output. - Requires PHP v8.1 or newer.
Breaking Changes
- Dropped support for PHP < 8.1.
- Removed support for MS SQL Server and Oracle.
- Make public_html/ entry-point mandatory, all static resources are served via static.php.
- Removed
apc
cache driver (replaced byapcu
cache driver). - Change
smtp_log
option default value tofalse
.
This is a beta release and we recommend to test it on a separate environment.
Migrate existing configs with either the installto.sh
or the update.sh
scripts.
And don't forget to backup your data before installing it!
Changelog
Here is the full changelog:
- Set minimum required PHP version to 8.1 (#9599)
- Update to jQuery 3.7.1
- Drop dependency on JsTimeZoneDetect (#8965)
- Added apcu cache driver (#9828)
- Removed apc cache driver
- Renamed composer.json.dist to composer.json (#9279)
- Make public_html/ entry-point mandatory, all static resources are served via static.php (#9294, #8851)
- Removed support for MS SQL Server and Oracle (#7854)
- Added more strict code quality/style validation
- Added text/markdown mail rendering (#8873)
- Store uploads metadata in a separate sql database table instead of a session (#8415)
- Mouse-over menu on messages list (#7141)
- Advanced mail search syntax with more possibilities (without UI) (#8502)
- Added an option for a default mail search scope (#9077, #7556)
- Added an option for default "Keep formatting" state, option can be hidden via
dont_override
(#8987, #9703) - Added option to define font list and font-size list for HTML editor - available_fonts/available_font_sizes (#5700)
- IMAP: Support for HAproxy protocol header in IMAP connections (#8625)
- Change 'smtp_log' option default value to False
- Add 'php' logging driver (#6138)
- Delete messages directly from Junk on folder purge if delete_junk is enabled (#8766)
- Hide information about quota, when there is no quota (#8994)
- Set timeout=30, connect_timeout=5, read_timeout=120 as defaults for HTTP client (#8865)
- Remove use of utf8_encode() and utf8_decode() functions deprecated in PHP 8.2
- Support PHP Zip extension and 7z in install-jsdeps.sh (#8935)
- Add identities management script - bin/identity.sh (#8887)
- Add skin information into the About dialog (#9441)
- Prefer 8bit over quoted-printable for HTML parts, when force_7bit is disabled (#8477)
- Convert images in HTML content pasted into HTML editor to
data:
URIs (and later to attachments) (#6938) - Add possibility to change ATTR_EMULATE_PREPARES via config file (#9213)
- Use draft settings (like DSN) on "Edit as new" (#9349)
- Add more detailed feedback on vCard import errors (#9591)
- Use new HTML5 parser available on PHP >= 8.4
- Clear "list is empty" message on loading a new list (#9006)
- Add
enable_autolink
option for HTML editor (#9818, #9762) - Rework/fix zoom and rotate of attached images (#9843, #7669)
- Installer: Show NOT OK if none of the database extensions is installed (#9594, #9604)
- Plugin API: Added message_delete hook (#9499)
- Plugin API: Added message_move hook (#9499)
- Mailvelope: Add a button to enable the extension for webmail domain (#9498)
- OAuth: Add support for SMTP without authentication (#9183)
- OAuth: Add support for OAuth/OpenIDC discovery (#8201)
- OAuth: Add support for invalidating the OAuth-session on logout (#8057)
- OAuth: Add support for OpenID Connect RP-Initiated Logout (#9109)
- OAuth: Add support for OpenID Connect Back-Channel Logout (#9110)
- OAuth: Add support for PKCE (#8757)
- OAuth: Add support for OAUTHBEARER (#9217)
- OAuth: Add
oauth_debug
option (#9217) - OAuth: Fix: missing config
oauth_provider_name
in rcmail_oauth's constructor (#9217) - OAuth: Fix Bearer authentication for Kinde (#9244)
- OAuth: Refactor: move display to the rcmail_oauth class and use
loginform_content
hook (#9217) - OAuth: Add a flag to the 'authenticate' hook arguments indicating SSO is in use
- Additional_Message_Headers: Added %u, %d and %l variables (#8746, #8732)
- ACL: Set default of 'acl_specials' option to ['anyone'] (#8911)
- Enigma: Support Kolab's Web Of Anti-Trust feature (#8626)
- Enigma: Add key icon to passphrase input (#9894)
- Managesieve: Support :encodeurl (RFC 5435) (#8917)
- Managesieve: Add List-ID to the list of headers for creating new sieve-filters (#8307)
- Managesieve: Support an array in managesieve_host option (#9447)
- Managesieve: Fix the frontend datetime picker not respecting the 12h format and apending a dangling 's' to the seconds (#9688)
- Managesieve: Add parsing for all PHP time formatters from
time_format
config to frontend the time picker (#9655) - Password: Add
ldap_samba_ad
driver (#8525) - Password: Allow LDAP access using LDAP URI and SASL binding (#8402)
- Password: Use Guzzle HTTP Client in the
pwned
driver - Password: Use Guzzle HTTP Client in the
directadmin
driver - Password: Use Guzzle HTTP Client in the
plesk
driver - Password: Use Guzzle HTTP Client in the
modoboa
driver - Password: Use Guzzle HTTP Client in the
domainfactory
driver - Password: Use Guzzle HTTP Client in the
cpanel
driver - Password: Check that a user email is part of password in the
zxcvbn
checker (#9404) - Virtuser_file: Support opensmtpd file format (#9898)
- Zipdownload: Change "Download..." menu label into "Export..." (#9713)
- Fix bug in handling rcmail::format_date()'s $convert argument (#9666)
- Fix use of Bootstrap's
box-sizing
inside a HTML message content (#9727) - Fix folders hierarchy when special folders are subfolders of INBOX, with no personal namespace prefix (#9452)
- Fix attachment name decoding when 'charset' parameter exists in the headers (#9376)
- Fix deprecated (in PHP 8.4) use of session_set_save_handler() (#9060)
- Fix potential HTTP protocol version mismatch (#8982)
- Fix "Assign to group" action state after creation of a first group (#9889)
- Fix bug where contacts search would fail if
contactlist_fields
contained vcard fields (#9850) - Fix bug where an mbox export file could include inconsistent message delimiters (#9879)