ActiveDirectory GPO redirected folders database corruption

When using ActiveDirectory home folders redirection (to network share) in Group Policy, EMClient SQLite Database becomes totally corrupted and unrecoverable. 

USAGE:  User sets up EMClient on PC#1.  User may or may not log off of PC#1 and goes to PC#2 – logs in – loads EMClient.  BOOM!

As a developer of over 30 years, all I can say is… WHY?

I recommend EMClient review and correct file locking/sharing operations in EMClient.

Personally, I don’t know what I’m going to do about this.  Probably uninstall, permanently.

No excuse for this.  Even the original Outlook Express from 1998 handled this situation with ease.  I have a high-performance, multiuser email and calendar server with a single user, single workstation client.

(I even have multiple Postgres, MySQL, Oracle, and MS SQLServer database servers that could be used instead of SQLite.)


SQLite Documentation…
Backwards Compatibility

The database file format is unchanged for WAL mode. However, the WAL file and the wal-index are new concepts and so older versions of SQLite will not know how to recover a crashed SQLite database that was operating in WAL mode when the crash occurred. To prevent older versions of SQLite from trying to recover a WAL-mode database (and making matters worse) the database file format version numbers (bytes 18 and 19 in the database header) are increased from 1 to 2 in WAL mode. Thus, if an older version of SQLite attempts to connect to an SQLite database that is operating in WAL mode, it will report an error along the lines of “file is encrypted or is not a database”.

08/21/2014 14:25:53 1 no such table: mail_fti.SubjectIndex_stat
08/21/2014 14:25:53 1 no such table: mail_fti.AddressIndex_stat
08/21/2014 14:25:53 1 no such table: mail_fti.LocalMailsIndex3_stat
08/22/2014 19:00:06 1 no such table: mail_fti.SubjectIndex_stat
08/22/2014 19:00:06 1 no such table: mail_fti.AddressIndex_stat
08/22/2014 19:00:11 1 no such table: mail_fti.LocalMailsIndex3_stat
08/22/2014 19:18:54 1 no such table: mail_fti.SubjectIndex_stat
08/22/2014 19:18:54 1 no such table: mail_fti.AddressIndex_stat
08/22/2014 19:19:13 1 no such table: mail_fti.LocalMailsIndex3_stat
08/22/2014 19:21:19 1 no such table: mail_fti.SubjectIndex_stat
08/22/2014 19:21:19 1 no such table: mail_fti.AddressIndex_stat
08/22/2014 19:21:19 1 no such table: mail_fti.LocalMailsIndex3_stat
08/22/2014 20:05:43 1 no such table: mail_fti.SubjectIndex_stat
08/22/2014 20:05:43 1 no such table: mail_fti.AddressIndex_stat
08/22/2014 21:05:49 1 no such table: mail_fti.SubjectIndex_stat
08/22/2014 21:05:49 1 no such table: mail_fti.AddressIndex_stat
08/22/2014 21:05:56 1 no such table: mail_fti.LocalMailsIndex3_stat
08/25/2014 14:02:19 1 no such table: mail_fti.SubjectIndex_stat
08/25/2014 14:02:19 1 no such table: mail_fti.AddressIndex_stat
08/25/2014 14:42:34 1 no such table: mail_fti.LocalMailsIndex3_stat
08/25/2014 15:32:38 1 no such table: mail_fti.SubjectIndex_stat
08/25/2014 15:32:38 1 no such table: mail_fti.AddressIndex_stat
08/25/2014 15:32:38 1 no such table: mail_fti.LocalMailsIndex3_stat
08/26/2014 12:59:52 1 no such table: mail_fti.SubjectIndex_stat
08/26/2014 12:59:52 1 no such table: mail_fti.AddressIndex_stat
08/26/2014 12:59:57 1 no such table: mail_fti.LocalMailsIndex3_stat
08/26/2014 15:29:53 1 no such table: mail_fti.SubjectIndex_stat
08/26/2014 15:29:53 1 no such table: mail_fti.AddressIndex_stat
08/26/2014 15:29:59 1 no such table: mail_fti.LocalMailsIndex3_stat
08/26/2014 20:39:39 1 no such table: mail_fti.LocalMailsIndex3_stat
08/26/2014 20:39:47 1 no such table: mail_fti.SubjectIndex_stat
08/26/2014 20:39:47 1 no such table: mail_fti.AddressIndex_stat
08/27/2014 14:29:12 1 no such table: mail_fti.SubjectIndex_stat
08/27/2014 14:29:12 1 no such table: mail_fti.AddressIndex_stat
08/27/2014 14:29:17 1 no such table: mail_fti.LocalMailsIndex3_stat
08/27/2014 16:21:31 1 no such table: mail_fti.SubjectIndex_stat
08/27/2014 16:21:31 1 no such table: mail_fti.AddressIndex_stat
08/27/2014 16:21:35 1 no such table: mail_fti.LocalMailsIndex3_stat
08/27/2014 17:37:13 1 no such table: mail_fti.SubjectIndex_stat
08/27/2014 17:37:13 1 no such table: mail_fti.AddressIndex_stat
08/27/2014 17:37:52 1 no such table: mail_fti.LocalMailsIndex3_stat
08/27/2014 20:37:10 1 no such table: mail_fti.SubjectIndex_stat
08/27/2014 20:37:10 1 no such table: mail_fti.AddressIndex_stat
08/27/2014 20:37:19 1 no such table: mail_fti.LocalMailsIndex3_stat
08/27/2014 21:16:15 1 no such table: mail_fti.SubjectIndex_stat
08/27/2014 21:16:16 1 no such table: mail_fti.AddressIndex_stat
08/27/2014 21:16:16 1 no such table: mail_fti.LocalMailsIndex3_stat
08/28/2014 14:05:54 1 no such table: mail_fti.SubjectIndex_stat
08/28/2014 14:05:54 1 no such table: mail_fti.AddressIndex_stat
08/28/2014 14:06:34 1 no such table: mail_fti.LocalMailsIndex3_stat
08/28/2014 15:37:02 1 no such table: mail_fti.SubjectIndex_stat
08/28/2014 15:37:02 1 no such table: mail_fti.AddressIndex_stat
08/28/2014 15:37:02 1 no such table: mail_fti.LocalMailsIndex3_stat
08/28/2014 21:15:10 26 file is encrypted or is not a database
08/28/2014 21:15:37 26 file is encrypted or is not a database
08/28/2014 21:15:48 26 file is encrypted or is not a database
08/28/2014 21:15:57 26 file is encrypted or is not a database
08/28/2014 21:16:04 26 file is encrypted or is not a database
08/28/2014 21:16:46 26 file is encrypted or is not a database
08/28/2014 21:17:32 26 file is encrypted or is not a database
08/28/2014 21:17:53 26 file is encrypted or is not a database
08/28/2014 21:18:04 26 file is encrypted or is not a database
08/28/2014 21:18:09 26 file is encrypted or is not a database
08/28/2014 21:19:18 26 file is encrypted or is not a database
08/28/2014 21:21:33 26 file is encrypted or is not a database
08/28/2014 21:23:12 26 file is encrypted or is not a database
08/28/2014 21:38:17 26 file is encrypted or is not a database
08/28/2014 21:50:32 26 file is encrypted or is not a database
08/28/2014 21:50:56 26 file is encrypted or is not a database
08/28/2014 21:55:24 26 file is encrypted or is not a database

