snappymail/CHANGELOG.md
2023-12-04 02:03:57 +01:00

64 KiB
Raw Blame History

2.30.0 2023-12-04

Added

  • SnappyMail\SensitiveString class to secure passwords
  • Allow to disable all IMAP features through Admin -> Domain
  • Setting to open mails in a tab or new window #951
  • Fully support IMAP PREVIEW #1338
  • Disable "Mark message as read after", offer manual toggle #1289
  • A "Move to" button inside message view as an icon/button and in the drop down menu. #1295
  • Support for IMAP WITHIN
  • Support \noinferiors to disallow creating subfolders
  • A test due to Failed loading libs.min.js #358, #862, #890, #895, #1238, #1320

Changed

  • Split PHP 8 polyfills from include.php
  • Disable snappymail/v/0.0.0/static/.htaccess for now as many servers have issues with it
  • Merged all Domain disable_* settings into disabled_capabilities:[]
  • Prioritize LIST-EXTENDED over LSUB (LSUB deprecated in IMAP4rev2)
  • Removed unused ImapClient::IsSupported()
  • Removed obsolete $_ENV['SNAPPYMAIL_NEXTCLOUD']
  • Removed unused Plugin->replaceTemplate()
  • Removed openDropdownTrigger

Fixed

  • Move to button does not work #1328
  • Mark passwords as sensitive information #1343
  • Account sSmtpPassword wrong value
  • SCRAM sign-in failed #1245
  • Squire generates to many <div><br></div> #1339
  • Creation of dynamic property SnappyMail\Stream\ZipEntry::$compression is deprecated
  • json.after-* hooks didn't send $aResponse as recursive array
  • Sieve: Move to folder with trailing space does not work #1329
  • Squire: cantFocusEmptyTextNodes var is always undefined #1337
  • Squire: Remove redundant after replacing styles
  • Squire: Handle empty nodes in moveRangeBoundariesDownTree
  • Theme "Nextcloud V25+" can't be translated #1331

2.29.4 2023-11-21

Fixed

  • Contacts not work #1319

2.29.3 2023-11-21

Added

  • Docker Hub image #965 by @leojonathanoh

Changed

  • Sabre/VObject 4.5.4 and Sabre/Xml 4.0.4 #1311

Fixed

  • '#/mailbox/folder/mUID/search' uri/route handling #1301 by @SergeyMosin
  • "Remember me" doesn't work when browser is closed #1313
  • Blank email displayed when "Prefer HTML to plain text" is unchecked and the message is html only #1302
  • Parent folder of Sub folder not useable. #1008
  • Large detailed header don't display body #1284

Nextcloud

  • Improvements for Install / update issues #929 #929
  • Should use language as defined in cloud settings #1293 #1293

2.29.2 2023-11-14

Added

  • Show size of folders in folders list #1303 #1303

Fixed

  • Configuration failed when using special chars in MySQL password #1308 #1308
  • With email open, "delete" doesn't delete #1274 #1274
  • Fix threading view in Thunderbird (others?) by @tkasch #1304

2.29.1 2023-10-02

Fixed

  • Some small messages list bugs

2.29.0 2023-10-02

Added

  • Modern UI / Nextcloud Theme #629 by @hampoelz
  • "Add/Edit signature" label to PopupsIdentity.html by @SergeyMosin #1248
  • use calendar icon in message list for messages with '.ics' or 'text/calendar' attachments by @SergeyMosin #1248
  • Show unseen message count when the message list is threaded by @SergeyMosin #1248
  • in mobile mode hide folders(left) panel when a folder is clicked by @SergeyMosin #1248
  • spellcheck the subject when 'allowSpellcheck' setting is true by @SergeyMosin #1248
  • 'collapse_blockquotes', 'allow_spellcheck' and 'mail_list_grouped' to admin settings ('defaults' section) by @SergeyMosin #1248
  • Browser support for autocompleting TOTP code #1251

Changed

  • URL strip tracking for #1225
  • Color picker use color blind palette "Tableau 10" by Maureen Stone by default #1199
  • Draft code to improve mobile breakpoints #1150
  • address input: space character can trigger '_parseValue' if the email address looks complete by @SergeyMosin #1248
  • if applicable set '\answered' or '$forwarded' flag after a message is sent so the proper icon is shown in the message list view by @SergeyMosin #1248

Fixed

  • CHARSET is not valid in UTF8 mode #1230
  • Spam score is always "acceptable" #1228
  • Undefined constant PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT #1205
  • Fetch controller.abort(reason) handling #1220
  • "Request failed" on message move #1220
  • Unwrapped text nodes attached to squire._root by @SergeyMosin #1234
  • Extra wrapper div is added in Squire every time a Draft is open (or closed) after save. #1208
  • foreach() argument must be of type array|object #1237
  • <font> tag 'style' is lost in replies by @SergeyMosin #1248
  • unseen indicator is not shown in thread view when 'listGrouped' settings is false by @SergeyMosin #1248
  • TOTP plugin is dependent on ctype #1250

Nextcloud

  • iFrame mode: click on unified search result opens inner iFrame by @SergeyMosin #1248
  • set 'smremember' cookie if 'sign_me_auto' is set to 'DefaultOn' when using 'snappymail-autologin*', otherwise nextcloud users need to re-login when the browser is re-opened. by @SergeyMosin #1248
  • Improve UX of "Put in Calendar" option in plugin by @theronakpatel #1259

