Thank you.
I truly am amazed at Microsoft. I posted my question on anther outlook related forum and I was directed to post my question here. If Microsoft does not know what forum is the most appropriate for a question, God help all of us.
Anyway, I have debugged our code a lot deeper and it seems like Microsoft has made changes to their Outlook object model behaviour. In previous versions of Outlook, versions prior to 16.0.13929.20206, accessing mail item's inspector using MailItem.GetInspector method was perfectly fine and was not causing any errors whatsoever anywhere around our code. However, they have, for some God unknown reason, changed their Outlook object model so that sending emails after accessing the inspector object for mail items that have not been displayed to the user will crash and burn despite the fact that the inspector object exists and is attached to the mail item.
I have put some code on our DLL that will check the EntryId of the mail item and only accesses the inspector object if it is set. I have tried this in some simple cases and it seems to have fixed the issue. I will build our application and release it internally with this fix and check all possible scenarios and see if it works in all cases. I will get let you know if this has not fixed the issue in all cases.
One should ask though, why o why do you do this Microsoft? I hope someone will report this to their developers and it gets fixed.
Thanks for your response and have a great day.