Hi, using eM Client on a network/shared drive and using the database with multiple eM instances is not supported, using the application with this setup results with a corrupt database.

Thank you for understanding,
Paul.

I constructed a solution… requiring another GPO and scripts.

RESULT is the ability to install and setup user accounts and preferences in EM Client normally – One time.

From then on, any person can use any other workstation, concurrently – without duplicated reconfiguration steps. 

Even account settings move with the person.

In other words, “Outlook-style” multi-user; multi-workstation including autoconfiguration.

Hi again, I’m glad you’ve found a solution, thank you for sharing it with other users, however note we still do not recommend using the directory on a shared disk space, and it may result in more issues with user’s database.
Please keep your files backed up, while using such setup.

Also note eM client’s free license is prohibited to be used in commercial/business environment, for using eM client for business you have to obtain a valid pro license.

Thank you for understanding,
Paul.

FYI…

In the last few days, I’ve had a chance to test EMC out quite a bit.  At present, I think MS Outlook & MS Live Mail (under whatever label) still works better. 

To your credit, your CalDAV/CardDAV appears to work pretty well.  Generally, Email handling is decent.    I especially like the fact that I can select a contact and get a ‘history’ for that contact in the far right pane.  THAT is very clever.

EMClient is a good start, but:

  1. First, I’m only running a personal, test environment.
  2. Public folders don’t work (Why can’t you do a simple IMAP LIST * * to get all accessible folders? Along with a subscribe/unsubscribe list?  Seems like a big oversight.  Should appear in Account settings & also on a right-click on an account list heading in the IMAP accounts left-side tree pane.)
  3. Cal/CardDAV – Should be able to right-click on an account list item in the left-side account tree pane to obtain a list of accessible folders for that account – instead of Tools->Accounts->Show.  Very awkward.
  4. No LDAP support – RFC inetOrgPerson would be sufficient including userCertificate, userSMIMECertificate, and userPKCS12 (RFCs 2798,3698, 4519, 4524).   Normally, this is used universally as a GAL and/or cert distribution point.  AT A MINIMUM, an import from LDAP would suffice.
  5. x509 Cert handling is horrible – even when I have certs distributed within AD or OpenLDAP, Personal, &/or Machine Certificate stores. 
  6. Gotta “import” certs directly into the EMC Application Store,… making x509 operations extremely cumbersome. 
  7. Likewise, x509 external certs *should* be stored in and retrieved from the Contacts/vCards (IMHO, all contacts should be a collection of vCard-based objects  converted to/from CardDAV, LDAP, local storage, or any other storage location).
  8. I have to manually trust every x509 cert.
  9. Encryption algorithms are obsolete/antiquated
  10. Encryption/Signing should be included as menu option(s) PLUS the little icons on the toolbar in the Email Composition window.  Visually, the icon ‘status’ lacks contrast making them ‘hard to read.’
  11. A means to provide system wide settings for all accounts and settings would be extremely useful for GPO or scripting operations – a scriptable utility program (preference: non-GUI command-line), API (PowerShell or WSH), or registry settings specification.  [Similar to what I’ve already done to solve the concurrency issue of the OP.]
  12. (I’ll let you know what else I find.)
    QUESTION:  Why do you put EMC databases in “…/Roaming?” if it cannot be accessed by the same user from two or more machines on a share?? 

