snappymail/CHANGELOG.md
2024-09-16 20:51:26 +02:00

89 KiB
Raw Blame History

2.38.0 2024-09-16

Added

  • Remove tel: links when converting HTML to plain #1724
  • Convert HTML to Markdown instead of plain, by using Turndown #1604
  • Check HTMLInputElement.validity() for #1733

Changed

  • Use a modified Squire 2.3.2
  • cleanHtml use allowedTags instead of disallowedTags and improved CSS handling
  • Update Portuguese by @ner00

Fixed

  • mXSS exploit found by SonarSource CVE-2024-45800
  • Call to a member function Email() on null #1706
  • IMAP capabilities via IMAP Proxy #1725
  • Messages on page setting is not validated against 999 max #1733

2.37.3 2024-08-27

Added

  • Mark images with width=1 as tracking pixel
  • Show warning in Admin -> About when PHP runs in 32bit
  • Edit ACL rules #157
  • Show GnuPG version for #1560
  • Make sure only scalar values are allowed in $_ENV for #1560
  • Change minimum new mail check interval #1678
  • Sieve editor does not support "index" extension #1709

Changed

  • Improved domain autoconfig interaction
  • MS autodiscover priorities DNS over subdomain
  • Simplify sieve scripts list #1675
  • Handling of (token) errors due to #1706
  • Sabre/Xml to v4.0.5
  • Update Chinese by @Artoria2e5
  • Update French by @hguilbert

Fixed

  • Thread sorting visible after disabling the imap capability #1574
  • Creating new message impossible as long as a draft exists? #1710
  • InvalidToken error at login #1706

Nextcloud

  • Force Nextcloud personal language by default #1428

2.37.2 2024-08-13

Added

  • Validate Fetch JSON response

Fixed

  • PATH_INFO bug due to Office365 OAuth login
  • Prevent logout loop on error

Nextcloud

  • Failed loading due to Office365 OAuth2 attempt #1703

2.37.1 2024-08-12

Fixed

  • Gulp v5 broke the fonts

Nextcloud

  • Support v30

2.37.0 2024-08-12

Added

  • JavaScript event rl-vm-visible
  • Detailed error message on account switch failure for #1594
  • Workarounds for Microsoft OAuth2 (currently requires Apache AcceptPathInfo) #1645
  • Support "mark for deletion" #1657 by @smsoft-ru
  • Invoke "Update Identity" pop up right after login (when not initialized) #1689
  • Keyboard shortcut for "Swap default (background) color" #1690

Changed

  • Updated gulp to v5
  • Replaced vulnerable gulp-header with gulp-append-prepend
  • Removed abandoned vulnerable rollup-plugin-html
  • Align save button in admin security settings
  • Made registerProtocolHandler('mailto') optional by activating at Settings -> General
  • Improved InvalidToken handling for #1653
  • Cleanup localizations
  • Update French by @hguilbert
  • Update German by @tkasch
  • Update Polish by @tinola
  • Update Portuguese by @ner00

Fixed

  • prevent multiple afterShow() and afterHide() due to transitionend on multiple CSS properties
  • Attempt to read property "smimeSigned" on null
  • Refreshing mail list doesn't update current message #1654
  • Deletion of CACHE folder causing error #1660
  • Multiple line breaks are not displayed #1666
  • RainLoop\Exceptions\ClientException::__construct(): Argument #2 ($oPrevious) must be of type ?Throwable, string given #1686
  • SpamAssassin Division by zero #1694
  • Failed to parse RFC 2822 date '6 Jul 2024 16:42:09 +0200' #1694
  • Fix capabilities when THREAD is disabled #1698 by @akhil1508

Nextcloud

  • Failed loading due to incorrect app_path
  • Bugfix language detection
  • Allow multi-account in nc with oauth login #1699 by @akhil1508

2.36.4 2024-06-25

Added

  • Customize private key passphrase expiration interval #1545
  • AdvancedSearch support for filtering mails before a given date #1606 by @codiflow
  • Control valid spam and virus headers #1607
  • Remember S/MIME private Key without function #1611
  • Resize compose dialog
  • Magnetic theme #1637 by @TheCuteFoxxy

Changed

  • Improved signing messages by allowing to choose between the options
  • Improved language detection code
  • More detailed Decrypt errors
  • Update French by @hguilbert
  • Update Polish by @tinola
  • Update Portuguese by @ner00
  • Update Spanish by @huloza