2.28.4 2023-07-10

Added

  • application.ini msg_default_action by @SergeyMosin #1204
  • application.ini view_show_next_message by @SergeyMosin #1204
  • application.ini view_images by @SergeyMosin #1204
  • nextcloud add ability to include custom php file in InstallStep migration by @SergeyMosin #1197
  • Support plugin for Squire editor #1192

Changed

  • only show 'Add "domain.tld" as an application for mailto links?' message after login (firefox shows the message on every reload otherwise). #1204
  • Convert getPdoAccessData() : array to a RainLoop\Pdo\Settings object instance
  • New bidi buttons to Squire editor by @rezaei92 #1200

Fixed

  • Undefined constant PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT #1205
  • 'reloadTime' function result is passed into 'setInterval' instead of the function by @SergeyMosin #1204
  • UNKNOWN-CTE Invalid data in MIME part #1186

2.28.3 2023-06-22

Added

  • Attachments in "new window" view #1166

Changed

  • Update Portuguese by @ner00
  • Update French by @hguilbert

Fixed

  • Some emails with inline CSS break the UI #1187
  • Remote.get() Promise broken by previous change #1185
  • Class "MailSo\Base\Exceptions\InvalidArgumentException" not found #1182
  • First account not showed in the right list (dropbox) #1180

2.28.2 2023-06-19

Added

  • Detailed error for "Cannot access the repository at the moment" #1164
  • Bidi in Squire editor #1158
  • Translate Squire UI
  • Nextcloud 27 compatibility by @LarsBel
  • JWT class for handling JSON Web Tokens

Changed

  • Update German by @cm-schl
  • Update French by @hguilbert
  • Update Polish by @tinola
  • Merge handling of local Account Settings. Found while investigating #1170
  • Image max-width now 100% instead of 90vw

Fixed

  • Cannot modify header information #929 (comment)
  • Admin Panel broken when admin_panel_host is set #1169
  • Invalid CSP report-uri
  • Prevent MessageList multiple request at the same time #1071
  • Error in Addressbook Sync #1179
  • base64_decode() second parameter must be true

2.28.1 2023-06-05

Changed

  • Optical issue with input fields for mail and folder search #1149
  • Update Chinese translation by @mayswind #1157
  • Update Polish translation by @tinola #1156

Fixed

  • Undefined SIG constants #1147

2.28.0 2023-05-30

Added

  • Threaded view make number orange when unread sub-messages #1028
  • Handle PHP pctnl messages
  • addEventListener('rl-view-model') missing for Settings #1013
  • CSS --btn-border-radius

Changed

  • Improved RTL languages support #1056
  • Composer text/attachments as tabs #1119
  • Filter dialog doesn't refer to folder names consistently #1111
  • TLS connection for MYSQL contact db #1078
  • Allow empty message body when there are attachments #1052
  • PHP inherit logger as Trait
  • Update Portuguese by @ner00 #1124
  • Update Traditional Chinese (Taiwan) by @chiyi4488 #1107
  • Update Russian by @konkere #1108
  • Update Italian by @cm-schl #1094
  • Update French by @hguilbert #1102
  • Update German by @cm-schl #1087

Fixed

  • Show messagelist timeout/abort error for #1071
  • DesktopNotifications setting not saved #1137
  • PHP Deprecation warning for $_openPipes #1141
  • Images size wrong #1134
  • Unable to preview body of encrypted mail in mailvelope reply-to #1130
  • Replace <button> in HTML message with innerHTML instead of remove #1125
  • Mailvelope failed #1126
  • Tabs labels row height
  • Selecting not yet existing filter throws error message instead of opening edit box #1104
  • JavaScript Squire node is null error
  • Config/Application.php: array_rand(): Argument #1 cannot be empty #1123
  • Pressing Enter in Add Filter dialog results in "Leave page?" prompt #1112
  • Issue with certain Amazon emails #1086
  • HTML font 8px and 10px issue #1082
  • Exception when executed on command line on the first-time #1085
  • Folders missing pagination #1070
  • Nextcloud WYSIWYG button style #1138
  • Nextcloud .btn-group > .btn layout
  • Nextcloud Bulleted items do not show the bullets in the preview window. #1117
  • Nextcloud Contacts integration #1083

2.27.3 2023-04-04

Added

  • Squire visualize some active buttons states
  • Hard coded string "Message body is empty" #1048
  • Split SPAM label in user.json for directory and action #1065
  • A solution for #1056 to support dates in different language/calendar
  • Log \nonexistent folder for #1008

Changed

  • Cleanup some enums to consts
  • Workaround Upgrade with Nextcloud stuck in Maintenance mode #1046
  • Use Actions()->decodeRawKey()
  • French language updated by @hguilbert #1045
  • Sorting in folders not working #1022
  • Allow saving draft with empty body #1052

Fixed

  • GnuPG decrypt failed
  • Clear folder link should be hidden if "dangerous actions" is not active #1037
  • 500 error generating preview with GD2 #1009
  • Text and Links Jumping While Writing #1004
  • Odd annoying behaviour when copy/ pasting anything into an email and then attempting to edit it. #1054
  • Check if $rImapLiteralStream is open resource and not closed
  • Save as eml to nextcloud not working anymore #1057
  • AuthError and Call to a member function ImapConnectAndLogin() on null #1060
  • Thread count missing/shown #1003

2.27.2 2023-03-22