(You mentioned “multi-instance” – I’m not talking about “multi-instance” which is a different subject altogether.)  

(Folder redirection is as common as a computer virus in a business environment.  One person using many workstations, often concurrently, with common data is a common use case of every business I’ve ever dealt with or been a part of.  In fact, that’s why MICROSOFT called it “Roaming.”  My scripts are a clean hack to a *very* ugly EMC problem. )

EMC can’t handle these common scenarios, with redirected folders, in the following tested cases without blowing up the EMC on every workstation the person uses:

  1. same user uses the same Windows AD login account on two or more workstations, each running single instance of EMC on each workstation – concurrently; and,
  2. same user using same Windows AD login account on two different workstations but alternating the execution of EMC on either workstation (but NOT concurrently). 
    Results are Catastrophic.  Any business will discover this on Day 1 or Day 2 like I did.  Even tho I devised a hack for the one-user-many-workstation problem, the hack doesn’t make the technical situation any better. 

There’s an old saying, “You can get used to hanging if you hang long enough… but, sooner or later, you still get tired of hanging.”

Personally, I don’t have any reservations about paying for or recommending a good program that works… but, it seems to me that EMC should have working solutions to the issues described for a “commercial/business” environment. 

AS-IS, EMC is probably good for a home user; but, not for most businesses.

OTHER QUESTIONS:

What does “VIP response” mean? 

Will a “VIP response” include “you’re absolutely right and we’re working on it!  It’ll be ready in version 6.1”  OR

Will the “VIP response” be “It’s not supported and never will be?”

Serious questions.

Hi again,
Unfortunately using eM Client with ActiveDirectory where database profiles are shared between multiple workstations is essentially unsupported at the moment.
Especially the first case is not supported and will result in a corrupt database files.

The Roaming folder can be copied anywhere on your computer, there’s a setting for this in the Settings.
Sharing the database between multiple users is not supported, even when using active directory there’s a large number of possibilities where this results in a broken database especially when a user signs in on two computers and the database is then synchronized from two workstations.

We believe eM Client can be used in business environment, but unfortunately not using this setup.
Each user has to have it’s own database that’s accessed by one user at a time, synchronizing and moving the database can again result in database issues.

As to your other questions, we guarantee a 24-hour response during business days for our PRO license customers. Including remote desktop troubleshooting etc.
But as it goes for feature requests and issues, if an issue is reported we’re always working as hard as we can to fix it as soon as possible.
Feature request are considered individually.

Hope this helps,
Paul.

Repeat:  There’s an old saying, “You can get used to hanging if you hang long enough… but, sooner or later, you still get tired of hanging.”

>>> Sharing the database between multiple users is not supported <<<

I’m not talking about sharing the database among multiple users.

