I've done something similar to what you're describing as part of a project. It involved a system similar to outlook. I used QTP to compose a "message" at the client side, and send it.
Then I had to validate the server actions with the message. this was done in 2 ways :
A. QTP hooked up to the server's event-log (I used .Net libraries via DotNetFactory for that). It then searched for events that the server raises when it processes a message.
B. QTP uses VBScript to hook up to the server file-system, and made sure the .tmp file representing the message was deleted (and therefore the message was processed).
Don't know if you face a similar situation, but in general, hooking up with the event-viewer / system log on the server is one of the best ways I've found to monitor a processes via QTP.