Added

  • authentication with smtp freenet.de #1038

Changed

  • SASL always base64 by default

Fixed

  • Cache issue with index #1024

2.27.1 2023-03-21

Changed

  • Improved attachmentIcon glyph coloring
  • Better design for .accountPlace text #1025

Fixed

  • Reply is broken #1027
  • Endless loop at login - Cannot assign array to property MailSo\Imap\Folder::$MAILBOXID #1032

2.27.0 2023-03-20

Added

  • Unique attachments.zip filename #992
  • Select next email after (re)move current #968

Changed

  • Improved FolderCollection handling
  • MODSEQ requires 64-bit int
  • Update russian language by @Akrobs #994
  • Don't make font bigger when screen > 1400px
  • Put top menu "accountPlace" inside top-system-dropdown-id
  • Put attachment controls inside attachmentsPlace
  • Show message toolbar on screens > 1400px #970
  • Chinese updated by @mayswind #1011
  • Prevent folder/messages flags conflict by using the right name attributes for Folders
  • FolderInformation() use jsonSerialize()
  • Squire space handling on paste use \u00A0 instead of &nbsp; for #1004
  • Better line-height for QR code

Fixed

  • Composer src is null
  • Image in Signature disappears in Sent/Draft #932
  • Mail list is empty #998
  • Cache handling issues #1003
  • No message notification popup when installed in sub-directory #1007
  • ERROR: Undefined constant "MailSo\Log\Drivers\STDERR" #965
  • 'Location:' headers using proper '302 Found' header
  • Can't send email #1006
  • Attachment preview #1005
  • When decrypt message, subject was replaced empty

Removed

  • \MailSo\Imap\ImapClient::GetConnectedPort()

Nextcloud

  • CSS --panel-bg-clr was missing
  • SnappyMail Menu under Nextcloud top bar #1017

2.26.4 2023-02-24

Added

  • Add CSP frame-ancestors for #537

Changed

  • Reduce/simplify CSS footprint
  • Use the System/Browser font by default by @HeySora #988
  • Make layout fully responsive using matchMedia('(max-width: 799px)')
  • Move brotli and gzip compress option to application.ini
  • After page refreshes in background whilst editing a draft, the space bar stops working #860
  • Updated Portuguese by @ner00 #984
  • Updated French by @hguilbert #985

Fixed

  • unset border-box for message body #990
  • Unread email count badge shows -1 #989
  • unicode mailto: addresses not decoded
  • Unicode email/url address matching #955
  • Invalid Token if run in IFrame #537

Removed

  • rl.initData

2.26.3 2023-02-21

Added

  • Translate "Are you sure you want to exit?"
  • stderr as Logger

Changed

  • Moved rl.fetch and rl.fetchJSON to boot.js so that AppData can be fetched as JSON
  • Many AppData properties to JavaScript camelCase
  • Cleanup Identity handling
  • Merge GnuPG and OpenPGP.js passphrases

Fixed

  • Notification enum conflicts with window.Notification
  • language selector didn't show current language in green
  • Threads indicator got lost with new message cache handling
  • messagesBodiesDom never cached previous messages
  • Nextcloud File picker doesn't insert multiple links #981
  • Call to protected method RainLoop\Enumerations\UploadError::getUserMessage() #982
  • Issue with the top logo and text of a certain e-mail #953
  • Facebook logo missing from emails sent out by it #954

Removed

  • Unused Squire code

2.26.2 2023-02-17

Added

  • Remove CSS white-space from messages to prevent annoying side scrolling
  • Show error when trying to send empty message #974
  • max_sys_loadavg as setting #971

Changed

  • Speedup and improved cleanHtml() and cleanCSS() handling
  • Better handling of upload .eml files to a mailbox
  • Rename Folder Hash to ETag as it is the more obvious name
  • Moved AllowDraftAutosave option from Settings -> Security to Settings -> General -> Compose
  • SmtpClient->Connect() use $oSettings->Ehlo
  • Improved handling of <style> elements in messages
  • French updated by @hguilbert

Fixed

  • Remove SVG elements properly from messages #972
  • Sending large HTML messages slow/fail #962
  • Nextcloud login failed #969
  • DoMessageList() hash check was incorrect
  • "Move to folder" button overlays folder sidebar on mobile #961
  • Spanish translation SPAM and NOT SPAM strings are reversed #964
  • Can't open Thunderbird PGP keys from decrypted message #958
  • Can't close Sieve dialog #960

2.26.1 2023-02-14

Added

  • Option to allow <style> in messages (beta)
  • Message in new tab/window was missing BCC

Changed

  • Don't clone message for viewing, so that there is instant interaction with messagelist item
  • emailArrayToStringLineHelper() now filters addresses without email address
  • Cleanup EmailModel and better email address parsing and handling
  • Workaround "server connection error" #936
  • Cleanup AbstractViewPopup handling
  • Italian translation by @lota #948
  • Replace Element.fromHTML() with createElement()

Fixed

  • New subfolder not visible #937
  • OpenPGP decrypted attachments friendlySize not a function
  • Message @media print was broken due to new display:flex
  • addressparser() didn't handle groups properly
  • middleclick in messages list failed when messagesDom not yet initialized
  • Cannot open messages that have an email address without an @ in the From header #950
  • CSS don't display:flex when [hidden]
  • Default theme handling by @Niveshkrishna

2.26.0 2023-02-10