I *AM* talking about a single user using multiple workstations.  De facto, the same user can’t be running EMC on two different workstations (with redirected folders).

Why?  Because GPO has redirected the user’s folders to a network share.  Why?  So the user has all of his daily business files and data (including **access*** to his email, calendar, tasks, and contacts) – no matter what workstation he uses; and, also, sysadmins can make backups of all users’ data  every night. 

THIS IS A NORMAL “COMMERCIAL/BUSINESS” ENVIRONMENT.

>>> even when using active directory <<<

I’m wondering if you know how GPO folder redirection works.

>>> user signs in on two computers and the database is then synchronized from two workstations. <<<

Folder redirection is not the same as Roaming with resync.  Folder redirection, when set up as folder redirection… and not roaming, is a totally different situation.

This is the reason I pointed out in the OP that EMC should check its implementation of locking. SQLite does support it. EMC should also change the default location of the initial database it creates – to somewhere other than the ~/Roaming folder on the local PC under the user’s home folder. 

Hence, EMC’s database isn’t really a database – it’s really a local cache of email/contact/calendar data.  So, I’ll call it the local cache.  The downside to SQLite is the lack of row locking; thus, requiring segregation of the local caches versus relatively-static database of EMC settings for a particular user (e.g. EMC account setups and program settings.)

The problem is that EMC sets itself up for roaming… so, it commits suicide!  EMC default local cache (aka “database”) folder is wrong.  "RTFM." 

http://technet.microsoft.com/en-us/library/cc766489%28WS.10%29.aspx

The AppData folder contains three subfolders: Roaming, Local, and LocalLow. 

Windows uses the Local and LocalLow folders for application data that does not roam with the user. Usually this data is either machine specific or too large to roam. The AppData\Local folder in Windows Vista is the same as the Documents and Settings\_username_\Local Settings\Application Data folder in Windows XP.

_This is also where a non-GUI command line util for setting system defaults for EMC would be extremely useful. Then, you [EMClient,Inc] don’t have to worry about it. You don’t have to interfere with a system administrator, either; nor would you need to issue bizarre edicts on how to setup a business system. EMClient, Inc would only need to answer questions about EMC in the home user arena – instead of the business operating environment.  Most sysadmins are usually pretty smart. This was also Microsoft’s primary engineering goal of a “user profile” – roaming or not.

A flexible non-GUI scripting utility would permit a sysadmin to make system policy-type settings and automatically pre-configure the EMC.    The sysadmin could change any setting(s) or storage location without needing to hack the content of main.dat or settings.xml – now or in the future.  (There’s a couple of good ways to do it – but, neither is possible without constructing a hack, de facto – whether composed of scripts, registry settings, GPOs, or any combination of the foregoing.)_

_Personally, I couldn’t care less about “local folders” (or storage) of EMC – because the data that users really want is maintained on the mail/caldav server(s), anyway.  That’s the stated goal and motivation for inventing both IMAP and Cal/CardDAV systems.

FOOTNOTE:  Generally, Business users who use Outlook/Exchange don’t even use PST files unless they are mobile – that is, “portable” and outside of the wired network.  All storage is maintained on the Exchange Server(s).  In fact, no sysadmin worth his salt uses “Exchange Caching Mode”, either.  “Personal folders” isn’t even used.   HINT:  Try logging into a user’s workstation who has 50GB of email.

COST BENEFIT ANALYSIS:  I hacked a solution in ~12 hours.  But, I wouldn’t want to be a sysadmin who has to do that with every release of EMC.  If I had your source code (nothing implied, here), I could create a complete non-GUI utility for use in administrative scripts in no more than 2 days.  The util should be distributed with every PRO license._
CONCLUSION:  There’s an old saying, “You can get used to hanging if you hang long enough… but, sooner or later, you still get tired of hanging.”

Time for a “VIP response.”  (The problem described isn’t just a bug; this is a SNAFU.)

The roaming profile situation is very unfortunate. The database is located in the roaming AppData folder largely for legacy reasons and we may be able to fix that for version 7, but probably not earlier. It is possible to manually specify the database location in the current version using a “/dblocation c:\some\location” command line parameter, which could be used as a workaround.

