<p>I'd like to calculate the age of the messages in an Exchange mailbox to make sure they sit there for at least a minute before our program (C++, MAPI) processes them. This way the <a href="http://www.cloudmark.com/server/" rel="nofollow noreferrer">spam filter we use</a> should have enough time to do its job.</p>

<p>Because the time on the PC where our program runs might be different from the time used by the Exchange server, our program has to read the server time via MAPI. </p>

<p>Is there an elegant solution to it? One way I can think of is to modify some Item and immediately read its <em>PR_LAST_MODIFICATION_TIME</em>, but I'd like to avoid that.</p>

<p><strong>Edit:</strong><br>
Our program is a batch job that runs every 10 minutes and reads the journal mailbox.</p>

You can use
```
PR_MESSAGE_DELIVERY_TIME
```
.
As per
MSDN
:
The
```
PR_MESSAGE_DELIVERY_TIME
```
property describes the time the message was stored at the server, rather than the download time when the transport provider copied the message from the server to the local store.
Other than that - when your solution runs on the client anyway - why not use the client time in the first place? Incorrect clock or not, for relative times (e.g. "one minute after ...") this should make no difference.