private static extern MapiSendMailReturnCode MAPISendMail(IntPtr session, IntPtr hwnd, MapiMessage message, MapiSendMailFlags flags, int reserved);
private static MapiSendMailReturnCode SendMailW(SystemEmailClients.MapiSendMailDelegateW mapiSendMailW, EmailMessage message, MapiSendMailFlags flags) { using (var files = Unmanaged.CopyOf(GetFilesW(message))) using (var recips = Unmanaged.CopyOf(GetRecipsW(message))) { // Create a MAPI structure for the entirety of the message var mapiMessage = new MapiMessageW { subject = message.Subject, noteText = message.BodyText, recips = recips, recipCount = recips.Length, files = files, fileCount = files.Length }; // Send the message return(mapiSendMailW(IntPtr.Zero, IntPtr.Zero, mapiMessage, flags, 0)); } }