SQLite locking is not really applicable to our situation. Firstly, it is not reliable on network drives (http://sqlite.org/howtocorrupt.html, section 2). Secondly, we cache some things in memory and there are no notifications of external changes to the database. This is a limitation that can’t be worked around. Even if the the database is not corrupted at the file level by the simultaneous use (which evidently happened in your case) it gets internally inconsistent by using two application instances both trying to download the same messages at the same time.

We are well aware of the deficiencies in the certificate handling and we definitely plan to improve our support in the future. Let me answer some of your points directly:

  1. We’ll be happy to offer not-for-resale license for the testing. Just send us a note to sales@emclient.com.

  2. We don’t issue IMAP LIST “” “*” because it is discouraged by the protocol authors and it actually hurts performance in some use cases with public/shared folders (http://imapwiki.org/ClientImplementation/MailboxList). Unfortunately the reality is that most of clients do it anyway and as a consequence lot of servers misimplement the “%” wildcard we use. Also there’s a NAMESPACE command which specifies where shared/public folders are located, which is optional and not supported by all servers. The situation is even more complicated by the fact that sometimes the private and public folders are mixed in the same folder hierarchy level (eg. there’s “INBOX”, “Sent” and “Public Folders” listed using the IMAP LIST “” “%” syntax) and other times there are different hierarchies (eg. “INBOX”, “INBOX.Sent” and “Public Folders”, where all private folders are listed under “INBOX”). It’s not trivial to handle all the cases and we support some, but don’t support others. Depending on a specific server we may be able to offer workaround to get public folders working.

  3. On CalDAV/CardDAV we display all the personal folders, so I believe you are speaking of the delegated accounts. It is actually accessible by right-clicking on the account name in the calendar/contacts list and selecting “Delegation”.

  4. We receive requests for LDAP support from time to time, but so far we didn’t commit to implement it for several reasons. Most of the enterprise servers that support CardDAV also allow mirroring the LDAP through CardDAV, so GAL is accessible that way. On Exchange we query the GAL through EWS protocol and we are currently adding support for offline GAL access using their Offline Address Book protocol, which is supported on all Exchange servers (Office 365 doesn’t offer LDAP). And on Google Apps there’s also custom protocol. The situation is that for Oracle, Apple, IceWarp, Google, Exchange and some other servers we are able to access GAL without LDAP support. Certificate distribution points are another use case which we may consider in future.

5), 6) Can you be a little more specific? We support querying the Windows certificate stores in addition to our private certificate store.

  1. You are absolutely correct. We plan to implement associated certificates with contacts (in the vCard format), but the priority is largely dependent on how many users request it. Feel free to open a feature request for that on the forum.

  2. Can you be more specific? That’s what trust chain is for.

  3. We support newer algorithms for received emails and for newly issued certificates. Please be more specific which algorithm are you missing.

  4. There are already icons in the toolbar and items in the menu. I don’t know what you are referring to.

  5. We do offer some form of scripting for new installation and for globally changing settings within organization. Please contact our support for details (support@emclient.com).

QUESTION #1:  Do you have any documentation of ALL command line parameters including “/dblocation”?

QUESTION #2a:  How about non-GUI utilitity as described above?  (IMHO, this is much more valuable. )

The database is located in the roaming AppData folder largely for legacy reasons

Yup… Since MS Windows Vista.

This is a limitation that can’t be worked around.

FYI… I’ve written hundreds of thousands of lines C/C++ code during a very LONG career.

I know, otherwise.

The key to solving it is contained in my prior comment:  “The downside to SQLite is the lack of row locking; thus, requiring segregation of the local caches versus relatively-static database of EMC settings for a particular user (e.g. EMC account setups and program settings.)”  BY SEGREGATING, EMC CAN “SHARE” THE COMMON USER SETTINGS AND KEEP THE CACHES ONLY ON THE DEDICATED LOCAL MACHINE.

