For those of use who have fought with Exchange account permissions, here is a concise description of the minimum requirements for service account setup to access mailboxes...
 
To learn more about the "Exchange View Only Administrator" role, check out this KB article...
 
A number of our issues involving Exchange Event Service Scripts specifically deal with proper service account setup rather than coding changes.  Proper service account setup that provides MINIMUM access needed for your application to function is a part of most every solution written for Exchange.  This is good stuff to know...