Skip to content

v2.5.0

Latest

Choose a tag to compare

@Shadow243 Shadow243 released this 29 Oct 17:27
27a8de4

881 changes from 32 contributors (of which 12 are new contributors). 330 files were affected.

Main Changes

What's Changed

  • Correct undefined const DEFAULT_NO_PASSWORD_SAVE in Docker by @Shadow243 in #1243
  • Update docker image to latest version released v2.4.0 by @Shadow243 in #1248
  • Allow the execution of a presave draft handler, enabling third-party software integrating with Cypht to customize how a draft is stored by @mercihabam in #1247
  • [FIX]setup_database.php: Check if the required MySQL extensions are loaded by @Baraka24 in #1251
  • [FIX]hm-smtp.php: Initialize to avoid undefined variable warning by @Baraka24 in #1250
  • [FIX]Imap quota: fixing quota appears more than once by @Baraka24 in #1218
  • [FIX] Make server page responsive by @Bienvenumoringa in #1240
  • Fix reload_folder_list browser test by @indridieinarsson in #1253
  • [Fix]Extension check introduced for Docker builds by @goldenmean58 in #1258
  • [FIX] Make the send button enabled on compose page by @GedeonTS in #1246
  • Improve messages caching to ensure a message isn't fetched more than once when viewing its content by @mercihabam in #1252
  • Add linux/arm64 and linux/386 architectures building by @rodriguezny in #1261
  • Fixed AllInkl provider in Cypht V2 by @josaphatim in #1260
  • Add linux/arm/v7 and linux/arm/v6 building by @rodriguezny in #1262
  • Automate running local tests by @jonocodes in #1042
  • Fix phpunit command according to 1042 by @Shadow243 in #1263
  • Include js_modules files content in the final generated site.js by @mercihabam in #1264
  • Added code to raise exception on database errors by @josaphatim in #1257
  • Should be off by default | Address the controversial part in read rec… by @Shadow243 in #1181
  • [FIX]Blocklist:can not edit a block by @christer77 in #1079
  • [FIX]hm-smtp.php: Declare properties to avoid deprecated dynamic prop… by @Baraka24 in #1249
  • Fix executing handler sieve filters enabled message content when server is configured without sieve by @josaphatim in #1268
  • [FIX]apache errors in its log:Already registered module for compose re-attempted: load_contacts AND Already registered module for contacts re-attempted: process_import_contact by @christer77 in #1167
  • [FIX]hm-mime-message.php: Replace the mb_convert_encoding() function … by @Baraka24 in #1272
  • [FIX] output_modules.php : fixing Call to a member function get() on null by @Bienvenumoringa in #1276
  • [ENH] Implement Expose IMAP capabilities for sharing folders by @Shadow243 in #1270
  • [FIX] modules.php PHP Warning Undefined array key of redirect uri and… by @amaninyumu1 in #1254
  • Correct ajax_imap_accept_special_folders condition on quick_servers_setup by @Shadow243 in #1283
  • Disable duplicate redis extension from Github actions by @Shadow243 in #1284
  • Implement browser history API based navigation, preventing page reloads between routings by @mercihabam in #1266
  • [FIX]Imap quota: Fixing quota appears only once folders are expanded by @Baraka24 in #1275
  • Correct settings.py & tags.py selenium tests and uncomment it by @Shadow243 in #1193
  • Fix selenium load_settings_page test by @josaphatim in #1286
  • Correct sieve connection when using scheme by @Shadow243 in #1199
  • Correct imap buttons on servers page & trigger change sieve_mode_tls checkbox on edit server by @Shadow243 in #1289
  • [ENH] Added functionality to enable or disable Sieve Filters with toggle button by @amaninyumu1 in #1104
  • Fix some page handlers issues by @mercihabam in #1288
  • Edit Tag module readme by @Shadow243 in #1293
  • Correct pagination while displaying contacts by @Shadow243 in #1125
  • Indicate session-limited actions via a popover by @mercihabam in #1295
  • [FIX] Move email: Enable drag-and-drop feature to move messages betwe… by @GedeonTS in #1233
  • Change the frequency at which messages are prefetched by @mercihabam in #1297
  • [FIX]Fix deprecated warnings for preg_match() and mb_strtolower() in Webmail sieve filters by @Baraka24 in #1281
  • Fix sieve tls on Quickly add an account from popular E-mail providers by @Shadow243 in #1303
  • Allow the exclusion of certain JS libraries from being bundled when integrating Cypht with third-party software by @mercihabam in #1301
  • Remove the duplicate of cash.min.js and fix js libs exclusion by @mercihabam in #1305
  • Add a privacy settings section with the external images whitelist config by @mercihabam in #1299
  • Slight adjustements to the menu on mobile viewports to work properly with the routing system by @mercihabam in #1309
  • [FIX]Bulk-import accounts using yaml or csv template: Allow both text/csv and text/plain files to be parsed as CSV, accommodating Tiki’s MIME type handling by @Baraka24 in #1310
  • [FIX].env.example: DISABLE_ORIGIN_CHECK assigns twice by @Baraka24 in #1316
  • Removed forget/save actions by @josaphatim in #1311
  • [ENH]message list: Preview of message when viewing message list by @christer77 in #1241
  • [FIX]Displaying multiple messages with the same content for a given a… by @christer77 in #1106
  • Tweak the sidebar for a modern look and feel by @mercihabam in #1313
  • Fix css on privacy setting by @josaphatim in #1324
  • Fix the combined inbox not excluding content from folders removed by the user by @mercihabam in #1327
  • [ENH] Remove duplicate SMTP display names in dropdown by @DKing2222 in #1326
  • Sort combined messages list chronologically and adjust the tag data request and handler by @mercihabam in #1329
  • Fix smtp test server action by @josaphatim in #1343
  • Allow performing a search operation in all folders by @mercihabam in #1337
  • Use date as the default sorting field for all message lists by @mercihabam in #1345
  • Fix the display of the unread folder counters and re-adjust the layout to have the sidebar fixed on the view by @mercihabam in #1346
  • [UX]Renamed 'add_contact' to 'add_contact_responsive' to improve resp… by @amaninyumu1 in #1335
  • [FIX]DEFAULT_TEXT_ONLY value must be false by @Baraka24 in #1317
  • Enhance the sidebar's collapsible/expandable behavior by ensuring that only the minimum necessary content is shown and the layout remains intact when the sidebar is collapsed by @mercihabam in #1347
  • Prevent external links from trying to navigate internally by @mercihabam in #1352
  • [ENH]DragAndDrop: add drag and drop functionality on touchscreens by @GedeonTS in #1356
  • [DOC]Dev Page: Reviewing documentation links by @Baraka24 in #1357
  • make sieve data format automatic on connect by @Shadow243 in #1331
  • Fix the sieve filters page which is duplicating the modal content by @mercihabam in #1358
  • Reduce left menu height to make it appealing by @josaphatim in #1363
  • Fix accessing keys when server was not found by @josaphatim in #1364
  • Fixed tag display content by @Shadow243 in #1339
  • Revert "Fixed tag display content" by @mercihabam in #1365
  • Edit Contact: Cleaning up fields after editing the contact by @christer77 in #1294
  • Refactor the HTML Editor calling code to allow it to properly load on the compose page by @mercihabam in #1372
  • Workaround some incorrect data types by @mercihabam in #1373
  • Fix email preview after sending by @Yannick243 in #1374
  • Fix flags issue breaking email copied from tiki tracker to be read by @josaphatim in #1371
  • feat(other): update issue templates by @ulfgebhardt in #1379
  • Review and fix the implementation of the tags feature by @mercihabam in #1378
  • [REF] output_modules.php Remove the unnecessary Raw action displayed … by @amaninyumu1 in #1377
  • fix(other): selenium tests by @Shadow243 in #1382
  • [FIX]Cypht marking all emails as read by @christer77 in #1376
  • [FIX]: Fixed the duplicate close button for inline messages and ensured it works properly for non-inline messages by @GedeonTS in #1292
  • fix(cypht): fix database driver check where sqlite was forgotten by @indridieinarsson in #1384
  • feat(backend/frontend): allow searching in all special folders by @mercihabam in #1385
  • feat: Improved detection and protection against business email compromise (BEC) such as CEO fraud by @christer77 in #1269
  • fix(frontend): cut off content polluting the prev & next links and address the incompatibility between Cash and jQuery in the advanced search checkboxes generator by @mercihabam in #1387
  • Map new message identifiers to all existing entries (from the Tags repository & the client message cache storage) of the same message when it is moved by @mercihabam in #1388
  • fix(docker): replace php:8.1-fpm-alpine image by php:8.1-fpm-bookworm: alpine doesn't support GLOB_BRACE by @IrAlfred in #1360
  • refactor(other): promote JMAP & EWS in the UI by @Bienvenumoringa in #1277
  • refactor(other): fixed error all to undefined function get_sieve_host… by @Shadow243 in #1392
  • refactor(workflow): pr title validation update by @ulfgebhardt in #1389
  • refactor(backend): change the navigation modules load order in the final js bundle by @mercihabam in #1394
  • feat(frontend/backend): allow searching for messages in all subfolders of a given folder by @mercihabam in #1395
  • fix(frontend): fix the sidebar content alignment and reorganize misplaced content. by @mercihabam in #1397
  • fix(frontend/backend): feeds content display by @mercihabam in #1398
  • fix(frontend/backend): make various fixes by @mercihabam in #1399
  • fix(module/github): display messages list and content from the connected github account by @mercihabam in #1400
  • chore(frontend): focus the navigation on Cypht's elements when rendered on a webpage with external elements by @mercihabam in #1401
  • fix(frontend): insert the menu toggle button in the correct wrapper element within the HTML markup by @mercihabam in #1403
  • fix(cypht): error ocurred when attempting microsoft's email oauth2 setup by @christer77 in #1348
  • feat(frontend/backend): add support for Exchange Web Services (EWS) by @kroky in #1278
  • fix(other): jmap quota display by @Shadow243 in #1296
  • fix(frontend): some fixes to the message list display on mobile, the prev & next links, the content title, and the navigation by @mercihabam in #1406
  • fix(other): fix anchor going to new server section for IMAP/SMTP by @josaphatim in #1391
  • Add possibility to pass compose subject in url by @josaphatim in #1312
  • refactor(other): extract database extension checks into reusable function by @Baraka24 in #1390
  • fix(frontend/backend): restore the contacts autocompletion on the compose form feature in the working state and ensure the reply to a message action does not include css styles in the body by @mercihabam in #1410
  • fix(backend): ensure the load_cache() method is accessible via mailbox object returned by Hm_Mailbox by @mercihabam in #1412
  • fix(frontend): move from the legacy pagination links to a new component with enhanced user experience, and fix the pagination action, which previously responded with some latency by @mercihabam in #1413
  • refactor(frontend/backend): remove the remnants of the legacy page links by @mercihabam in #1414
  • feat(frontend/backend): paginate the unified view of message lists by @mercihabam in #1415
  • fix(frontend/backend): suppress php warnings for the combined message list view and correct the search event triggered on the search input for each mailbox by @mercihabam in #1418
  • fix(other): correcting links and typo by @Baraka24 in #1419
  • feat(other): add All Snoozed button and Icon to left menu by @DKing2222 in #1375
  • style(docker): use heredoc syntax for installphase in Dockerfile by @Lillecarl in #1421
  • fix(other): screen email: fix adding to trust contact while the email is blo… by @christer77 in #1265
  • fix(docker): missing ext-soap error on docker image building by @IrAlfred in #1423
  • fix(frontend/backend): duplicate sort filter for the combined sent folder, message forwarding, and flagged content display by @mercihabam in #1424
  • fix(frontend): the info page missing the servers statuses, search results not showing up & the navigation partially hiding the pagination component by @mercihabam in #1426
  • fix(other): display commited date instead of the pull request creation date by @Baraka24 in #1417
  • fix(other): subfolders not appearing in IMAP accounts with XEAMS mail server by @IrAlfred in #1427
  • fix(backend): prevent special characters from being converted into their corresponding HTML entities in a composed text message by @mercihabam in #1432
  • feat(other): nightly-image by @SKB-TECH in #1325
  • fix(other): daily-image by @JohnXLivingston in #1433
  • refactor(backend): db session locking to support exclusive mode by @Shadow243 in #1380
  • fix(frontend): cannot remove attachments when forwarding an email by @mercihabam in #1437
  • feat(frontend/backend): ensure that the sort fields include the sent and arrival date across all message lists by @mercihabam in #1438
  • fix(backend): search since a date did not respect global choice of sort date field by @kroky in #1440
  • refactor(frontend/backend): make requests in parallel, add a spinner while info is still being fetched by @bienvenuushindi in #1428
  • fix(backend): the sort field for combined pages should default to "arrival" by @mercihabam in #1441
  • fix(backend): attachments with PDF files (and probably other subtypes under the application type) by @mercihabam in #1442
  • refactor(frontend): improved notification messages system by @josaphatim in #1446
  • fix(backend): jmap config with smtp server by @Shadow243 in #1425
  • fix(frontend): stop executing compose page handlers when logged out by @josaphatim in #1448
  • feat(backend): add scheduled send functionality by @amaninyumu1 in #1091
  • fix(frontend/backend): address all blocking issues by @mercihabam in #1443
  • perf(backend): concurrently load messages for combined lists using child processes by @mercihabam in #1452
  • fix(backend): restrict the message_list worker access to CLI only by @mercihabam in #1453
  • fix(backend): add a few options to the messages_list worker allowing to define all required constants and have all required scripts imported by @mercihabam in #1457
  • feat(backend): add a preference to toggle between fetching combined pages concurrently using child processes or sequentially on the main process by @mercihabam in #1459
  • fix(other): fix null reference error when smtp account has no mailbox attached. by @indridieinarsson in #1451
  • fix(backend): the child processes setting should be enabled by default by @mercihabam in #1461
  • feat(backend): call function authed on false and server error by @amaninyumu1 in #1454
  • feat(backend): sieve manager packages to 1.0.9 by @Shadow243 in #1456
  • fix(backend): add database folder to docker build script by @indridieinarsson in #1464
  • fix(frontend): adjust button alignment on small screens by @amaninyumu1 in #1445
  • fix(backend): manually reconnect cache services after deserialize in message worker by @indridieinarsson in #1465
  • fix(frontend): get_list_block_sieve function not callable if sievefilters module is not enabled by @christer77 in #1435
  • fix(other): gmail messages not shown by @christer77 in #1409
  • docs(other): remove duplication for installation notes by @Baraka24 in #1473
  • fix(other): php deprecated: Hm_Repository::initRepo() by @christer77 in #1472
  • fix(other): correct environment variable usage in app.php by @Baraka24 in #1469
  • fix(other): php warning: undefined array key 'list_page' by @christer77 in #1436
  • fix(backend): use the request inputs directly for the search handler instead of retrieving the necessary keys from the session object, which sometimes loses data in integrated third-party software by @mercihabam in #1477
  • feat(other): add Junk button when Junk folder is configured for an IMAP Server by @Baraka24 in #1420
  • fix(backend): improve error handling in message-list.php sub-process by @indridieinarsson in #1470
  • fix(frontend): added missing autocomplete attributes by @josaphatim in #1485
  • fix(other): save settings displaying wrong message by @IrAlfred in #1447
  • fix(backend): delete cached imap responses for servers that don't support SORT extension by @indridieinarsson in #1480
  • fix(backend): update sieve manager to latest release by @Shadow243 in #1486
  • fix(backend): strip commas from attachment filenames generated from email subjects by @mercihabam in #1488
  • chore(backend): alphabetically reorder packages in composer.json by @mercihabam in #1489
  • feat(other): add HTML email sanitizer to remove external background images by @Baraka24 in #1491
  • fix(other): reviewing rename action on folders by @christer77 in #1493
  • fix(other): display a blank page for an email in a tracker for tiki-webmail by @IrAlfred in #1496
  • fix(unit): upgrade h11 to version 0.16.0 by @Shadow243 in #1503
  • fix(frontend): use Clearer User Feedback by @Baraka24 in #1506
  • fix(backend): improve alert message to include settings save reminder with HTML link by @Shadow243 in #1507
  • fix(other): reviewing delete action on folders by @christer77 in #1494
  • fix(backend): update league/commonmark to latest version released by @Shadow243 in #1508
  • fix(backend): address potential security exploits in request parameters by @mercihabam in #1514
  • fix(backend): sieve initialization by @kroky in #1518
  • fix(backend): allow deletion of auto-created profiles when server is already deleted by @Yannick243 in #1517
  • fix(frontend/backend): dynamic id on message_list page by @Shadow243 in #1520
  • refactor(backend): output the sent message uid and its imap server id when it has successfully saved by @mercihabam in #1521
  • fix(docker): improve container shutdown reliability and speed by @Revisto in #1511
  • fix(frontend): edit_filter actin not triggering modal by @Shadow243 in #1523
  • fix(backend): expand_section test failing by @Shadow243 in #1525
  • fix(backend): refactor selenium failing tests by @Shadow243 in #1526
  • fix(backend): error Sieve: Invalid config host by @Shadow243 in #1524
  • fix(frontend): web push notifications were not triggered anymore by @mercihabam in #1531
  • refactor(backend): expose more message header fields (message-id & in-reply-to) to the client by @mercihabam in #1529
  • fix(backend): fix release asset files to include dot files by @josaphatim in #1483
  • refactor(backend): update mailbox list title when accessing Sent menu by @Shadow243 in #1533
  • refactor(frontend): emit a 'message-loaded' event when the message view page setup is complete by @mercihabam in #1535
  • refactor(frontend/backend): performance optimization by @kroky in #1530
  • feat(backend): introduce DEBUG_LOG env var by @jonocodes in #1039
  • fix logo in dark mode theme by @Shadow243 in #1538
  • Fixed icons issues by @Shadow243 in #1537
  • Fixed buttons misalignments and msg errors by @Shadow243 in #1539
  • fix(backend): undefined variable id in hm-imap by @Shadow243 in #1547
  • refactor(backend): update selenium tests by @Shadow243 in #1534
  • fix(frontend/backend): prevent Sieve connection error when disabled in settings by @Shadow243 in #1490
  • fix(backend): good_logout selenium test by @Shadow243 in #1548
  • fix(docker): can't run with pgsql by @ljcbaby in #1542
  • fix(backend): comment out expand_section test to prepare a separate P… by @Shadow243 in #1550
  • refactor(frontend/backend): improve folder page by using default profile to auto-select server by @Shadow243 in #1549
  • fix(frontend): shortcut refresh issue by adding redirect after update by @Shadow243 in #1536
  • feat(frontend/backend): add snooze functionality toggle by @DKing2222 in #1528
  • fix(backend): bulk import file links by @Shadow243 in #1554
  • fix(backend): upgrade urllib3 to 2.5.0 by @Shadow243 in #1557
  • refactor(frontend): improve attachment download handler with filename by @Yannick243 in #1559
  • fix(backend): fix smtp/imap servers for fastmail by @josaphatim in #1560
  • fix(frontend/backend): correct delete message by @josaphatim in #1564
  • feat(backend): message redirect url sent_folder by @Shadow243 in #1566
  • fix(frontend): improve move/copy email interaction by @Shadow243 in #1562
  • fix(other): php warning: undefined array key 'x-profile-id' by @christer77 in #1484
  • feat(backend): snooze dropdown not displaying by @Shadow243 in #1568
  • fix(frontend): replace 'IMAP Server' label with 'Mail Account' to reflect multi-protocol support (IMAP, JMAP, EWS) by @Olivier-Kango in #1569
  • fix(frontend/backend): block sender and screen email (dislike email) not working by @christer77 in #1504
  • feat(docker): auto release image by tag by @ljcbaby in #1543
  • fix(frontend): remove MIME boundaries and headers from body by @Shadow243 in #1563
  • fix(frontend): make server status list responsive with loading indicators a… by @Shadow243 in #1573
  • refactor(frontend): update mobile navigation and styling for improved… by @Grandi0z in #1572
  • fix(docker): mapping log file to host: can start cypht container, but nginx exit by @SKB-TECH in #1575
  • fix(frontend): saved search navigating with null value by @Shadow243 in #1576
  • fix(frontend): unblock sender action, block domain action and edit behavior not working by @christer77 in #1571
  • fix(backend): duplicated name attribute causing mail deletion error i… by @Shadow243 in #1578
  • chore(other): update bacon-qr-code to use version 3+ by @camilevahviraki in #1579
  • refactor(backend): upgrade ZBateson\MailMimeParser dependency by @bienvenuushindi in #1589
  • feat(frontend/backend): add feature create default user profiles quickly by @christer77 in #1577
  • feat(frontend): add a way to search through settings by @josaphatim in #1583
  • fix(other): keep message identical while testing IMAP/SMTP server by @Baraka24 in #1584
  • fix(frontend): insert pagination after message_table and not before by @Shadow243 in #1587
  • fix(frontend): list the profiles whose number is greater than 0 in the block list by @christer77 in #1590
  • fix(frontend): management of space and responsiveness for list controls by @christer77 in #1592
  • fix(frontend): block list form col to full size by @Shadow243 in #1593
  • feat(backend): servers count on servers page by @Shadow243 in #1567
  • refactor(frontend): update mobile message view and styling for improved usability by @Grandi0z in #1574
  • feat(frontend/backend): add enbale collect addresses while sending a mail by @Shadow243 in #1588
  • fix(frontend): Prevent the duplication of footer buttons when reopening the modal by @christer77 in #1591
  • fix(backend): ajax_list_block_sieve request no longer returns the list of blocked addresses by @christer77 in #1597
  • style(frontend): changing loading page text label by @christer77 in #1598
  • fix(backend): test failing with latest updates by @Shadow243 in #1596
  • feat(frontend): introduce NProgress and Cypht custom spinner using Bootstrap5 by @Shadow243 in #1595
  • fix(frontend): navigation event to be applied in cypht only by @Shadow243 in #1599
  • fix(frontend): fully display the name of the filter in edit field (filter name) by @christer77 in #1600
  • style(frontend): pgp settings:make public and private keys div clickable with cursor-pointer by @christer77 in #1602
  • fix(backend): ldap authentication issues by @IrAlfred in #1603
  • fix(frontend): sieve block domain: not send the server-id and reload page even if the request was not successful by @christer77 in #1605
  • feat(docker): add multi-platform daily builds by @SKB-TECH in #1608
  • fix(frontend): make profile_replyto optional by @Shadow243 in #1585
  • fix(backend): add .htaccess security rules, root redirect, and sample… by @Shadow243 in #1607
  • fix(backend): xdebug ini file location and remove COPY by @Shadow243 in #1609
  • feat(frontend): add bottom and top pagination controls to email list view by @Yannick243 in #1611
  • refactor(frontend): update message headers to use divs for improved layou… by @Grandi0z in #1612
  • feat(other): fix HTML email sanitizer to remove external background images by @Baraka24 in #1581
  • refactor(backend): improve error messages to be more usefull by @marcellintacite in #1610
  • fix(frontend): bring back missing 'prev' and 'next' links on the message page and restore interactivity of the move and copy message buttons by @mercihabam in #1613
  • fix(frontend): dynamically set logo based on theme in navigation bar by @Grandi0z in #1618
  • fix(frontend): information about the event no longer appears in tiki-webmail by @christer77 in #1615
  • fix(frontend): show meaningful message when email is already moved by @josaphatim in #1565
  • fix(frontend): improve performance when visiting a message from the list view by @mercihabam in #1619
  • fix(frontend): inaccurate unread count in browser title and missing subject as title when reading a message by @mercihabam in #1617
  • fix(frontend): remove implicit background message headers output by @Shadow243 in #1621
  • feat(docker): point docker-compose.yml to latest released docker image by @IrAlfred in #1625
  • fix(frontend): submenu display issue by @Shadow243 in #1616
  • fix(frontend): navigation not working on mobile by @Shadow243 in #1570
  • fix(frontend): send correct page to Hm_MessagesStore while refreshing… by @Shadow243 in #1626
  • fix(frontend): the read/unread action does not update the message list state, nor does opening a message update its read state by @mercihabam in #1628
  • refactor(backend): Remove paragonie/random_compat for PHP 7+ native support by @bienvenuushindi in #1629
  • fix(frontend): redesign edit draft button to make it more visible by @Shadow243 in #1586
  • refactor(backend): drop legacy versions and update dependenciesfor PHP 8.1+ support by @bienvenuushindi in #1630
  • fix(frontend): tweaks for the mobile version by @pom2ter in #1636
  • fix(frontend): unflagged and flagged links on message page by @Shadow243 in #1627
  • fix(frontend): js selectors-related regressions by @mercihabam in #1634
  • fix(frontend): ensure background message list refresh requests use the current list_page query by @mercihabam in #1633
  • fix(frontend): ensure that the move/copy popup is closable when clicking outside by @mercihabam in #1639
  • refactor(frontend): update edit draft button layout for improved responsiveness by @Grandi0z in #1641
  • refactor(frontend): update IMAP envelope display to use flexbox layout by @Grandi0z in #1640
  • refactor(frontend): update header layout in github_parse_headers function for improved responsiveness by @Grandi0z in #1637
  • fix(docker): fix MariaDB healthcheck auth warnings and remove obsolete version attribute by @IrAlfred in #1632
  • fix(frontend): ensure that selected emails persist after periodic message list refresh, fixing misbehavior of copy/move actions by @mercihabam in #1643
  • fix(frontend): restore move/copy actions on combined lists by @mercihabam in #1644
  • fix(frontend/backend): avoid recursive, exhausting calls to get_folder_list_by_level; limit children count computation to folders with existing kids, and only when needed by @mercihabam in #1646
  • fix(frontend): ensure that new messages are inserted in the right position in the list ordered chronologically by @mercihabam in #1649
  • fix(frontend): update HTML structure for extra header buttons in mess… by @Shadow243 in #1650
  • fix(frontend): better spacing for sidebar and messages by @pom2ter in #1653
  • fix(frontend): adjust HTML structure for draft edit button alignment … by @Grandi0z in #1652
  • fix(backend): exclude_auto_bcc causes some unrelated messages to disappear from the inbox by @mercihabam in #1651
  • Update database.php - feat(backend): typo fix in documentation by @jeremiah in #1657
  • fix(frontend): more tweaks to the mobile version by @pom2ter in #1656
  • docs(other): improve how to contribute documentation by @IrAlfred in #1660
  • fix(frontend): resolve Cash.js SyntaxError by using .first() method by @Shadow243 in #1662
  • fix(backend): delete profile after imap or smtp server removed to avoid orphaned profiles by @Shadow243 in #1622
  • fix(frontend): enhance NUX development news display with responsive table by @Grandi0z in #1664
  • fix(frontend): redirect to the login screen when the session has expired or has been invalidated by @mercihabam in #1648
  • fix(frontend): redirect to next message or flagged list when unflagging current message of flagged list by @mercihabam in #1667
  • fix(frontend): change msg_actions to look like buttons by @pom2ter in #1642
  • refactor(frontend): update wordpress header layout for improved styling and responsiveness by @Grandi0z in #1645
  • refactor(frontend): enhance image display and white space handling in IMAP module by @Grandi0z in #1665
  • fix(frontend): restore sort operation on available rows for combined lists instead of fetching and displaying different content from server by @mercihabam in #1668
  • fix(backend): use a more useful error message when performing message action and no special folder is configured by @mercihabam in #1669
  • fix(frontend): message store fails to remove non-existent rows from combined lists on update by @mercihabam in #1666
  • fix(frontend): css adjustments for messages by @pom2ter in #1678
  • fix(frontend): keep track keep track of current page number when sorting, and display correct sort value when reloading by @mercihabam in #1670
  • fix(backend): sievefilters sieve_can_delete_folder handler registration for I… by @Shadow243 in #1674
  • fix(frontend/backend): remove junked messages from list after successful action and exclude irrelevant msg controls per list to prevent double actions by @mercihabam in #1676
  • fix(frontend): prevent overwrite of the messages list when it already has content, thus preserving row selection by @mercihabam in #1677
  • fix(frontend): avoid showing empty state while other lists are still loading by @mercihabam in #1675
  • fix(frontend): remove unnecessary horizontal scrollbar on message source page layout, clear console errors, and stop unnecessary background requests causing consistent logouts by @mercihabam in #1680
  • fix(unit): update expected output for content_start test to include i… by @Shadow243 in #1683
  • feat(unit): add GitHub Actions workflow for coverage reporting by @Shadow243 in #1682
  • fix(frontend): collapsed sidebar layout appears slightly broken by @mercihabam in #1687
  • fix(frontend): adjust move/copy dropdown content alignment and fix expand action not working on move action when copy dropdown was not opened beforehand by @mercihabam in #1684
  • fix(frontend): cached messages do not update flag state when flag/unflag is performed via the list by @mercihabam in #1686
  • fix(unit): replace symlink with file copy to resolve nginx permissions in Selenium setup by @Shadow243 in #1685
  • refactor(frontend): remove spinner display logic from message store an… by @Shadow243 in #1688
  • fix(other): add database connection checks and error handling by @IrAlfred in #1691
  • fix(unit): update loading indicator ID in wait condition for Sele… by @Shadow243 in #1692
  • fix(frontend): css adjustments to search and actions buttons by @pom2ter in #1694
  • fix(backend): fix LDAP address book and authentication issues by @IrAlfred in #1673
  • fix(frontend): enhance focus management for compose page based on email scenario by @Grandi0z in #1700
  • fix(frontend): css search filters fix by @pom2ter in #1702
  • fix(other): remove envelope-to address exclusion from reply-all logic by @IrAlfred in #1705
  • fix(frontend): empty state renders a few ms before responses are processed, and in some cases some responses remain unprocessed due to a cleared timeout by @mercihabam in #1698
  • fix(other): remove mistaken lock column from hm_user_session schema by @Baraka24 in #1707
  • fix(frontend/backend): advanced search not displaying any messages by @IrAlfred in #1693
  • fix(frontend): rename edit icon to bi-pencil-fill by @Shadow243 in #1712
  • fix(ui): update dropdown button styles for snooze and tags dropdowns by @Shadow243 in #1713
  • fix(frontend): prevent multiplication of "include subfolders" checkbox on advanced search page by @mercihabam in #1715
  • fix(frontend): prevent archiving already archived messages by @christer77 in #1623
  • fix(backend): fix EWS issues and enhance interoperability by @kambereBr in #1635
  • refactor(frontend): improve contact list display with tooltips and responsive styles by @Grandi0z in #1690
  • fix(other): display messages of type event calendar with ews by @Baraka24 in #1699
  • fix(frontend): css: email folder list adjustments by @pom2ter in #1718
  • fix(frontend): exclude external domains from internal navigation by @Shadow243 in #1720
  • fix(unit): selenium dom selection fixes by @kroky in #1721
  • fix(unit): simplify calendar title assertions and enhance server set… by @Shadow243 in #1724
  • feat(frontend): add Experimental badge to snooze setting label by @DKing2222 in #1722
  • feat(other): preserve user settings during password update by @IrAlfred in #1719
  • fix(frontend): tooltips appears behind content by @pom2ter in #1729
  • fix(backend): clear session cache for IMAP folders when enabled on load … by @Shadow243 in #1727
  • fix(module/core): add TLS 1.3 support to fix connections with modern … by @Danelif in #1732
  • refactor(frontend): move contact css to modules by @Shadow243 in #1734
  • fix(backend): exclude auto-bcc'd messages php-side, preventing inaccurate filter results from IMAP, which does not seem to perform negative exact header match by @mercihabam in #1733
  • fix(backend): undefined array key 'number_of_children' when expanding folders by @mercihabam in #1735
  • fix(frontend): mobile responsiveness ajustments by @pom2ter in #1731
  • fix(frontend): close other dropdowns when one is opened by @camilevahviraki in #1741
  • fix(other): infinite refresh loop after logout being on mailbox folder by @christer77 in #1742
  • fix(frontend): event description floating out of page on long texts and delete event button incorrectly triggered by @mercihabam in #1744
  • fix(frontend): searching and filtering in folder page does not reset the pagination counter by @mercihabam in #1745
  • fix(frontend/backend): reload folders state when adding/deleting/editing tags by @mercihabam in #1746
  • feat(frontend): add specific notice for scheduled messages by @christer77 in #1747
  • fix(frontend/backend): show active tags checked when displaying a message and ensure that unchecking the input, removes the tag from the message by @mercihabam in #1749
  • feat(other): improve feedback on user creation by @IrAlfred in #1748
  • fix(backend): ews mailbox fails to load when only one item is present by @mercihabam in #1751
  • fix(frontend): all tag folders showing the same copy of message list by @mercihabam in #1752
  • fix(frontend): last new row isn't appended to the bottom of the message list by @mercihabam in #1753
  • fix(frontend/backend): some servers do not support delivery status notification, so show a notice to users so that they don't expect any delivery receipt by @mercihabam in #1754
  • refactor(backend): harmonize the content of third-party version numbe… by @bienvenuushindi in #1723
  • fix(frontend): ensure that replace_cursor_position function is properly called in pageHandler, fixing missing new lines at the beginning of the textarea in reply and forward mode by @mercihabam in #1756
  • fix(frontend/backend): do not show a 'save settings' link in the notice shown when a server is added while the save page is disabled by @mercihabam in #1757
  • fix(frontend): prevent page handlers from executing when user is logged out, and logout users when ajax requests fail with an invalid session response by @mercihabam in #1758
  • fix(frontend): reduce size of sidebar icons by @pom2ter in #1759
  • fix: Change AOL SMTP port from 587 to 465 by @StevenMassaro in #1762

New Contributors

Full Changelog: v2.4.2...v2.5.0