Fixed

  • Default language error
  • Undefined $sEmail in DoAdminDomainMatch
  • Handling Autocrypt header failed on = #1608
  • Blank lines are inserted when editing draft #1609
  • Workaround Cyrus MAILBOXID bug (disable OBJECTID capability by default due to impact) #1640
  • Workaround HTML with multiple body elements or MIME with multiple text/html #1641

Nextcloud

  • OIDC stay logged in #1620 by @avinash-0007

2.36.3 2024-05-27

Changed

  • UserAuth prevent plugin errors (like the Nextcloud plugin did)

Fixed

  • Undefined variable $aTokenData #1567

2.36.2 2024-05-26

Added

  • "copy to" action in menu's for #1559
  • Log signal info for #1569
  • OpenPGP.js automatically import backup keys from server

Changed

  • Improved "remember me" cookie handling
  • Update Basque by @Thadah
  • Update Portuguese by @ner00

Fixed

  • "Account already exists" #1561
  • Properly escape path separator in tar.php file list regex #1562 by @sevmonster
  • Prevent mkdir() error #1565
  • SCRAM Exception when trying to log in to SMTP #1575
  • Error when redirected back to instance after Gmail OAuth #1580
  • Uncaught TypeError: hasPublicKeyForEmails(...).then is not a function #1589
  • Undefined variable $sFilename
  • GPG/PGP exec() return false handling

Nextcloud

  • OIDC login active again #1572 by @avinash-0007

2.36.1 2024-04-23

Added

  • Autoconfig detect through DNS SRV (RFC 6186 & 8314) and disable MX
  • Have I Been Pwned class to check breached passwords and email addresses
  • Handle RFC 5987 in Content-Disposition header
  • Ignore text/x-amp-html
  • Show SMTP error to user #1521
  • OAuth2 for login using gmail (and others)

Changed

  • logMask all AUTHENTICATE requests
  • ErrorTip use white-space: pre
  • Simplify LoginProcess handling
  • ES2020 everywhere (require Safari 13.1)
  • Modified Squire to be more in line with v2.2.8
  • CSS set min-width for .attachmentParent and .flagParent to line them up
  • cPanel use extension login-cpanel instead of login-remote
  • Improved login credentials handling
  • Speedup Knockout a bit
  • Update Belarusian by @spoooyders
  • Update Chinese by @mayswind
  • Update French by @hguilbert
  • Update Polish by @tinola
  • Update Portuguese by @ner00

Fixed

  • Content encoding and type detection in JavaScript could fail due to case-sensitivity.
  • Extensions set logger failed
  • GnuPG check open_basedir and if shell_exec is disabled #1385 #1496 #1555
  • Hide pagination when search result has no messages
  • Prevent mbstring error before setup.php
  • Prevent MessagesPerPage Infinity #1540
  • Reseal CryptKey failed #1543

Nextcloud

  • Add an occ command to set up the login settings #1552

2.36.0 2024-03-18

Added

  • Allow setting the supported THREAD algorithm
  • Icon to system folders
  • Remove remembered password after 15 minutes of inactivity #1142
  • Swap background and text color for unreadable text on dark background #1486
  • Generate TOTP code at ?Admin -> Security #1501
  • Button to change S/MIME private key passphrase #1505
  • Belarusian #1512 by @spoooyders
  • Log some domain idn_to_ascii issues #1513

Changed

  • On folder/mailbox rename, also rename all children instead of reloading all
  • Seal MainAccount CryptKey and on error ask old login passphrase to reseal key.
  • Moved cache drivers outside core into extensions
  • Sieve always allow fileinto INBOX #1510
  • Moved application.ini sieve_auth_plain_initial to per domain config
  • Languages use rfc5646, by using the shortest ISO 639 code by default
  • Update French by @hguilbert
  • Update Portuguese by @ner00

Fixed

  • On folder/mailbox rename, the old fullName must be removed from cache
  • On folder/mailbox rename, the checkable option was not renamed
  • Sort accounts drag & drop
  • S/MIME encrypted and opaque signed not visible #1450
  • Wrong last UID of thread #1507
  • Creation of dynamic property SnappyMail\DAV\Client::$HTTP #1509
  • "Download as ZIP" fails for messages #1514
  • SMTP "Authentication failed" when IMAP uses shortLogin and SMTP not #1517

2.35.4 2024-03-16

Added

  • \SnappyMail\IDN::toAscii()

