Releases: the-djmaze/snappymail
v2.36.1
I've released the login-gmail extension so that you can use OAuth2 for login.
Follow the instructions how you can set this up at
https://github.com/the-djmaze/snappymail/wiki/FAQ#gmail
The added "Have I Been Pwned" class can be used with the "change password" extension.
When enabled it disallows passphrases that are known in the Have I Been Pwned database.
Also a new extension is in development so that users can check if their email address is also pwned.
It is still a work in progress and to use it, you must have a key subscription.
https://github.com/the-djmaze/snappymail/tree/master/plugins/haveibeenpwned
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 and #1555
- Hide pagination when search result has no messages
- Prevent mbstring error before setup.php
- Prevent MessagesPerPage Infinity #1540
- Reseal CryptKey failed #1543
Full Changelog: v2.36.0...v2.36.1
Nextcloud
- Add an occ command to set up the login settings #1552
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.36.0
The most noticeable visual difference in this release are the added icons to the system folders:
Secondly, you can now choose the thread view algorithm which is supported by the IMAP server.
- REFS = strictly use the message References and In-Reply-To headers
- REFERENCES = loose use of the message References and In-Reply-To headers and some other parts
- ORDEREDSUBJECT = group messages based on identical subjects
And the biggest internal change is the handling of encrypted user data.
It now "seals" the CryptKey and on error (password change) it asks your old password.
This is a big improvement because now the "change password" extensions can also "reseal" the encrypted data and users don't loose the data for a better user experience.
It also opens the door for servers that use OAuth2 as login, as the data is not tied anymore to the login password.
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 by @spoooyders #1512
- 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
Full Changelog: v2.35.4...v2.36.0
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.4
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 JSONlowerLogin
- Update Portuguese by @ner00
Fixed
- Raise JS TypeEroor "toLowerCase" after update to 2.35.3 #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
Full Changelog: v2.35.3...v2.35.4
Nextcloud
- Changed stored password handling
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.3
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()
toError()
- 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
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
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
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
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).
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
Fixed
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
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
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
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
andthemes
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
Integrations
https://github.com/the-djmaze/snappymail/wiki/Installation-instructions#integrations
Full Changelog: v2.31.0...v2.32.0