SOLUTION: 

  1. Make sure you segregate the database of relatively static data – that is, account setups and program settings (generally, Tools->Settings or Tools->Accounts) – from the non-static caches. 
  2. Only open this quasi-static database(s) as read-only and reopen for write ONLY when you need to actually perform a write operation (e.g. when a user has actually made changes (dirtyflag) and clicks OK or Apply.)  Problem solved. 
  3. Re-read your config (aka reinitialize). 
  4. Reopen the EMC-SQLite config database when finished and keep in memory/global variables.
  5. Monitor changes.   (http://www.sqlite.org/unlock_notify.html)
  6. Problem Solved.
    END RESULT:

When you incorporate some of the other features I mentioned, you WILL have a “business-ready” program.

CONCLUSION:

EMC is a good program – or I wouldn’t even be looking at it.   HOWEVER, it has a few glaring shortcomings that *could* be easily cured with a little thought and not a lot of effort. 

SO… as it stands, in my opinion, you need these things:

  1. the non-GUI util for sysadmin configuration for the reasons described, previously; and,
  2. x509 issues cleaned up; and, 
  3. add LDAP support should be a top priority, too (at a minimum, import – including certs w/lookup) .

THEN, EMC will be approaching “greatness.”  With those changes/corrections/additions, your PRO license revenues might increase, greatly.

The “roaming folder issue” *must* be fixed, ASAP – regardless.  I suspect that will probably solve a lot of other user complaints that I’ve reviewed here, too.

Keep up the good work.  (I know that responding to the usual user complaints can be taxing on a developer’s soul.)

Best regards, Filip. You’re doing good!

2) We don’t issue IMAP LIST “” “*” because it is discouraged by the protocol authors and it actually hurts performance in some use cases with public/shared folders (http://imapwiki.org/ClientImplementation/MailboxList).

FACT:  Typical company size in the entire world is 1-500 employees.  ~95% of all companies in the world.  Forget the Fortune companies – they are using MS and there’s not much anyone is going to do to change that.  For 95% of all PRIVATE SERVERS, IMAP LIST * * takes 5 milliseconds. 

Ignore the technical warning.  80386/P90s and 40MB disks @$9000 were the norm when that was written – not dual quad-cores behemoths with 128GB of RAM and a few multi-TB drives @ $3,500.  10,000 employees or more???  You are talking about Fortune 50s.  Forget them.  You aren’t going to sell it to MS.  You aren’t going to sell it to IBM.  You aren’t going to sell to JP Morgan.  IF FOR SOME CRAZY REASON you actually DID sell to one of them… a command line util or the IMAP server sysadmin can “turn it off.”  Regardless, these companies are going to use Outlook.  Only MS bankruptcy will change that.

BEWARE OF AGGRESSIVE SALESMEN WANTING TO “CAPTURE” A FORTUNE DEAL.  AS A PROGRAMMER, THE SALESMAN WILL ***  ENSLAVE *** YOU… THE PROGRAMMER.  Been there, done that.  (Don’t say I didn’t warn you!)

Personally, I prefer Cyrus IMAP.  From a technical perspective, Cyrus did it “right.”  It’s a “database of queues.”  And it can scale from small operations to large, multi-location operations.  I’ve studied and tried several others, too.  Cyrus ‘wins’ for me even tho I’ve been tempted to clean up a few pieces of code – but it works well!  (No, I don’t use the newest CalDAV in Cyrus… Interesting… but… my verdict is still out on that one.)

SHORT AND SWEET:  IF the IMAP server adheres to the RFCs - great!  Caveats can be issued to those who use non-RFC features or “rare” features.  RFCs are subject to a certain amount of interpretation… you’ll always have that issue.

3) On CalDAV/CardDAV we display all the personal folders, so I believe you are speaking of the delegated accounts. It is actually accessible by right-clicking on the account name in the calendar/contacts list and selecting “Delegation”.

Not. Delegating lets me actually DO the sharing… not subscribe to it (aka “use it”) while on another machine under a different login.

I’m talking about subscribing to other user’s shared folders (ACL = read/list or better).  AN/OR, global resources configured by a sysadmin.  ACLs set by admin.

OTHER’s folders (and global resources) are only made available from the Cal/CardDAV Account Settings->Show. 

The right-click “list feature” would work just like subscribing to an available IMAP folder.  Your current code for Account->Show can probably be adapted.

4…10…
I have a simple idea… 

I’ll have to go thru “the steps” and address them under separate cover.

11…

I’ll have to check into it.  Tnx.

ANOTHER FIX:  I noticed that passwords are stored in as plain text…

ANOTHER ISSUE:  Seems EMC has difficulty when logged in as a non-administrative user, too.

ANOTHER ISSUE:  When a user’s profile/database (EMC profile) becomes corrupted and unrecoverable, the only ‘quick’ fix is to wipe out the user’s profile () and remove the profile from the System Registry (ProfileList). Of course, this also means copying all the user’s documents and other settings to the new (nothing “quick” about that).

LAST COMMENT ON THIS SUBJECT:

I’ve reviewed 123 webpages of problem logs regarding database corruption.  My suspicion is that 75% of them are related to this issue.  

FIXING THIS SNAFU should halt all other development and bug fixes.

Software is supposed to be reliable.  Software that cannot write to disk without self-corrupting is a disaster.

In the old days, we said we’d give it the “three-finger salute.”

Whether it be a house with a broken foundation or a car with a bad motor… The buyer is never happy; and usually – angry.