If you do not want to use Redemption (others have already advised, so I think you will not), you have another option that I can assure will be much more painful to implement. Basically you will need to create an add-in instead of an external program. An add-in can do anything in Outlook without receiving these messages. You can probably make the add-in as a simple server - do what you need by receiving commands from the outside world (in case you cannot do everything you need to do from Outlook). Perhaps you can remove the WCF service (IPC or Inter Process Communication, which acts as shared memory between two processes). Please note, however, that you will probably be better off if you just use Redemption or just an add-on. Connecting Outlook with an external process is a pain, and it gets worse because Outlook classes are not serializable. Thus, basically, you will need to add data transfer objects for each class that you need to access through your application.
Perhaps if you decide this, it will be a little easier to implement, but it is still a problem.
source share