Skip to content

Releases: the-djmaze/snappymail

v2.35.3

12 Mar 18:03
Compare
Choose a tag to compare

This release has many fixes, mostly to properly handle internationalized domain names.
Everything is now handled in punycode (just like in your browser address bar), and this also solves a bug in handling OpenPGP keys.

Thanks to @mathiasbynens for developing punycode.js, which i modified for SnappyMail.
It works like a charm.

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()
  • Custom SASLMechanisms fail in IMAP when the connection is secure #1484

Full Changelog: v2.35.2...v2.35.3

Nextcloud

https://apps.nextcloud.com/apps/snappymail

Docker Hub

https://github.com/the-djmaze/snappymail/wiki/Docker

Integrations

https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations

v2.35.2

27 Feb 22:06
Compare
Choose a tag to compare

Added

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

Changed

Fixed

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

Full Changelog: v2.35.0...v2.35.2

Nextcloud

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

https://apps.nextcloud.com/apps/snappymail

Docker Hub

https://github.com/the-djmaze/snappymail/wiki/Docker

Integrations

https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations

v2.35.1

27 Feb 11:05
Compare
Choose a tag to compare

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

Full Changelog: v2.35.0...v2.35.1

Nextcloud

https://apps.nextcloud.com/apps/snappymail

Docker Hub

https://github.com/the-djmaze/snappymail/wiki/Docker

Integrations

https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations

v2.35.0

20 Feb 17:58
Compare
Choose a tag to compare

S/MIME

Now you can sign, verify, encrypt and decrypt messages using S/MIME.
For that you need your private key and certificate in the identity.
And for convenience SnappyMail has a self-signed root certificate so you can easily create your own "self-signed" certificates.
There are still some things todo, but you can use it.
As a benefit, when you "verify" signed messages, SnappyMail will automatically add the found certificates in the smime storage (user settings -> security).

afbeelding

SnappyMail wil automatically detect which encrypt / sign engine to use.
If PGP can be used, it uses that, else S/MIME when possible.

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

  • Save as .eml

https://apps.nextcloud.com/apps/snappymail

Docker Hub

https://github.com/the-djmaze/snappymail/wiki/Docker

Integrations

https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations

Full Changelog: v2.34.2...v2.35.0

v2.34.2

14 Feb 17:55
Compare
Choose a tag to compare

Fixed

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

v2.34.0

This release has many improvements.
It now has a mailbox/folder popup window for editing and contains more info (including ACL when supported by server).
Secondly it now also loads the folders/mailboxes of other namespaces (like the shared folders of other users). See https://snappymail.eu/demo/ shared folder how it works.
And at installation, OpenPGP.js is enabled by default.
Also managing the PGP keys has improved, including Autocrypt and fetching them from the keyserver https://keys.openpgp.org

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
  • 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 #1417 #1426
  • 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

https://apps.nextcloud.com/apps/snappymail

Docker Hub

https://github.com/the-djmaze/snappymail/wiki/Docker

Integrations

https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations

Full Changelog: v2.33.0...v2.34.2

v2.33.0

22 Jan 14:14
Compare
Choose a tag to compare

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

Nextcloud

https://apps.nextcloud.com/apps/snappymail

Docker Hub

https://github.com/the-djmaze/snappymail/wiki/Docker

Integrations

https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations

Full Changelog: v2.32.0...v2.33.0

v2.32.0

26 Dec 16:44
Compare
Choose a tag to compare

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 by @rezaei92 #1286

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 by @hampoelz #1363
  • 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 by @avinash-0007 #1362
  • FilterLanguage had wrong parameter order
  • Use NextcloudV25+ theme by default

https://apps.nextcloud.com/apps/snappymail

Docker Hub

https://hub.docker.com/r/djmaze/snappymail/tags
docker pull djmaze/snappymail:latest
https://github.com/the-djmaze/snappymail/pkgs/container/snappymail
docker pull ghcr.io/the-djmaze/snappymail:latest

Read #44 and #965

Integrations

https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations

Full Changelog: v2.31.0...v2.32.0

v2.31.0

08 Dec 21:25
Compare
Choose a tag to compare

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

https://apps.nextcloud.com/apps/snappymail

Docker Hub

https://hub.docker.com/r/djmaze/snappymail/tags
docker pull djmaze/snappymail:latest
https://github.com/the-djmaze/snappymail/pkgs/container/snappymail
docker pull ghcr.io/the-djmaze/snappymail:latest

Read #44 and #965

Integrations

https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations

Full Changelog: v2.30.0...v2.31.0

v2.30.0

04 Dec 01:08
Compare
Choose a tag to compare

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
    You can run the test as /?/Test like at https://snappymail.eu/demo/?/Test

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

Nextcloud

https://apps.nextcloud.com/apps/snappymail

Docker Hub

https://hub.docker.com/r/djmaze/snappymail/tags
docker pull djmaze/snappymail:v2.30.0
https://github.com/the-djmaze/snappymail/pkgs/container/snappymail
docker pull ghcr.io/the-djmaze/snappymail:v2.30.0

Read #44 and #965

Integrations

https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations

Full Changelog: v2.29.4...v2.30.0

v2.29.4

21 Nov 22:57
Compare
Choose a tag to compare

Added

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
  • Contacts not work #1319

Nextcloud

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

https://apps.nextcloud.com/apps/snappymail

Docker Hub

https://hub.docker.com/r/djmaze/snappymail/tags
docker pull djmaze/snappymail:v2.29.4
https://github.com/the-djmaze/snappymail/pkgs/container/snappymail
docker pull ghcr.io/the-djmaze/snappymail:v2.29.4

Read #44 and #965

Integrations

https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations

Full Changelog: v2.29.2...v2.29.4