github jobisoft/EAS-4-TbSync v5.3.10

3 hours ago

A modernized version of the EAS provider for TbSync for Thunderbird 153+

Stable release of the Exchange ActiveSync provider for TbSync v5. Requires Thunderbird 153 or newer.

Like TbSync itself, the goal of the rewrite is to be a modern WebExtension: the setup and settings dialogs are HTML instead of XUL, and the only legacy code left is what migrates accounts from earlier versions.

Before you update

Update all parts together. TbSync v5.3.* only works with provider add-ons from the modern v5.3.* family. A newer TbSync refuses an older provider and says so in the Event Log.

Accounts created with earlier versions (v4, early v5) get their settings migrated, and their resources are locked. If the previous version left changes that were never synchronized, TbSync 5.3.7 offers to migrate the account: it rebuilds each folder from the server and asks which of those changes to restore. Otherwise, disconnect and re-connect the account to start fresh.

Disconnecting deletes that account's local calendars and address books.

New

  • Meeting invitations, end to end - the long-standing gap in this add-on, closed - #10
    • Accepting, declining or tentatively accepting an invitation reaches the server, and the organiser gets your reply - #8, #66
    • Answering no longer duplicates the meeting or re-invites everyone on it - #320
    • A meeting you create invites the people on it, and a change to it notifies them - #7, #25
    • The invitation mail and the calendar entry are recognized as the same meeting, so the mail stops offering to add an event you already have - #40
    • An invitation you have not answered yet no longer shows as accepted - #4
    • A meeting you received no longer becomes one you organise when you edit it - #9
    • An invitation is sent once, by the server, instead of once by the server and once by Thunderbird
    • Answering a single occurrence of a recurring meeting reaches the server too, not only answering the whole series
  • ActiveSync up to 16.1 - initial support by Jarek Polok, recurring events by Niel Buys
  • Attendee availability (free/busy) when inviting someone - #189
  • Global Address List as a searchable, read-only address book - #344
  • Formatted calendar notes survive in both directions - #347, #95
  • Many issues fixed around recurring events - #334, #342, #343
  • Subscribed calendars keep the right owner - #333
  • An end-to-end test suite that runs against real servers, Microsoft 365 and Kopano/Z-Push, so every sync path is exercised against both before a release
  • Out of office, from the account's new Services button - off, on, or on between two dates, with a separate reply for senders outside your organisation where the server offers one - #11
  • Synchronize shortly after you change something, so an edit does not wait for the next scheduled synchronization. Per account, off or after 5, 15, 30 or 60 seconds of quiet. Covers calendars and address books
  • Recurrence synchronization can no longer be switched off once it is on, and an account carried over from an earlier version has it switched on when it is migrated. With it off a series shows as a single entry on whichever side did not author it
  • Meetings you organise now notify the people on them on ActiveSync 14.x servers - the invitation, later changes, and the cancellation. These servers send nothing themselves, so until now nobody was told. Dropping one attendee cancels it for that person and updates the rest
  • Answering an invitation now reaches an organiser on another mail system, on ActiveSync 16.x. Previously your own calendar was updated but nothing left the server
  • Answering works again on ActiveSync 12.0 to 14.0, and changing your mind about an answer works on 14.1
  • Duplicate items on the server can now be found and cleaned up. Some mailboxes ended up holding the same calendar entry many times over, caused by a bug in an earlier version of this add-on. Thunderbird keeps only one copy of each, so the extra ones were invisible here while staying on the server and coming down again with every full synchronization. After a synchronization that sees them, a window lists each affected entry and offers to remove the extra copies. The copy Thunderbird is using is always the one kept, and nothing in your local calendar is touched

