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