That code uses the MAPI API from CDO directly, rather then instantiating Outlook, because you get CDO with installing Outlook anyway, and it was forbidden to have Outlook on a server I wanted to run that on, so I broke the spirit of the law while abiding to it by installing Outlook, and immediately uninstalling it again (with leaving the "shared component" CDO intact.)

To have a successful MAPI-Login I had to use Win32::OLE qw(EVENTS);, because otherwise the used threading model was not suitable (NB: I don't know what that actually means. It was just some necessary cargo cult programming to get it working ;-))

There are more gotchas accessing items in MAPI folders (see my comments in the code)

This ran on W2K3. I have no idea, if Vista makes the whole thing even more challenging.