Accessing Hotmail using C#

Building the Client

To build the client two components need to be created:

  • A proxy that is able to ‘speak' Httpmail and is able to do HTTP authentication as described in the RFC.
  • The actual client that accesses Hotmail via the proxy and uses XPath for parsing of the responses.

Instead of building a custom proxy another method could be used. Microsoft ships a component called XmlHttp that is able to make XML based HTTP requests. The use of this class presented several problems:

  1. A request for a limited amount of properties, such as the msgfolderroot, returns all the possible responses for that request. So a query to obtain only the msgfolderroot would return information about all the mailboxes. This isn't fatal of course but it does show that the class could use some work. The proxy class that is built in this document does not show this problem.
  2. The component generates weird looking HTTP packets. For instance, the query is placed in the HTTP headers, it should be sent as a data section. This will probably result in erroneous server responses, and may be causing problem 1.
  3. Most importantly; the component will not work for some email addresses, while the only configuration that can be made is the username and password. This problem is the biggest show-stopper when using XmlHttp.

Before reading the rest of this document; I assume that you have basic knowledge of the following subjects:

  • HttpMail
  • XPath
  • Basic C#
  • Cookies

Please note that the code is fully documented in the source files.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“There's no test like production” - Anon