Fixed

  • A folder stuck on "needs to be synchronized" - #336
  • Sync failing with "unknown error", and no detail when the server rejected an item - #335, #319
  • Provisioning failures, including Tencent Exmail - #337, #315
  • Task lists offered when creating an event - #341
  • All-day events shifting by a day
  • Recurring events authored in another time zone drifting by an hour around daylight-saving changes
  • A rescheduled or cancelled occurrence of a recurring event not updating - #317
  • Re-authenticating an account, and recovering a username/password account after an authentication failure - #321
  • A server-initiated resync duplicating every item in a folder
  • Refresh tokens rotated by the server not being kept
  • Several data-loss bugs in contact handling
  • The add-on no longer asks for the "management" permission
  • Editing a task no longer changes its recurrence settings on the server as a side effect - #15, #16
  • Pushing a change no longer widens the calendar's date window, which made the next synchronization pull everything again
  • A folder the server refuses twice is reported as failed, instead of being counted as synchronized
  • Thunderbird's own refresh timer no longer runs on calendars this add-on synchronizes
  • An item could be duplicated after the server asked to start over. Contacts and tasks were most at risk, because those carry no identifier of their own in the protocol
  • Entries left behind by a deletion the add-on never saw can no longer accumulate, or address the wrong item
  • An edit to an item the server no longer has is no longer lost - the item is re-created with your change, instead of the change being dropped
  • Editing a recurring event no longer re-sends occurrence changes the server already had
  • A rescheduled or cancelled occurrence could disappear from your calendar moments after the series was created, while the server still held it correctly
  • When the server keeps its own copy of an item instead of your change - which is what conflict resolution asks it to do, and has always been the default - that answer is now accepted and noted in the Event Log. The change used to be sent again and again until the server took it
  • Pasting an event into one of this add-on's calendars did nothing at all, with no error to explain it. It now works, on every platform
  • The Global Address List no longer stops looking once it has a hundred matches. In a large directory, everyone past the hundredth was unreachable and nothing said so
  • Searching the Global Address List is much faster while you type + workaround for a Thunderbird bug - #344 (Thanks @michel34)
  • Improve logging
  • An event that starts and ends at the same moment - a point-in-time reminder, the way Outlook creates them - was refused as impossible instead of being sent. It failed on every synchronization from the moment its reminder was dismissed
  • Searching the Global Address List on a Microsoft 365 account could ask you to sign in again - password and MFA prompt - over and over, while ordinary synchronization never did - #352
  • A server answering "try again later" (HTTP 503) now pauses automatic synchronization, for exactly as long as the server asks, instead of reporting an error for every folder and knocking again on schedule. A manual synchronization is not affected
  • When the server refuses a request, the Event Log now records the server's whole answer, so a problem report carries the server's explanation instead of only the number
  • Accepting an invitation for a meeting your calendar already held was filed as a brand-new event and sent to the server as one. Depending on the server, that either failed on every synchronization from then on, with your answer never arriving, or quietly created a second copy of the same meeting
  • An addition the server refuses because it already holds a matching item is no longer sent again on every synchronization. The Event Log names the item and says that the queued addition was retired
  • A Microsoft 365 account could not be connected at all when the server answered that it has no policy for this device - a perfectly normal answer from a server that enforces none. The "Enforce provisioning" setting was also silently switched back off - #353
  • A newly added account could connect, report a successful synchronization, and deliver nothing at all - no error, no items, sometimes for hours - because the device never introduced itself to the server. Accounts carried over from version 4 were not affected, which is why this only showed up on freshly added ones - #353
  • When something other than this add-on overwrites an event in one of its calendars - another add-on, an imported file, or Thunderbird answering an invitation - the Event Log now names which fields that write changed. A server's own error page is also no longer cut short at four thousand characters, which was where the sentence naming the problem tended to sit
  • Editing a single occurrence of a recurring event did nothing at all. The dialog closed, the occurrence stayed exactly as it was, and no error appeared anywhere. Editing the whole series always worked - #354
  • Recurring items were sent with a week start that nobody had chosen, including yearly rules on a fixed date where a week start means nothing at all. It is now sent only when the rule names one
  • Choosing an ActiveSync version in the account settings had no effect: an account pinned to 14.1 was still speaking 16.1 to the server. The settings dialog now also says which version is in use alongside the one the server suggests
  • A server that refuses the OPTIONS request no longer blocks the account entirely, and a daily re-check can no longer take down an account that was working
  • Events Thunderbird can hold but ActiveSync cannot state are now restated as something the protocol can carry, instead of being sent short. Two repeat rules on one event, a rule alongside individual dates, or a bare list of dates were all accepted locally and then stored on the server without their dates, losing occurrences in silence. A task that reschedules a single occurrence is refused and reported instead, because ActiveSync has no way to express one
  • A rescheduled occurrence could be dropped by the server without any error, when it would move past another occurrence that had not been moved yet
  • An item the server sends with rescheduled or cancelled occurrences but no repeat rule no longer breaks that folder. Thunderbird refuses such an item outright, and because it arrives inside a batch the whole folder failed on every synchronization for as long as the server held it - #355
  • On a server that acknowledges every change rather than only the refusals, moving one occurrence of a recurring event never reached the server
  • An unset date arriving as 1 January 1601 is now read as no date at all. Some servers send the Windows zero date instead of omitting the field, so contacts gained an anniversary nobody had set and a cleared birthday came back on the next synchronization
  • On ActiveSync 16.x, changing a recurring event's start or end time, or its repeat rule, deletes every rescheduled and cancelled occurrence the server holds - which the server does not report, and which Thunderbird only discovers the next time it reads the folder, by which point they are gone. Those occurrences are now noticed and sent again
  • A duplicate cleanup that removed several hundred copies finished the work and then reported "Timeout waiting for requestSync" in red, as though it had failed - #351
  • An interrupted duplicate cleanup no longer costs a full re-download of the folder
  • The window offering to remove duplicate copies can now be closed while the removal is running. Several hundred copies take minutes, and the work finishes either way
  • An invitation addressed to somebody else and only redirected to you could never be answered, and the folder never stopped saying it had something waiting. Your mailbox holds no copy of such a meeting, so there is nothing on the server for an answer to be sent against. It is now kept as your own event after two hours, without its guest list, so nobody is invited in your name - TbSync #811
  • A calendar could stop synchronizing part-way through and report the server as busy, when Microsoft 365 says there is more to come and then sends nothing. The Event Log records how many items were expected against how many arrived - #356
  • "Items per sync batch" no longer accepts a value below five. Microsoft 365 budgets synchronization by the number of requests rather than by their size, so a folder fetched one item at a time spends the whole allowance and is then refused for the rest of the hour. A value that low usually came out of a version 4 profile rather than from anyone typing it - #356
  • A folder the server refused to hand anything over from was reported as synchronized, and was indistinguishable from a folder with nothing new
  • Re-connecting an account now introduces the device to the server again. A server that has forgotten a device answers every folder empty rather than failing, which leaves re-connecting as the only move a user has, and it used to keep exactly the state that was the problem
  • The add-on's dialogs follow the dark theme consistently
  • The Event Log no longer reports an outside write to an event when there was none
  • The add-on is no longer disabled on Thunderbird newer than 154

Don't miss a new EAS-4-TbSync release

NewReleases is sending notifications on new releases.