Added

  • Whitelist advanced SPF/DKIM/DMARC valid feature #938

Changed

  • \RainLoop\Providers\AddressBook\Utils functions param Contact changed to VCard

Fixed

  • Issue with themes and Chrome cache #188
  • Settings panel width due to display:flex #940
  • Not respecting default theme setting #941
  • Some files had 0755 instead of 0644
  • Some spacing between message "view images" buttons for #201
  • Whitelist failed when empty or when using : #938
  • Cosmetics of the external images whitelist menu #939
  • PdoAddressBook ORDER BY deleted DESC to prevent sync and export issues
  • Undefined variable $items in upgrade.php
  • qq.com not supporting literal-string in search #836

2.25.5 2023-02-09

Added

  • New dark themes by @TheCuteFoxxy #925
  • External images option 'Always when DKIM is valid' for #201
  • Image whitelist menu on message for #201

Changed

  • pt-PT translation by @ner00 #917 and #920
  • fr-FR translation by @hguilbert #919
  • Layout section rl-right now is display: flex and solves #928
  • Some Themes background to cover #918
  • Speedup cleanHtml() parser
  • Reduce memory usage on addressbook import

Fixed

  • Prevent loading loop between MessageList and FolderInformation requests
  • Admin -> Config layout
  • Inline images sometimes failed
  • Undefined index: cid #921
  • On upgrade prevent Apache access errors for #358
  • Import contacts as CSV is broken #931

Removed

  • Blockquote height calculator for #902

2.25.4 2023-02-06

Added

  • message maximum quoted text level for speed. #902
  • LoveDark Theme by @TheCuteFoxxy #913

Changed

  • Moved pluginEnable() to \SnappyMail\Repository::enablePackage()
  • Updrate French language by @hguilbert
  • Cleanup material-design checkbox
  • Some style change for settings panels
  • Some MailMessageView styling
  • Disabled blockquotes height calculation for #902
  • Enhance Add domain dialog #916

Fixed

  • Fixed arrows in thread view while scrolling #908
  • CSS btn-thin were too high
  • Whitelist to show images directly #201
  • MailSo\Base\Http::GetHost(): Return value must be of type string #910
  • Nextcloud undefined variable $sUser #915
  • Hopefull improved styling for Firefox mobile fixes
  • Scroll display error #912
  • Autofocus was triggered when view resized
  • Better solution for Settings Page is bigger than the Account Page #897

Removed

  • $bUrlEncode as it was always false

2.25.3 2023-02-03

Added

  • Make message collapse quotes optional #902

Changed

  • Improved loginErrorDelay to prevent timing attacks and default to 5 seconds
  • Moved message collapse quotes to HTML parser
  • Moved some application.ini settings to other sections
  • Moved source "/assets/*" to proper location in /snappymail/v/0.0.0/static/
  • Set checkMailInterval to 15 minutes by default (now that it is configurable)

Fixed

  • Prevent plugin property decrypt error #859
  • Index.html cache issue #891
  • Images whitelist regular expression failed #201
  • Undefined index: ShowImages #901
  • Chrome shows LSep boxes in certain emails #900
  • Don't remember OpenPGP/GnuPGP key passphrase when it fails #840

2.25.2 2023-02-02

Added

  • Refresh frequency of the mailboxes #486
  • Temporarily save password for private key during session #840
  • Upgrade from Rainloop, password not migrated #898
  • Whitelist to show images directly #201
  • HTML editor paste image makes it max 1024px width/height #262
  • SnappyMail\TAR::extractTo support the $files and $overwrite parameters

Changed

  • Issue with themes when Chrome crashes #188
  • /static/.htaccess as mentioned by @dbiczo in #895
  • Update nb-NO language by @master3395 #896
  • \RainLoop\Utils::SetCookie() to \SnappyMail\Cookies::set()
  • Merge \MailSo\Base\Utils::RecRmDir() and \MailSo\Base\Utils::RecTimeDirRemove()

Fixed

  • Two issues with images being delivered via ProxyExternal #887
  • Multiple accounts conflicts when using multiple tabs #892
  • Spaces in attached file names are not preserved #893
  • Prevent empty area scroll on body

Removed

  • Floating HTML text formatting menu on mobile #828
  • Unused AUTH_SPEC_LOGOUT_TOKEN_KEY and AUTH_SPEC_LOGOUT_CUSTOM_MSG_KEY

2.25.1 2023-01-30

Added

  • Support RFC 8689
  • Nextcloud move themes outside of app folder #875
  • Add check to unregister system addressbook by @akhil1508 #879

Changed

  • material-design checkbox use hidden input for accessibility
  • Always subscribe to new folder by default
  • Merge NoScript, NoCookie and BadBrowser pages in Index.html
  • Cleanup translations. Also see https://snappymail.eu/translate.php

Fixed

  • PHP < 8.1 ini_set() only accepts strings when declare(strict_types=1); is used
  • Nextcloud also fix settings on upgrade
  • Nextcloud workaround upgrade OPCache issue #880
  • SMTP error while using PHP mail() #884
  • Cannot create folder #885
  • Image stretching when image hasd max-width #869

2.25.0 2023-01-26

Changed

  • Right margin to folder search input wrapper by @codiflow #871
  • Almost all request params now use JavaScript camelCase instead of CamelCase
  • #rl-content to use flex for better layout control
  • Decode some Copernica link tracking
  • Cleanup some CSS and JS code
  • Better Sieve rainloop.user script handling
  • Improve MailSo\Imap\BodyStructure
  • Cleanup MIME part FileName handling

