在开始Silverlight程序时有可能会用到发邮件
于是就在想到调用outlook来进行发邮件
由于从网上找些资料完成了
现在调用发邮件基本没有问题了
注意得引用一个dll【Microsoft.CSharp】,因为要用到 dynamic所以要引用
private static dynamic outlook;
private static bool InitializeOutlook()
{
try
{
//如果当前已经打开了Oulook应用,直接获取。
outlook = AutomationFactory.GetObject("Outlook.Application");
return true;
}
catch (Exception)
{
try
{
// 启动Outlook应和程序,并显示
outlook = AutomationFactory.CreateObject("Outlook.Application");
outlook.Session.GetDefaultFolder(6).Display();
outlook.ActiveWindow.WindowState = 1; //小窗体模式 minimized
return true;
}
catch (Exception)
{
// 启动outlook出现在异常,退出,可能是没有安装或其它原因。
return false;
}
}
}
///发送邮件操作
public static bool SendEmail(string mailTo, string subject, string body, bool autoSend)
{
if (!InitializeOutlook())
{
return false;
}
try
{
//Microsoft.Office.Interop.Outlook.NameSpace
dynamic email = outlook.CreateItem(0); //0: olMailItem 动态创建一个发邮件对象
email.To = mailTo; //收件人
email.BodyFormat = 2; //2: olFormatHTML
email.Subject = subject; //邮件标题
email.HTMLBody = body; //内容
if (autoSend) //自动发送邮件
{
email.Send();
}
else
{
email.Display(false);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return false;
}
return true;
}
发件邮件界面,发送完后,可以到Outlook的已发送邮件可以找到刚才发送的邮件。
看是不是真的发送去了
收取一下邮件,可以在outlook的收件箱里看到刚才发送的邮件了。
没有想到 在silverlight下调用outlook还是挺方便的.