Changed

  • OpenPGP.js to v5.11.1
  • punycode.js lowercase domain names
  • application.ini login_lowercase removed and now configurable per domain JSON lowerLogin
  • Update Portuguese by @ner00

Fixed

  • Raise JS TypeEroor "toLowerCase" after update #1491
  • Call to undefined function shell_exec #1496
  • Download attachments as ZIP doesn't work for PGP encrypted mail #1499
  • Importing or downloading a PGP public key attachment from a PGP encrypted message doesn't work #1500
  • VCard PHP Notice: Undefined index: ENCODING

Nextcloud

  • Changed stored password handling
  • Can't login from nextcloud with 2.35.3 bug Nextcloud #1490

2.35.3 2024-03-12

Added

  • GnuPG can be disabled
  • Missing strings for localization inside identity popup (Cryptography > S/MIME) #1458
  • Automatically verify PGP and S/MIME signed messages
  • TNEFDecoder for #1012
  • RTF to HTML converter for #1012
  • Polyfill for PHP ctype #1250

Changed

  • new Error() to Error()
  • Reduce KnockoutJS footprint by removing unused code
  • CSS reposition rainloopErrorTip location
  • Improved error handling on PGP and S/MIME decrypt
  • Improved OpenPGP.js import keys
  • Use Identity S/MIME key and certificate from server instead of POST
  • application.ini [webmail]language_admin to [admin_panel]language
  • application.ini [security]admin_panel_host to [admin_panel]host
  • application.ini [security]admin_panel_key to [admin_panel]key
  • Drop deprecated Domain::SetConfig()
  • Internationalized domain names are now handled as punycode
  • Cacher->Get() can now return NULL
  • Update French by @hguilbert
  • Update Polish by @tinola
  • Update Portuguese by @ner00

Fixed

  • Handling of Internationalized Domain Names in several areas
  • Decrypt error message
  • Stalwart ManageSieve Error 352 when getting Filters #1455
  • Nextcloud V25+ theme slightly broken #1463
  • PGP decryption fails with "Not armored text" #1462
  • AUTH_BASIC falling through as AUTH_BEARER; change AUTH_BEARER to a different value #1461
  • SetPassword expects \SnappyMail\SensitiveString
  • Crash on importing corrupt OpenPGP keys
  • Crash on old browsers instead of showing error
  • Ignore popups on logoutReload() #1467
  • Custom SASLMechanisms fail in IMAP when the connection is secure #1484 by @botsarenthuman

2.35.2 2024-02-27

Added

  • GnuPG error handling
  • Missing strings for localization inside identity popup (Cryptography > S/MIME) #1458

Changed

  • Update Portuguese by @ner00

Fixed

  • Drop support for gnupg PECL extension as it fails with "no passphrase" issues
  • Error 352 when getting Filters #1455

Nextcloud

  • SetPassword(): Argument #1 must be of type SensitiveString, string given #1456

2.35.1 2024-02-26

Added

  • Search functionality in Admin -> Config
  • Cache S/MIME passphrases when "remember" is checked
  • Import S/MIME certificate popup
  • pre-verify S/MIME opaque signed messages so we have a body to view
  • Sort PGP keys and S/MIME certificates on email address
  • Optionally use existing private key to generate S/MIME certificate

Changed

  • Better handling to detect which PGP or S/MIME sign/encrypt to use
  • Improved StorageType handling
  • Cleanup and improved Capa handling
  • OPEN_PGP should be OPENPGP as it is one word
  • Use get_debug_type() instead of gettype()
  • Require OpenSSL due to S/MIME
  • AbstractProvider::IsActive() is now an abstract method and must be defined in child class
  • Make better use of SnappyMail\SensitiveString
  • Update Polish translation by @tinola

Fixed

  • Verify S/MIME signatures got broken allong the way while implementing this
  • Generate S/MIME self-signed certificate failed to keep existing private key
  • MIME parser RegExp didn't escape boundary which caused issues
  • TypeError: b64Encode(...).match(...) is null on saving compose draft
  • Fix timestampToString() for future dates

2.35.0 2024-02-20

Added

  • S/MIME support #259

Changed

  • Disable IMAP METADATA by default (hardly used)
  • Update Polish translation by @tinola
  • Rename CSS .openpgp-control to .crypto-control
  • Renamed some methods in PHP

Fixed

  • When moving a folder/mailbox check for parent delimiter
  • Mask passphrase in the logs for PHP < 8.2
  • Added some missing translations
  • Sign messages using PGP
  • Check for CONDSTORE or QRESYNC to get the HIGHESTMODSEQ
  • Unable to login on certain IMAP server since 2.34.2 #1438