Fixed

  • CardDAV sync error - Request aborted #866
  • PDF not possible to be viewed in the browser #867
  • ZIP Files cannot be uploaded from Desktop to attachments (other files can be uploaded) #878
  • Mobile view issues with leftside menu
  • Default messageListItem border left color for dark mode
  • Nextcloud layout in ?admin
  • Nextcloud _htaccess to .htaccess failed

Removed

  • Some unused PHP functions

2.24.6 2023-01-18

Added

  • Preparations for RFC 8689
  • Add admin setting for the contacts suggestions limit
  • A button to clear folder search input field by @codiflow #847
  • Preparations for custom SMTP credentials handling for #859 #458 #431 #233

Changed

  • Display the time of emails, not just the size and date #843
  • Made thread number a bit wider #844
  • Improved contacts suggestions limit handling #849
  • 64-bit PHP was required #852
  • Update fr-FR translations by @dominiquefournier #854
  • Move createDomain & createDomainAlias buttons below table
  • Move some Nextcloud SnappyMailHelper code to new InstallStep
  • Cleanup messages cache handling
  • Improved visibility Admin Domain Test errors

Fixed

  • LiteSpeed does not disable compression although .htaccess says so #525 #855
  • "Move to folder" functionality displays in desktop view when on mobile #858
  • matchAnyRule() Return value must be of type bool, none returned
  • Unknown CSP directive 'strict-dynamic' in Safari 13.1.2
  • Wrong timeStyle issue in Safari 13.1.2
  • Language SETTINGS_LABELS got lost
  • Nextcloud failed loading app data when path didn't end with / #864
  • Workaround Nextcloud session_start issue #813

2.24.5 2023-01-12

Added

  • Support for search criterias ON, SENTON, SENTSINCE and SENTBEFORE
  • New 'forward as attachment' glyph
  • NC integration app metadata: add links to admin and dev docs by @p-bo #820
  • Clicking on messagelist grouped date/from searches on that date/from #815
  • Nextcloud Improved file picker layout #825

Changed

  • Move release.php to cli/release.php
  • Moved sort options "FROM" direct below "DATE" for better understanding
  • Added DAV path error to log for #822
  • Resolve layout issues by changing from fixed to relative #686
  • Cache handling of messagelist changed due to etag issues
  • Improve german and italian translation by @cm-schl #846

Fixed

  • Searching on Nextcloud search #787
  • Workaround another Nextcloud disallowed .htaccess #790
  • Compact display of folders in nextcloud by @makoehr #824
  • Admin -> Contacts PDO test failed when using different AddressBookInterface
  • KolabAddressBook errors
  • Forgot debug js/css setting change in Nextcloud
  • Typed property MailSo\Mail\MessageListParams::$sSearch must not be accessed before initialization
  • Unable to change font/text colour when composing message using Safari #826
  • auth_logging failed #489
  • Class "RainLoop\Actions\Notifications" not found #839

Removed

  • 'set-version' argument for release.php

2.24.4 2022-12-30

Added

  • Check PHP_INT_SIZE if SnappyMail runs on 64bit

Changed

  • A lot of MessageList sorting improvements #796
  • On upgrade also update plugins in Nextcloud due to many misunderstandings and prevent invalid open issues
  • Moved application.ini labs.use_app_debug_* to debug.*

Fixed

  • Dutch translation for confusing message (threads vs grouped)
  • Workaround Nextcloud disallowed .htaccess #790
  • Searching on Nextcloud search failed #787

2.24.3 2022-12-28

Changed

  • When sorting on FROM also sort on REVERSE DATE

Fixed

  • F5 and Ctrl-F5 reload logs out of Snappymail in Chrome. #800
  • Switching accounts does not work anymore with 2.24.2 #802

2.24.2 2022-12-27

Changed

  • Disable sorting when viewing message thread #445
  • Update Chinese translation by @mayswind #794
  • No need to call IMAP EXAMINE when current folder already SELECT
  • Thread view now has tree indentation

Fixed

  • Nextcloud failed on Integrity check #790
  • Deleting message fails with message "Cannot move message" on hMailServer #793
  • List messages per day feature is enabled by default and breaks sorting #796
  • Custom page login not working for first time due to smctoken security #798
  • Message list is always empty due to wrong implementation of RFC 8474 #799

2.24.1 2022-12-23

Changed

  • Intl.DateTimeFormat() into toLocaleString() for iOS < 14
  • Cleanup locale date/time handling
  • Make MessageList per day optional #737

Fixed

  • Typed property MailSo\Cache\Drivers\Redis::$sKeyPrefix must not be accessed before initialization #792
  • Attachments in mails in 2.24 not loading in reply/forward #789
  • Rollback #280 due to complications #280

2.24.0 2022-12-22

Added

  • Option to enable additional account unread messages count
  • Prevent godaddy click tracking
  • Dark theme use color-scheme: dark;
  • More imapsync.php CLI options and help

Changed

  • MessageList now grouped/split per day #737
  • Account switcher still shown when allow_additional_accounts is set to Off #280
  • PHP classes use typed properties
  • Speedup Contacts Suggestions handling
  • Check SMTP SIZE #779

