The following sample code shows how to send emails from Outlook and Exchange using C#. This code works with any version of Outlook because it uses Late Binding to automate Outlook. Parts of the code where taken from other websites.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; using System.Threading; namespace LateBindingTest { class OutlookEmailerLateBinding { private object oApp; private object oNameSpace; private object oOutboxFolder; public OutlookEmailerLateBinding() { Type outlook_app_type; object[] parameter = new object[1]; //Get the excel object outlook_app_type = Type.GetTypeFromProgID("Outlook.Application"); //Create instance of excel oApp = Activator.CreateInstance(outlook_app_type); //Set the parameter which u want to set parameter[0] = "MAPI"; //Set the Visible property oNameSpace = outlook_app_type.InvokeMember("GetNamespace", BindingFlags.InvokeMethod, null, oApp, parameter); var Logon_parameter = new object[4] { null, null, true, true }; oNameSpace.GetType().InvokeMember("Logon", BindingFlags.InvokeMethod, null, oNameSpace, Logon_parameter); var GetDefaultFolder_parameter = new object[1] { 6 }; oOutboxFolder = oNameSpace.GetType().InvokeMember("GetDefaultFolder", BindingFlags.InvokeMethod, null, oNameSpace, GetDefaultFolder_parameter); Console.WriteLine("Press enter to exit"); } static void Main(string[] args) { //Variable try { OutlookEmailerLateBinding app = new OutlookEmailerLateBinding(); app.SendOutlookEmail("yourname@gmail.com", "Test 1 2 3", "Test message. Testing."); } catch (Exception e) { Console.WriteLine("Error Stack {0} ", e.Message); } Console.ReadLine(); } public void SendOutlookEmail(string toValue, string subjectValue, string bodyValue) { var CreateItem_parameter = new object[1] { 0 }; object oMailItem = oApp.GetType().InvokeMember("CreateItem", BindingFlags.InvokeMethod, null, oApp, CreateItem_parameter); var mail_item_type = oMailItem.GetType(); mail_item_type.InvokeMember("To", BindingFlags.SetProperty, null, oMailItem, new object[] { toValue }); mail_item_type.InvokeMember("Subject", BindingFlags.SetProperty, null, oMailItem, new object[] { subjectValue }); mail_item_type.InvokeMember("Body", BindingFlags.SetProperty, null, oMailItem, new object[] { bodyValue }); mail_item_type.InvokeMember("Send", BindingFlags.InvokeMethod, null, oMailItem, null); } } }
Comments