Nextcloud

2.34.2 2024-02-14

Fixed

  • Message was sent but not saved to sent items folder #1432
  • Login with scram failed #1433

2.34.1 2024-02-13

Added

  • Autocrypt support #342
  • Load the mailboxes/folders of all namespaces (other users, global, shared, etc.)
  • Load keys from server into OpenPGP.js #973
  • Import PGP Keys from remote key servers
  • Sort Inbox Folders with Unread Messages First #1427
  • Define JMAP FolderModel.myRights
  • Identity Management: add identity display name #1405
  • Identity Management: add per-identity "sent" folder #1404
  • Some support for JSON-LD / Structured Email #1422
  • Domain Autoconfig and Microsoft's autodiscover (and also as extension/plugin)
  • View MMS messages that are received via email #1294
  • Draft code for S/MIME #259

Changed

  • Many OpenPGP improvements #89
  • Allow CSP connect-src CORS for keys.openpgp.org to directly fetch PGP keys
  • Improved handling of visible folders
  • KnockoutJS Replace some ko.exportSymbol('') in favour of ko['']
  • KnockoutJS use Symbol for isObservableArray()
  • Simplify generating folderListVisible
  • Drop the bSearchSecretWords param from logger
  • Transparent background for text #1412
  • Enable OpenPGP.js by default at install
  • Added folder edit popup for improved IMAP ACL Support #157
  • Process all IMAP namespaces
  • Update Polish by @tinola
  • Update Portuguese by @ner00

Fixed

  • Make time_zone a select list due to PEBKAC
  • Workaround Outlook generated double spacing #1415
  • HTML Parser is not picking up the full Unsubscribe URL in the attached text file #1225
  • Contacts - it auto "Select All", after entry delete #1411
  • Message header parsing issue #1403
  • apple-touch-icon should not be transparent #1408
  • Creation of dynamic property is deprecated #1409
  • Ask/send readReceipt was broken
  • OpenPGP public key can not be removed anymore after importing private key of subkey #1384
  • KnockoutJS failed to output text '0'
  • JavaScript friendlySize() failed on 0
  • Workaround Dovecot PREAUTH [CAPABILITY (null)] issue
  • Workaround disabled ACL could cause "Disconnected: Too many invalid IMAP commands"

Nextcloud

  • Save multiple as .eml #1425
  • Disabled support for Nextcloud OpenID Connect #1420

2.33.0 2024-01-22

Added

  • Feature to use the SQLite AddressBook per login account instead of global (on by default).
  • Return all fetched messages headers in JSON.

Changed

  • Docker hub use Alpine linux 3.18.5 and PHP 8.2
  • Some InvalidArgumentException to the better suited ValueError
  • Removed some unused KnockoutJS code
  • KnockoutJS drop unused rateLimit method
  • Cleanup some data-bind=""
  • Drop the disabled KnockoutJS twoWayBindings
  • Drop support for KnockoutJS _ko_property_writers and for two-way binding they must be observables
  • Login form use method="POST" to prevent uri exposure when javascript fails
  • Merge code to generate MIME PGP parts and MIME Plain parts
  • SMTP sendRequestWithCheck for future support of RFC's
  • Cleanup mime header handling

Fixed

  • Sorting not supported since 2.32.0 #1373
  • FILE_ON_SAVING_ERROR is not defined #1379
  • Saving EML files with same subject result in only saving latest email #1381
  • Some Sieve parser issues
  • Handling of RainLoop Sieve script
  • Sieve rfc5429 RejectCommand and ErejectCommand
  • KnockoutJS title:value was removed, use attr:{title:value}
  • dataBaseUpgrade() always runs on sqlite and pgsql
  • Message was sent but not saved to sent items folder #1397
  • DKIM pass detection sometimes failed

2.32.0 2023-12-26

Added

  • Run full GetUids() in background when message_list_limit is set
  • MessageListThreadsMap as background task when message_list_limit is set
  • Properly set CACHEDIR.TAG
  • Sending group email to all contact addresses #1286 by @rezaei92

Changed

  • Default IMAP message_list_limit to 10000
  • DoMessageCopy() return toFolder hash/etag
  • Improved Squire WYSIWYG
  • Sort real attachments and inline attachments for #1360
  • Nextcloud Theme fixes and improvements #1363 by @hampoelz
  • Improve display of attachments #1361
  • Rename messageVisibility to messageVisible
  • All CSS font-size to % instead of px
  • Flip source code view of .eml attachments #1332