Fixed

  • Handle multiple DKIM signatures authentication results
  • Reload admin extensions on update
  • SieveClient quoted string parsing failed
  • Invalid Attachments (PDF) #466
  • Email HTML images rendering issue #564
  • "Server message: No supported SASL mechanism found, remote server wants:" in hMailServer #780

Removed

  • Some unused plugin hooks to improve Action handling speed

2.23.1 2022-12-15

Changed

  • More JMAP RFC matching including role
  • Speedup fetch all Folders/mailboxes
  • Disable unused folder_list_limit
  • Merge MailSo\Mail\Folder into MailSo\Imap\Folder and speedup process
  • SnappyMail\Imap\Sync now matches folders based on JMAP role
  • Added the new imapsync.php command line script for #744
  • Added manual setting for 12/24h clock #760
  • Add options to mark the message I'm viewing as unread and return to the inbox #766

Fixed

  • Extension menu shows only some available extensions #778
  • New solution for #423 due to #774
  • Avatars extension error on smartphone #764
  • Don't fetch Unread count for main account
  • CSS .e-checkbox.material-design invisible on show/hide

2.23.0 2022-12-08

Added

  • Show the number of unread mails on all mail addresses/accounts #437
  • Show OpenSSL version in Admin => About

Changed

  • Redirect to login page instead of "invalid token" popup #752
  • Make all dialogs fit in mobile view
  • Changed some Plugin hooks for better handling:
    • json.action-pre-call => json.before-{actionname}
    • json.action-post-call => json.after-{actionname}
  • Cleaner accounts list in systemdropdown
  • Multiple imapConnect handling for new import mail feature #744

Fixed

  • Loosing HTML signature in account identity under settings #750
  • Plugin configuration did not load anymore when type was SELECTION by @cm-schl #753
  • Nextcloud Default theme shows gray text on gray background #754
  • Only run JSON hooks when $sAction is set #755
  • Unsupported SASL mechanism OAUTHBEARER #756 #758 #759
  • border-box issue with .buttonCompose

Removed

  • Deprecate \RainLoop\Account->Login() and \RainLoop\Account->Password()

2.22.7 2022-12-06

Changed

  • Scroll bar with the mobile version in "Advanced search" screen #712

Fixed

  • Undefined property: MailSo\Mail\FolderCollection::$capabilities
  • PHP 8.2 Creation of dynamic property is deprecated
  • Attempt to solve #745 in v2.22.6 failed and resulted in errors #746 and #748 #745 #746 #748
  • Admin domain test undefined matched domain should say email@example matched domain

2.22.6 2022-12-05

Changed

  • Narrow MessageList wraps star icon #737
  • Use UIDVALIDITY when HIGHESTMODSEQ not available, maybe solves #745
  • No need to generate 1000's of ID's for MessageListByRequestIndexOrUids()
  • Update Chinese translation by @mayswind

Fixed

  • PluginProperty DefaultValue contained array while it should not #741

Removed

  • IMAP SELECT/EXAMINE unset UNSEEN because IMAP4rev2 deprecated

2.22.5 2022-12-02

Added

  • Support plugin minified .min.js and .min.css
  • ZIP Download multiple emails #717

Changed

  • Replaced some data-bind="click: function(){} with object functions to prevent eval()
  • Improved plugins hash when there are changes

Fixed

  • Settings Themes style due to border-box change
  • "Remember me" failed due to v2.22.4 Session token change #719 #731

Removed

  • Vacation filter: Button to add recipients (+) #728

2.22.4 2022-11-28

Changed

  • Contacts dialog layout using flex
  • Session token is related to the user agent string #713
  • Better browser cache handling for avatars plugin #714
  • Force HTML editor when set as default when replying to message #355

Fixed

2.22.3 2022-11-25

Added

  • application.ini config logs.path and cache.path to improve custom data structure.

Changed

  • Improved cPanel integration #697
  • Update to OpenPGP.js v5.5.0

Fixed

  • drag & drop folder expansion #707
  • Save selected messages as .eml in Nextcloud failed #704

2.22.2 2022-11-24

Added

  • Support cPanel #697

2.22.1 2022-11-23

Added

  • AddressBookInterface::GetContactByEmail() to support sender image/avatar extension #115

Changed

  • All the attachment zone is not clickable, even if the cursor is a hand #691
  • Different approach for "update button duplicated in admin panel" #677
  • Better drag & drop solution for leftPanel

Fixed

  • The page does not change after batch deletion #684
  • Prevent domain uppercase issues found in #689
  • Login invalid response: VXNlcm5hbWU6CG #693

2.21.4 2022-11-22

Added

  • Added domain matcher test for #689
  • Download all Attachments of selected Emails #361

Changed

  • Log current shortcuts scope for #690
  • CSS everything to be box-sizing: border-box;
  • Make messageview a bit larger so that it is the same height as the messagelist
  • Cleanup and rearrange some fontastic glyphs
  • Also show From email address by default #683

Fixed

  • Contact.display() returns [object Object]
  • When left panel disabled and drag messages, show it
  • Issue with admin domain connection type settings selectbox #689
  • Mobile View on cellphones: automatic scrolling not working near the visual keyboard #686
  • Unable to separate runtime from installation #685

Removed

  • Removed inline parameter of checkbox and select components

2.21.3 2022-11-16

Added

  • Click on PGP KEY attachment opens "Import key" dialog

Changed

  • Increase visible reading area for small screens #672
  • Improved message spam score detailed view
  • Improved DAV connection logging

