The "Could not access 'CDO.Message' object." exception is usually a wrapper for a more descriptive exception - have a look at the exceptionInstance.InnerException property, or easier still - Console.WriteLine(exceptionInstance.ToString()), to get the real problem.