Basic Idea: Create and ASP.NET application to do webmail. The only challenge here is that almost all documentation related to CDO and other email related technologies from Microsoft assume that one's email lives on an Exchange server, whereas I have Outlook running and just connecting to a POP server. So all my mail is stored in a .pst file rather than an Exchange mailbox.
The problem with CDO and friends is that they implicitly access the current users Outlook profile, but as a web application running under the ASPNET account, I need to be able to access the email of whoever is logging in in over the web.
My first attempt to handle this involved trying to impersonate the user. That ran into problems with trying to get HKEY_CURRENT_USER to refer to the registry hive of the person coming in over the web, rather than the ASPNET registry hive.
My second attempt involved using HTTP based authentication to get the ASP.NET code executing as the user in question. I briefly had a problem here because ASP.NET does not support user impersonation in its default configuration. So you need to put a web.config file into the directory that holds the application and that config file needs to explicitly turn impersonation support on.
With this in place, I was able to create an Outlook.Application object and use it to access the contents of my Inbox. However, it appears (based on various experiments that I have done) that Outlook.Application is a machine-wide singleton. Once you create it and bind it to a particular user, no other user can do anything with Outlook. For example, with no one signed on to the machine I used my service to come in over the web from another machine and view email for account TestUser. I then log on to the machine running the web server as myself and attempt to start Outlook (the application). It will not start. It displays a message box that says that the server is unavailable. Furthermore, the machine appears to stay in this state until re-booted. That is, once a use has come over the web and accessed mail as user XXX, it appears that Outlook.Application is bound to that user until the machine re-boots (or perhaps IIS is re-started... I did not try that).