Fixed

  • Handling attachments MIME type / content-type
  • Message responsive resizing width/height of elements #678
  • Focus on textarea when creating a new plain text email #501
  • CardDav remove photos of my contacts when synchronizing #679

Removed

  • \MailSo\Mime\Enumerations\MimeType

Nextcloud

  • Use fontastic in Nextcloud Files selector dialog
  • Firefox < 98 dialogs #673

2.21.2 2022-11-15

Added

  • Allow browser Spellchecker #574
  • Decode MIME charset of .EML attachments #662

Changed

  • Increase message visible text area #672
  • When copy/paste image use the raw data instead of clipboard HTML #654
  • When application.ini debug.enable is true, also debug js and css
  • JavaScript rl.setWindowTitle() renamed to rl.setTitle()

Removed

  • Message toggle fullscreen button which was only in mobile view

Nextcloud

  • Workaround Nextcloud calendar crashes #622 #661
  • Added share public/internal file link #569

2.21.1 2022-11-13

Fixed

  • Crypt crashes when Sodium not installed #641 #657 #663 #664 #668 #669
  • Personalised favicon not working - default Snappymail favicon showing #665

Nextcloud

  • v23 ContentSecurityPolicy versions issue #666

2.21.0 2022-11-11

Added

  • Put messagelist top bar buttons also in dropdown
  • Allow setting additional Sec-Fetch rules, as discussed by #585
  • Light/Dark favicon.svg #643
  • Allow an account name/label #571

Changed

  • Moved ServiceRemoteAutoLogin to plugin/extension
  • Moved ServiceExternalSso to plugin/extension
  • Moved ServiceExternalLogin to plugin/extension
  • Renamed ManageSieveClient to SieveClient
  • New Net/Imap/Smtp/Sieve Settings object system which allows setting SSL options per domain and verify_certificate by default
  • Update plugins to use new Net/Imap/Smtp/Sieve Settings object
  • Removed message double-click to full screen #638

Fixed

  • ldap-identities-plugin by @cm-schl #647
  • OpenSSL v3 ciphers issue #641

Nextcloud

  • Style PopupsNextcloudFiles view
  • Link to internal files in composer

2.20.6 2022-11-08

Fixed

  • ?admin login failed #642
  • Resolve PHP 8.2 Creation of dynamic property is deprecated

2.20.5 2022-11-08

Nextcloud

  • Improved workaround for Nextcloud Content-Security-Policy bug Safari #631 Edge #633 Reported #35013

2.20.4 2022-11-07

Fixed

  • Nextcloud no-embed use iframe mode failed

Nextcloud

  • Workaround Nextcloud Content-Security-Policy bug Safari #631 Edge #633 Reported #35013

2.20.3 2022-11-07

Added

  • Throw decrypt errors #632

Changed

  • Better multiple WYSIWYG registration system (not finished)
  • Better handling of admin token cookie

Fixed

  • Cookie “name” has been rejected because it is already expired. #636
  • Content-Security-Policy 'strict-dynamic' was missing

Nextcloud

  • Better handling of Content-Security-Policy #631 #633
  • Nextcloud 23 Error Call to undefined method useStrictDynamic() #634
  • Use snappymail icon as favicon-mask.svg instead default nextcloud logo #635

2.20.2 2022-11-05

Added

  • Add more search operators (i.e. copy lots of Gmail ones) #625

Changed

  • Some CSS borders to var(--border-color)

Fixed

  • pgpDecrypt() using MailVelope the decrypt message was not green
  • Shift + F in search bar resulted in forwarding message #624

Nextcloud

  • auto login mechanism not working anymore #627

2.20.1 2022-11-04

Added

  • Added CSS --dialog-border-clr and --dialog-border-radius
  • Show lock (lock) glyph in messagelist for encrypted messages

Fixed

  • Decrypt failed when OpenPGP.js not loaded

Nextcloud

  • Now integrate with Nextcloud by default, but keep iframe option available
  • Better theme integration with Nextcloud
  • Use Nextcloud 18+ IEventDispatcher
  • Solve Nextcloud 25 CSS issues #620
  • PutinICS does is not working for all calendar events #622
  • Update readme by @cm-schl #617

2.20.0 2022-11-03

Added

  • Strip mailchimp tracking

Changed

  • Use some PHP typed properties
  • Move bootstrap @less variables to CSS var()
  • Improved theme styling

Fixed

  • CSS --dropdown-menu-background-color should be --dropdown-menu-bg-color

Nextcloud

  • Disable Nextcloud Impersonate check due to login/logout complications #561
  • Improved theme integration and be compatible with Breeze Dark

2.19.7 2022-11-02

Added

  • Make it clear that you are on the admin panel login screen
  • Force PHP opcache_invalidate due to upgrade error reports "Missing version directory"

Fixed

  • Switching user (impersonate plugin) keeps old Email logged in #561
  • PGP Decryption / Encryption Failures #600
  • Undefined constant "OCA\SnappyMail\Util\RAINLOOP_APP_LIBRARIES_PATH #601
  • Cannot access admin panel #602
  • Wont show my emails #604
  • Return type of MailSo\Base\StreamFilters\LineEndings::filter #610
  • Create .pgp directory was missing

Security

  • Logger leaked some passwords

2.19.6 2022-10-31

Added

  • Put sign and encrypt options in composer dropdown menu and simplify te two existing buttons with a glyph
  • Filter scripts UI let user understand which filter is active #590