Fixed

  • Folders array_filter(): Argument 1 must be of type array, null given
  • At upgrade set static and themes folder to 0755
  • Preview tooltip shows "null" when PREVIEW capability is disabled

Nextcloud

  • Improved language handling #1362 by @avinash-0007
  • FilterLanguage had wrong parameter order
  • Use NextcloudV25+ theme by default

2.31.0 2023-12-08

Added

  • PHP Hook filter.language to allow remote language selection

Changed

  • Cleaner language detection
  • Get Squire in sync with v2.2.5 and some bugfixes
  • Update French by @Cwpute
  • Squire: drop support for iPod

Fixed

  • Call to undefined method FolderMyRights() #1344
  • NO Mailbox does not exist, or must be subscribed to") #1354
  • Flag indicators are added to wrong message #1347 by @SergeyMosin
  • Squire: issue when using the enter key in a reply window #1296
  • Squire: crash on cut/delete range

Nextcloud

  • Use language as defined in Nextcloud settings #1293
  • Plugin Call to undefined method RainLoop\Model\MainAccount::ImapConnectAndLoginHelper()
  • SnappyMail failed due to Nextcloud Symfony polyfill

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?) #1304 by @tkasch

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 #1248 by @SergeyMosin
  • 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 #1248 by @SergeyMosin
  • in mobile mode hide folders(left) panel when a folder is clicked #1248 by @SergeyMosin
  • spellcheck the subject when 'allowSpellcheck' setting is true #1248 by @SergeyMosin
  • 'collapse_blockquotes', 'allow_spellcheck' and 'mail_list_grouped' to admin settings ('defaults' section) #1248 by @SergeyMosin
  • 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 #1248 by @SergeyMosin
  • if applicable set '\answered' or '$forwarded' flag after a message is sent so the proper icon is shown in the message list view #1248 by @SergeyMosin

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 #1234 by @SergeyMosin
  • 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 #1248 by @SergeyMosin
  • unseen indicator is not shown in thread view when 'listGrouped' settings is false #1248 by @SergeyMosin
  • TOTP plugin is dependent on ctype #1250

Nextcloud

  • iFrame mode: click on unified search result opens inner iFrame #1248 by @SergeyMosin
  • 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 #1248 by @SergeyMosin
  • Improve UX of "Put in Calendar" option in plugin #1259 by @theronakpatel

2.28.4 2023-07-10

Added

  • application.ini msg_default_action #1204 by @SergeyMosin
  • application.ini view_show_next_message #1204 by @SergeyMosin
  • application.ini view_images #1204 by @SergeyMosin
  • nextcloud add ability to include custom php file in InstallStep migration #1197 by @SergeyMosin
  • 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 #1200 by @rezaei92

Fixed

  • Undefined constant PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT #1205
  • 'reloadTime' function result is passed into 'setInterval' instead of the function #1204 by @SergeyMosin
  • 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 #1157 by @mayswind
  • Update Polish translation #1156 by @tinola

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 #1124 by @ner00
  • Update Traditional Chinese (Taiwan) #1107 by @chiyi4488
  • Update Russian #1108 by @konkere
  • Update Italian #1094 by @cm-schl
  • Update French #1102 by @hguilbert
  • Update German #1087 by @cm-schl

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 #1045 by @hguilbert
  • 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 #994 by @Akrobs
  • 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 #1011 by @mayswind
  • 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 #988 by @HeySora
  • 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 #984 by @ner00
  • Updated French #985 by @hguilbert

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 #948 by @lota
  • 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 #925 by @TheCuteFoxxy
  • 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 #913 by @TheCuteFoxxy

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 #896 by @master3395
  • \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 #879 by @akhil1508

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 #871 by @codiflow
  • 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 #847 by @codiflow
  • 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 #854 by @dominiquefournier
  • 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 #820 by @p-bo
  • 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 #846 by @cm-schl

Fixed

  • Searching on Nextcloud search #787
  • Workaround another Nextcloud disallowed .htaccess #790
  • Compact display of folders in nextcloud #824 by @makoehr
  • 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 #794 by @mayswind
  • 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 #753 by @cm-schl
  • 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 #647 by @cm-schl
  • 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 #617 by @cm-schl

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 #647 by @cm-schl
  • 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 #617 by @cm-schl

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