Gromox Versions Save

Groupware server backend for the grommunio Distribution, supporting MAPI/HTTP, RPC/HTTP, EWS, IMAP, POP3 protocols, PHP-MAPI bindings, and import from PST/OST/MSG/CDFV2/TNEF, EML/ICAL/VCF, Kopano, Zarafa

gromox-2.17

6 months ago

Enhancements:

  • http: Windows SSO support via HTTP Negotiate authentication
  • daemons: support for alternate login names this allows for assigning shorter usernames for grommunio-web)
  • exmdb: augment create_folder and movecopy_folder RPCs with a 32-bit error code, which allows g-web to better detect folders with duplicate names
  • ews: implement Subscribe, Unsubscribe, GetEvents, GetUserPhoto
  • mbop: add subcommand clear-rwz to clear out RuleOrganizer FAI messages

Behavioral changes:

  • exmdb: the delivery_message RPC will now return with status "partial_write" if major parts of a message (body/attachments) could not be written (disk full/permission denied/etc.)
  • delivery: partially-written messages now lead to bounce generation and emergency save action to disk

Fixes:

  • http: repair hanging communication with MAPI/RPC connections
  • oxcmail: reinstate read requests for non-IPM.Schedule messages
  • daemons: set umask such that created files have group write permissions for AAPI
  • imap/midb_agent: fix a crash when some JSON files are empty
  • midb: avoid a hang during the P-DTLU command when an eml/ file is absent
  • mkprivate, mkdomain: repair wrong byte ordering in initial PR_CHANGE_KEYs

gromox-2.16

7 months ago

Fixes:

  • oxvcard: export to .vcf now positions the VERSION property in accordance with the vCard 4.0 specification.
  • oxcmail: cease gratuitous RTF conversion of calendar items
  • mysql_adaptor: a wrong string search was used for recipient delimiters, which could lead to Recipient Invalid/User Not Found

Enhancements:

  • Define the "suspended" user state (think of it as a "non-receiving shared mailbox").
  • emsmdb, zcore: the emsmdb_max_cxh_per_user, emsmdb_max_obh_per_session and zcore_max_obh_per_session config directives can now be set to 0 for unlimited.

gromox-2.15

7 months ago

Fixes:

  • imap: do not emit continuation request on LITERAL+ (now also for large literals >64K)
  • exmdb: ignore softdeleted folders when validating new folder name
  • exmdb: explicitly rollback SQLite transactions when the commit operation failed, to resolve cases of cannot start a transaction within a transaction
  • exmdb: ACE entries for anonymous were misreported to clients

Enhancements:

  • delivery: support for plus-addresses/recipient delimiters, e.g. <[email protected]>
  • delivery: new config directive lda_recipient_delimiters
  • mbop: new subcommand recalc-size to recalculate store size

Changes:

  • alias_resolve: config directives are no longer read from /etc/gromox/alias_resolve.cfg but now from /etc/gromox/gromox.cfg
  • oxcmail: do not emit Content-Disposition creation-time/modification-time parameters when those fields are not present in the MAPI object
  • Delete unused columns and indexes from the associations MariaDB table; (grommunio-admin-api should be updated to >= 1.12)

gromox-2.14

7 months ago

Enhancements:

  • daemons: better SSL_accept error log messages
  • alias_resolve: support for nested mlist expansion
  • alias_resolve: support for Global Contact Objects
  • delivery: SIGHUP triggers a reload of (more) plugins now
  • gromox-mbop: add emptyfld options -a, -M

Fixes:

  • oxdisco, oab: avoid emitting extraneous NUL byte at end of XML document
  • imap: do not emit continuation request on LITERAL+
  • mbop: restore emptyfld functionality after switch to empty_folder v2 RPC
  • mbop: delmsg -f DRAFT 12345 did nothing due to a bad translation of the special name

gromox-2.13

8 months ago
  • emsmdb: eliminiate duplicate message appearing when copying to a private non-default / shared store
  • EWS: support the {Create,Delete,Move,Copy,Update,Empty}Folder operation(s)
  • EWS: support the {Copy,Move}Item operation(s)

gromox-2.12

8 months ago

Enhancements:

  • ews: support CreateItem, DeleteItem, SendItem requests
  • oxm2mt: support multi-valued properties

Fixes:

  • kdb2mt: do not abort when --src-mbox is used
  • exmdb_provider: opening the detail view of Personal Addressbook entries now works in Outlook, as does selecting them as message recipients
  • zcore: fix a flaw in permissions dialog that caused the delegates to be able to see the private items of the delegator

Behavioral changes:

  • exch: remove old PHP EWS handler
  • zcore: delete getuseravailability RPC and replace by new getuserfreebusy RPC

gromox-2.11

9 months ago

Enhancements:

  • exmdb: attachment storage with hash-based filenames
  • exmdb_local: persistent (on-disk) last-autoreply time tracking
  • imap: allow large literals with APPEND
  • imap: add RFC 7888 support
  • oxdisco: allow AutoDiscover information retrieval from secondary mailboxes even if the scndstore_hints table does not have an entry.
  • emsmdb: "Mark all as read" in OL (Online mode) now works

Fixes:

  • oxcical: resolved another case of recurring appointments shifting due to timezone/daylightbias
  • exmdb_provider: resolve constraint failure on movecopy_messages
  • email_lib: add back CRLF when MIME::read_head is reconstructing headers
  • mapi_lib: resolve an infinite loop during html_to_rtf
  • exmdb_provider: ignore absent directories during gromox-mbop purge-datafiles
  • exmdb_provider: make exmdb_pf_read_states=1 hide folder sumamry counts as advertised by manpage
  • zcore: delegation dialog had erroneously set too many permission bits