Fixed

  • Method 'GetRequest' not found in \MailSo\Base\Http #585

Changed

  • Base Domain setup enhancements
  • Cleanup MailSo MailClient using __call()
  • Domain settings handling and store as JSON instead of ini
  • Some JavaScript changes
  • When try to login IMAP/SMTP/SIEVE but STARTTLS is required, force STARTTLS
  • Embed admin panel into Nextcloud (with autologin, no need for separate login)
  • Don't set default_domain in Nextcloud when already set

Removed

  • Nextcloud dark mode, it is incomplete

Deprecated

  • nothing

2.21.0 2022-11-11

Added

  • Put messagelist top bar buttons also in dropdown
  • Allow setting additional Sec-Fetch rules, as discussed by #585
  • Light/Dark favicon.svg #643
  • Allow an account name/label #571

Changed

  • Moved ServiceRemoteAutoLogin to plugin/extension
  • Moved ServiceExternalSso to plugin/extension
  • Moved ServiceExternalLogin to plugin/extension
  • Renamed ManageSieveClient to SieveClient
  • New Net/Imap/Smtp/Sieve Settings object system which allows setting SSL options per domain and verify_certificate by default
  • Update plugins to use new Net/Imap/Smtp/Sieve Settings object
  • Removed message double-click to full screen #638

Fixed

  • ldap-identities-plugin by @cm-schl #647
  • OpenSSL v3 ciphers issue #641

Nextcloud

  • Style PopupsNextcloudFiles view
  • Link to internal files in composer

2.20.6 2022-11-08

Fixed

  • ?admin login failed #642
  • Resolve PHP 8.2 Creation of dynamic property is deprecated

2.20.5 2022-11-08

Nextcloud

  • Improved workaround for Nextcloud Content-Security-Policy bug Safari #631 Edge #633 Reported #35013

2.20.4 2022-11-07

Fixed

  • Nextcloud no-embed use iframe mode failed

Nextcloud

  • Workaround Nextcloud Content-Security-Policy bug Safari #631 Edge #633 Reported #35013

2.20.3 2022-11-07

Added

  • Throw decrypt errors #632

Changed

  • Better multiple WYSIWYG registration system (not finished)
  • Better handling of admin token cookie

Fixed

  • Cookie “name” has been rejected because it is already expired. #636
  • Content-Security-Policy 'strict-dynamic' was missing

Nextcloud

  • Better handling of Content-Security-Policy #631 #633
  • Nextcloud 23 Error Call to undefined method useStrictDynamic() #634
  • Use snappymail icon as favicon-mask.svg instead default nextcloud logo #635

2.20.2 2022-11-05

Added

  • Add more search operators (i.e. copy lots of Gmail ones) #625

Changed

  • Some CSS borders to var(--border-color)

Fixed

  • pgpDecrypt() using MailVelope the decrypt message was not green
  • Shift + F in search bar resulted in forwarding message #624

Nextcloud

  • auto login mechanism not working anymore #627

2.20.1 2022-11-04

Added

  • Added CSS --dialog-border-clr and --dialog-border-radius
  • Show lock (lock) glyph in messagelist for encrypted messages

Fixed

  • Decrypt failed when OpenPGP.js not loaded

Nextcloud

  • Now integrate with Nextcloud by default, but keep iframe option available
  • Better theme integration with Nextcloud
  • Use Nextcloud 18+ IEventDispatcher
  • Solve Nextcloud 25 CSS issues #620
  • PutinICS does is not working for all calendar events #622
  • Update readme by @cm-schl #617

2.20.0 2022-11-03

Added

  • Strip mailchimp tracking

Changed

  • Use some PHP typed properties
  • Move bootstrap @less variables to CSS var()
  • Improved theme styling

Fixed

  • CSS --dropdown-menu-background-color should be --dropdown-menu-bg-color

Nextcloud

  • Disable Nextcloud Impersonate check due to login/logout complications #561
  • Improved theme integration and be compatible with Breeze Dark

2.19.7 2022-11-02

Added

  • Make it clear that you are on the admin panel login screen
  • Force PHP opcache_invalidate due to upgrade error reports "Missing version directory"

Fixed

  • Switching user (impersonate plugin) keeps old Email logged in #561
  • PGP Decryption / Encryption Failures #600
  • Undefined constant "OCA\SnappyMail\Util\RAINLOOP_APP_LIBRARIES_PATH #601
  • Cannot access admin panel #602
  • Wont show my emails #604
  • Return type of MailSo\Base\StreamFilters\LineEndings::filter #610
  • Create .pgp directory was missing

Security

  • Logger leaked some passwords

2.19.6 2022-10-31

Added

  • Put sign and encrypt options in composer dropdown menu and simplify te two existing buttons with a glyph
  • Filter scripts UI let user understand which filter is active #590

Fixed

  • Method 'GetRequest' not found in \MailSo\Base\Http #585

Changed

  • Base Domain setup enhancements
  • Cleanup MailSo MailClient using __call()
  • Domain settings handling and store as JSON instead of ini
  • Some JavaScript changes
  • When try to login IMAP/SMTP/SIEVE but STARTTLS is required, force STARTTLS
  • Embed admin panel into Nextcloud (with autologin, no need for separate login)
  • Don't set default_domain in Nextcloud when already set

Removed

  • Nextcloud dark mode, it is incomplete

Deprecated

  • nothing