bugfix in ContactRescue export : infinite loop where profile has no valid name
Remove unwanted "W" icon on dialog
Option to store personal info and preference on AppData (when MyDocument is on network disk)
2.10.54 renamed 2.11.10
Direct upload of Flasback export file to S3 bucket (faster and more secure connection delegated to Amazon).
Workaround for issue which could cause Outlook to hang when quitting.
New ContactRescue Interface (new ContactRescue status on server).
Bug fix - application-wide mutable AccessToken type should avoid access token going invalid.
Fix failsafe system dropping an email after 5 analysis attempts.
Add missing type “Other” to phone numbers.
ContactRescue result and pricing plans are checked after each login (1 per hour).
Convert obsolete “WriteThat.Name” contact category into “Evercontact”.
In ContactRescue result downloading error pop-up: tells user to retry in a few minutes.
If the downloading error file contains a line about expired or invalid token, performs an immediate re-login.
Add disclaimer in Login Complete pop-up.
New feature : Activity Statistics
For Outlook 2007 and earlier, add a “Statistics” button in the Evercontact command bar with a tooltip explaining when it is disabled (no stats) or prompting the user to click if enabled to display stats.
For Outlook 2010 and later
add a “Statistics” button in the Evercontact Ribbon tab, with the same tooltip than explained
add a “Statistics” section to the Evercontact backstage view with (if available) a statistics summary since beginning of data (or if none a short explanation), and a button to display detailed stats.
Allow Exchange users to use Shared contact folders, provided their account is on a version of Exchange server featuring these folders, and that another user has shared a contact folder with this user. The working address book must now be selected among “local folders” and “shared folders”.
(fix) Registration and license transfer pop-ups were not showing in a very logical order.
(fix) Display “ContactRescue result ready” pop-up only once.
(fix)Dodge Avast false positives concerning “Win32:Evo-Gen”. This is due to .NET automatic serialization strategy of web requests. Refactoring to create a work around by pre-generating XML serialization assemblies.
Other minor UI/UX improvements and a number of little bugs were also harmed for this release.
(fix) Moved extended address part of postal addresses (e.g. “suite 1245”) after the street address.
During ContactRescue export / import, if the log file is locked by another process, display a pop-up asking the user to resolve the lock for that process. The user can then retry, or cancel. If they cancel, then a new file name is generated for more accurate logs.
If the AccessTokenValidityResponse to the Login verb request leads to a negative or null number of milliseconds from now, defaults to 1 hour.
Fix ambiguity form:
ambiguous contacts were sometimes not displayed when the underlying image file resources was hold by some other process. Now we use in-memory image objects to avoid that.
add more logging info
Replace all strings “Kwaga” by “Evercontact by Kwaga” in installer’s files.
Fix: if RegistrationAccessKey was lost at some point, re-register and save the key, the immediately log in.
Finish implementing the new ContactRescue Export wizard for 20,000, 60,000 or custom ContactRescues
Fix back-office command allowing customer support service to ask the user to restart Outlook.
Update “Finalize ContactRescue” button state every hour (starred if a result is available, un-starred if none).
UI Design improvements
Add a warning if too few emails are selected in ContactRescue.
[tech] Use 64Kb buffered stream to feed the GZip stream when exporting ContactRescue.
[tech] Remove inter-thread locks while gathering the list of unwanted folders in Session wrappers.
Add a dummy handler for Stores.StoreChange event in the StoreWrapperManager. Without this handler, Outlook UI may freeze when the user has non-orthodox stores such as iCloud for instance.
Do not attempt to compare persistent reference with previous selection in “intelligent” analysis, because this can raise NullReferenceException if the selection is not a proper mail.
Trap asynchronous request exceptions one step earlier in RegistrationManager (register, login) to try handle disaster a little more gracefully.
Fix: protect sender names containing a quote.
Implement custom commands from server. First command is “Upload log”.
Add an anti bac’n filter based on subject and sender’s address.
Less logs : use internal timestamp instead of getting one from the serve.
Less logs sent to server (HttpWebResponse status, response delay, no signature found).
Log only once on server when logfile is unreachable on user’s machine.
Add a small cache mechanism to avoid processing double (or triple or more…) firings of event when selection change (this could lead to sending multiple analysis requests for the same message).
Fix some log info about the message being analyzed.
Analysis behavior defaults to Automatic when updating (i.e. keeps same behavior) and to Intelligent when installing for the first time (i.e. new users use intelligent behavior).
Outlook 2010 and later: move Analysis Behavior radio group to Advanced section.
Add a hyperlink both in backstage view and normal add-in property page to point to page with an explanation about analysis behavior.
Add a hyperlink in both pop-ups for mandatory / non-mandatory add-in updates to point to a page with the add-in’s release sheet.
Reformat Advanced options for Outlook 2007 and earlier, added analysis behavior there.
Implement “intelligent” analysis behavior sending to server only the mail currently selected by the user for more than 2seconds.
BUG: fixes a credential issue (access token)
BUG: fixes ContactRescue download issues
Adds a star / pop-up when ContactRescue is ready to be finalized.
ContactRescue automatic import: every hour the add-in checks if a ContactRescue result is ready (or if the user clicks on Finalize), and if so, the import wizard opens.
Improvements that help when Exchange user is not connected.
No longer add “_Unknown_” given or family name
Now process “extended address” (e.g. “suite 3104”, “office 34B”...) and post office box.
Avoid exception when the “sent by” name is not available during a ContactRescue export.
Take VCARD “region” (=> Outlook contact “state”) when merging a postal address.
BUG: Fix uninstall error when removing user settings.
Fix a typo in error message.
Fix behavior of “Blacklist contact” contextual menu in WTN pane.
Fix unrecognized signatures when the sender’s name contains a comma (e.g. “Paro, Barbara”)
Add a warning to ContactRescue Export Wizard when more than 20% of emails are rejected because their FROM or TO is not a proper SMTP address (this happens mainly with disconnected Exchange accounts)
2.0.3 - 16/05/2013
When a mail analysis request triggers a timeout, stop current batch and double the time before next time. If a whole batch is processed without timeout, the period between 2 batches comes back to 5s.
Add a protection against network micro-interruptions (the internal data model would become invalid if the network becomes available while processing the former interruption).
Logs an error if more than 3 micro-interruptions occur in the past hour.
2.0.0 - 14/05/2013
ContactRescue Export and Import features, no configuration.
Add ContactRescue “Export” and “Import” buttons.
Implement ContactRescue export of default user’s Outlook store in a Gzipped file in his WriteThat.name documents folder.
Add a popup when the Redemption binaries cannot be found, to warn the user that some essential components are missing. Recommend uninstall and reinstall fresh.
Add a system to PortableSettingsProvider: the user settings file path is stored in the registry. When saving the settings to disk, if this path is invalid, inform the user and ask him to select another folder (and save path in the registry for next run).
Disable Turn On and Turn Off buttons until the registration process is complete and the license status is valid. This prevents starting mail analysis before the registration is complete by turning off then on.
Do not ask the user if s/he wants to reuse the existing WriteThat.name contact folder each time the add-in starts.
Go on collecting possible contact folders (when initializing the add-in) even if an exception prevents accessing one of user’s folders.
Display “Unregistered licenses” message in the WTN Pane in all required cases.
Changed service URLs to dev.writethat.name (DEV) and api.writethat.name (PROD).
Added a message to tell when the user required an update but none is available.
1.8.6 - 2013-02-26
Truncate log activity messages to the 1st 1000 characters so that we don’t resend a message several times.
Push Registration manager’s delayed operations each time Outlook sends/receives messages (in case the network was not available when Outlook was launched).
Use a SessionComWrapper in the AddinModule instead of RDOSession (not visible by the user).
Initializes Redemption earlier and use the Redemption Session’s ProfileName instead of ADX OutlookProfileName (we hope to avoid null profile names as much as possible).
More efficient management of memory- refactoring of the Mail analyzer module : smaller code (smaller executable to download),
Fix an awful stupid bug preventing registration to complete (name of registration status items had changed between versions of the add-in).
Complete refactoring of store wrappers, avoid exception MAPI_E_NOT_FOUND when a message is deleted from a store.
Do not process a signature for a mail that has been moved to Junk folder (if any).
Add a button “Update” to force update.
1.8.2 - 2013-02-15 (dev + prod)
Important refactoring of Outlook “stores” wrappers:
Handle configurations where several accounts share the same inbox.
Exchange stores are processed the same new way than other stores => no more “Exchange synchronization” phase.
1.8.0 - 2013-02-08 (dev) / 2013-02-12 (prod)
Fix an initialization problem concerning hardcoded blacklists provoking a NullReferenceException in WtnMailAnalyzer.HasDropFrom method.
Refactor management of accounts/user addresses and stores, in separate objects complying with the Disposable coding pattern. No impact for the user, just a clearer code, easier to maintain and less prone to keep a “ghost Outlook process” running in the background when quitting.
Uses these new objects to properly “shutdown” the add-in’s activity when the network is unavailable (or the computer is suspended or in hibernation) and properly “reactivate” it when the network becomes available (or the computer is awaken).
1.7.8 - 2013-02-07 (dev)
Check that the Access Key field is not empty, and it contains a well-formed GUID before sending to the server. Display alert pop-ups explaining the problem (empty, ill-formed) referring to the confirmation email.
Add a short explanation text in the backstage view below the Access Key field and add a screen tip on the Register button.
Check that there is a user.config file before trying to delete it in the desinstaller (avoid uninstallation problems).
1.7.7 - 2013-02-05 (dev)
Start introducing a new pattern of exception handling throughout the system so that we can handle connectivity problem during analysis and reschedule missed items for later analysis.
BUT: this means that some exceptions can now sneak up to the upper execution levels and perhaps some ADX error dialog box will show up again.
Use new Kwaga server verbs: checkVersion, register3, login3 and transfer3.
1.7.6 - 2013-02-01 (dev) / 2013-02-05 (prod)
Log and protect against My Documents is null or current Outlook profile is null. Defaults to Desktop and then to C:\ to store our files.
Deploy on DEV to test.
1.7.5 - 2013-02-01
When Kwaga server says that it cannot add a new item in the activity log, retry with a shorter message.
When the transactions with Kwaga server raise an EndPointNotFoundException, raise a flag to know that the user’s machine has connectivity problems, and display a warning in the WTN pane.
When we get a MAPI_E_NETWORK_ERROR while requestion contact folders from Exchange, show a pop-up to tell the user that the connectivity with Exchange is too bad, and disable the add-in until the next Outlook launch.
1.7.3 - 2013-01-30
Display a warning pop-up when the entered access key is wrong.
Disable USE_MAPIOBJECT from Redemption.
Fix duplicates and don’t override company name in contact merge.
1.7.2 - 2013-01-30
When license status is BYE: warn the user and propose to uninstall the addin. In any case the addin is disabled, and display a message in the WTN pane.
Stores the mailId in a mail’s user property to help with debug.
Adds an obscure line to PostSubmitter to prevent the C# socket from hanging out.
All addresses ending with @kwaga.org are analyzed on DEV.
Cache Trace so that disk I/O operations on wtnlog.txt are performed only every 60s, to avoid freezing Outlook.
1.7.1. - 2013-01-28
Remove systematic warning pop-up about license expiration at each launch.
Remove server log of exception in GetRdoContactItemFromId (irrelevant for the user).
Save synchronization data for Exchange stores in the registry instead of disk (under the profile folder) + automatic migration to new system.
Save last synchronization date to speed up Exchange synchronization.
Consider it will be a long synchronization (and warn the user) if the last synchronization is more than 1 week old.
Button Synchronize forces synchronization even on a minor version.
Never disable the Register button and Access Key text area.
1.7.0 - 2013-01-25
Same as 1.6.13 but made major.
1.6.13 - 2013-01-25
Remove unnecessary (and probably damaging) EnableVisualStyle initialization from Outlook <= 2007 property page constructor (case of propery page with many controls superposition).
Revert to manual RDOSession login instead of using MAPIOBJECT (can cause Exchange synchronization exceptions).
Add pop-ups to warn the user that a long Exchange synchronization process is beginning, and to tell him the process is complete.
Adds a button “Personal Page/Buy a License” in the ribbon (Outlook >= 2010) and in the command bar (Outlook <= 2007).
1.6.12 - 2013-01-23
Fix truncation in Select Address Book form.
Display “Annual license” in the WTN pane.
Add a label in the congratulations form to warn the user that he will be redirected to create a password. Do that when clicking on OK button.
Fix layout problems in the Outlook 2007 options page.
Remove one redundant log on the server to save time.
Monitor changes to mail item in ContactManager, to save it at each change and avoid MAPI_E_OBJECT_CHANGED errors.
Add a log on our server to trace the elapsed time between an analysis request and the response.
Use Namespace.MAPIOBJECT when Outlook >= 2002 to save manual session login.
Disables WTN Pane when license is out of date.
Do not release MAPI and WTN objects when license is out of date.
Handle Outlook 2013 and Windows 8 in trace on server (formerly “unknown”).
1.6.9 - 2013-01-21
Make text box wider in form to enter access key (Outlook <= 2007).
Fix problem with Turn On / Turn Off buttons in Outlook >= 2010.
Fix problem with License expires today warning at start up.
Fix wording in forms concerning license about to expire and license expiring today.
Make WTN pane warning either a link or label.
Change Backstage button in Identification group to “Purchase License” (for TRIAL and OUT_OF_DATE) and “Personal Page” (for GIFT and OK).
Disable Backstage view and Ribbon buttons when license if OUT_OF_DATE.
Small wording change in form LicenseExpiredError.
Avoid ObjectDisposedException in logs when Outlook is quitting.
Raise LicenseExpired alert at D+1 instead of D+2.
Reach Personal Page without access token when the license has expired, instead of displaying an error message.
Remove unnecessary form saying that a logging request has been sent to our server.
Fix a problem: the add-in says that the registration process is not complete when relaunching Outlook if the license is expired.
1.6.6 - 2013-01-19
Handle empty access token returned by server when license has expired.
1.6.5 - 2013-01-18
Fix false modifications to extended URLs and extended IDs while merging contact.
Add trace concerning license expiration.
1.6.4 - 2013-01-18
Fix initialization of Show/Hide & Turn On/Turn Off buttons in the WriteThat.name ribbon (Outlook >= 2010).
Add missing icons for Send Log & Clear Log buttons in the ribbon (Outlook >= 2010).
1.6.3 - 2013-01-18
Integrate a new version of Redemption library for a more secure handling of Hotmail accounts: even if the account name has changed, we can retrieve the associated email address.
Remove “Select Kwaga Server” from the Advanced settings.
Add WTN-style warning dialog boxes instead of default Windows messages when the user creates a new contact folder.
Add a trace to know if the WTN pane is hidden because of the user settings at startup.
1.3.7 - 2012-12-19
Revert WTN main panel to default Outlook style, but complete using new style bitmaps in buttons and events.
Add a status bar to WTN panel to display info.
1.3.6 - 2012-12-18
Gather user email addresses by enumerating installed accounts, in order to prevent getting some store names instead of email addresses.
1.3.5 - 2012-12-17
New style for WTN main panel.
1.3.3 - 2012-12-12
Refactor initialization phases (especially for Exchange accounts) to take into account that the registration checking is now a background task. The incoming mail analyzer is now launched as expected (it was not correctly launched in v1.3.1 and v1.3.2).
1.3.2 - 2012-12-11
Registration check in a native asynchronous request.
Some additonal debug log info at start-up.
1.3.1 - 2012-12-11
Gather possible contact folders in a background thread (instead of background worker) to speed up launch even more.
wtnlog.txt is created in UTF-8.
1.3.0 - 2012-12-07
Manage network availability, and machine sleep/hibernate without letting Redemption objects go corrupt (process on add-in’s UI main thread).
1.2.15 - 2012-12-07
Add a mechanism to re-ask for an access token to kwaga server if lost.
Add a tooltip to the warning icon while synchronizing with Exchange to inform about not closing Outlook.
Put the gathering of possible contact folders in a background worker to speed up launch of Outlook.
1.2.14 - 2012-12-06
Add an option (only for BETA version) allowing to select the Kwaga Server (DEV or PROD).
1.2.13 - 2012-12-05
Flush trace every 60 secs.
Trace time elapsed in the 2 initialization routines.
1.2.12 - 2012-12-05
Use new ADX library supporting Outlook 2013.
1.2.9 - 2012-11-21
Save mail items before displaying a context menu => avoid error about “mail already sent” from Outlook data model.
1.2.8 - 2012-11-21
Include custom Redemption libraries to override bug concerning PROP_ACT_DELIVERY_STORE.
1.2.4 - 2012-11-06
Connect checkbox “Update on startup” in backstage view (Outlook 2010).
1.2.3 - 2012-11-05
Fix a bug when displaying a warning in the WTN panel (the 1st time, the label did not appear).
Log more information about the use of extracted signature to fill in the contacts.
Change strategy to get the list of user addresses: browse monitored Outlook stores instead of accounts, and gather information about the stores’ accounts.
1.2.2 - 2012-10-31
Use RTF instead of HTML to store the Kwaga note in the contact card, to avoid encoding problems with high Unicode characters (for instance, Chinese).
Display a warning message on the WTN panel if there was a communication error during registration checking.
1.2.0 - 2012-10-26
Fix the background color of the Update check box in French options pane.
Display the add-in’s version number in the title of the WriteThat.Name panel.
Add the user’s OS information in the logged information.
Catch all exceptions everywhere.
1.1.99 - 2012-10-24
Make sure that the contents of the WTN options page is always the same than the content of the backstage view (for Office 2010 and newer).
1.1.98 - 2012-10-24
Add specializations to store wrappers to track the number of Exchange vs IMAP vs POP3 vs HTTP mail accounts at any moment.
Log Outlook version, 32 or 64 bits and numbers of each type of mail accounts for the user.
Start logging activity into the server only when the server has answered for registration status.
Abort and destroy thread that periodically saves the event list and mail analyzer when Outlook quits.
Log (local) start and end of registration login process.
Put call to Registration service in a background worker not to block UI while initializing web service communications.
Start addin operations only once the registration query is complete.
Use https instead of http to invoke REST API on Kwaga servers.
1.1.97 - 2012-10-19
Change update URL to http://outlook.writethat.name/WriteThatName4Outlook (=> users must uninstall then reinstall).
Bugfix prevents crash when click on Log > Report.
Catch all exceptions in : classes extensions, Redemption store wrappers, WCF service wrappers
1.1.96 - 2012-10-16
Change update URL to http://writethat.name/WriteThatName4Outlook (=> users must uninstall then reinstall).
Implement option to be warned of major updates only vs all updates.
Catch all exceptions in ContactItem extensions.
Minor bugfix in merging of postal addresses: the added postal address was not stored in the event logger.
· Other speed optimization