Changes:

  • exmdb_client: disable timeout during active calls
  • delivery: raise context_average_mime limit from 8 to 500
  • nsp: drop "custom address list" name suffix from mlists

gromox-2.10

11 months ago

Fixes:

  • imap: restore notifications during IDLE
  • midb: do not present softdeleted messages to IMAP
  • zcore: validate permissions when inbox rules or folder permissions are edited
  • lda_twostep_ruleproc: resolve array out-of-bounds access when resolving named properties
  • snapshot: switch back to root user identity to be able to purge snapshots

Enhancements:

  • DNSBL filtering mechanism, cf. man dnsbl_filter
  • Address book name resolution now evaluates alias addresses
  • pff2mt: speedup operation by 70%+
  • emsmdb: strike limits (raise to infinity) for session handles, user handles and notify handles, and raise limit for ems_max_pending_sesnotif to 1K
  • emsmdb: new configuration directives ems_max_active_notifh, ems_max_active_sessions, ems_max_active_users, ems_max_pending_sesnotif
  • mbop: new subcommands clear-photo, clear-profile, purge-softdelete, purge-datafiles

Changes:

  • The PHP-MAPI profile is now stored in the mail store as a property rather than as a flat file. The upgrade is automatically performed when the MAPI profile gets modified via PHP-MAPI.
  • The user profile picture is now stored in the mail store as a property rather than as a flat file. The upgrade is automatically performed when the photo is modified via PHP-MAPI.
  • /usr/libexec/gromox/cleaner is obsolete and replaced by mbop subcommand purge-datafiles.

gromox-2.9

1 year ago

Fixes:

  • zcore: plug memory leak when address book data structure reloads
  • zcore: fix inverted evaluation of RES_CONTENT::comparable
  • zcore: moving messages from one store to another obtained CNs from the wrong store and could fail the operation
  • oxcical: add TZID for allday events
  • imap: consistently show EXISTS status before RECENT
  • imap: move EXISTS/RECENT response after SEARCH result
  • imap: skip reporting EXISTS/RECENT if folder is unchanged
  • imap: make FETCH RFC822 report FLAGS as well
  • imap: SEARCH by size used the wrong column
  • imap: avoid double status reporting when one message is changed multiple times
  • imap: add and populate a per-context seqid list
  • midb: unbreak search matching based on dates and sizes
  • imap: cease emitting extraneous FETCH FLAGS responses (works around a shortcoming in the KDE kmail client)
  • imap: resolve E-1995 erroneously showing when memory use is fine
  • emsmdb: avoid hitting an assertion when sort-reloading a table of a deleted folder

Enhancements:

  • emsmdb: support forwarding meeting requests from organizers that are not local to the installation
  • imap: broadcast changes to mailbox from EXPUNGE commands
  • midb: auto-regenerate ext/ digests when missing
  • Log the filename of the SQLite database when a query fails
  • emsmdb: add log messages for notification queue limits

gromox-2.8

1 year ago

Fixes:

  • exmdb_provider: repair a 4-byte cutoff when reading PR_BODY, PR_TRANSPORT_MESSAGE_HEADERS if they are compressed on disk
  • emsmdb: setting multiple mails as read/unread was repaired
  • php_mapi: fix a case where proptag arrays had bogus keys
  • midb: resolve a crash when a P-SRHL HEADER search has not enough arguments
  • zcore: do not lose folder for OP_MOVE rules when that folder is in a public store
  • mda: the DATA command in LMTP mode did not emit one status line for every RCPT
  • nsp: fix janky addressbook navigation when the GAL has hidden entries
  • authmgr: resolve altnames before searching them in the LDAP backend
  • php_mapi: reduce memory block retention scopes so that requests with a large response (~128MB+) won't die from Out Of Memory
  • midb: fix E-1903 error appearing on shutdown

Enhancements:

  • The "Hide from addresbook" functionality has gained another bit, so that name resolution ("Check names" button in OL/g-web) is no longer tied to visibility in the GAL.
  • Support for non-default stores in the IMAP and POP3 protocols; use "actualusername!sharedmbox" as the username for login.
  • imap: allow setting \Recent flag with STORE command
  • imap: send TRYCREATE on failed SELECT
  • imap: output \Junk alongside \Spam for the junk folder
  • imap: emit special-use flags with plain LIST when so requested in the command
  • imap: add LIST response to SELECT/EXAMINE
  • pff2mt: add --with-assoc, --without-assoc

Changes:

  • daemons: the files /etc/gromox/exmdb_acl.txt, midb_acl.txt, event_acl.txt, timer_acl.txt were made obsolete and replaced by the new (exmdb_provider.cfg) "exmdb_hosts_allow", (midb.cfg) "midb_hosts_allow, (event.cfg) "event_hosts_allow", (timer.cfg) "timer_hosts_allow" directives.
  • http: adjust the built-in PHP-FPM socket paths to reflect changes in g-web and g-sync (this impacts test setups that run gromox-http without an nginx in front)
  • mda: update "Received" headers in messages to look more like Postfix's
  • pff2mt: --without-assoc is now the default (This is only a concern with .ost files, as .pst does not have FAI messages.)