在 winfrom 中弹出outlook 并添加附件
2011-11-22 21:03 哒不溜 阅读(459) 评论(0) 编辑 收藏 举报这段时间在公司修改一个前辈们做过的测试工具:test client。需要在该工具中添加一个功能就是点击按钮是弹出outlook界面,并添加附件:刚开始的直接用
简单的方式实现的,现贴出分享如下:
microsoft.win32.registrykey rkey = microsoft.win32.registry.classesroot.opensubkey(@"mailto\shell\open\command");//这里我们查找系统的缺省邮件客户程式,其他的客户程式我没有试验过,不知道这种方式是否可行
if(rkey != null)
{//这里查找outlook应用程式所在位置,也能够用其他方式去查
string path = rkey.getvalue("").tostring() + " ";
path = path.substring(0, path.indexof(" "));
path = path.replace("\"", "");
rkey.close();
try
{
system.diagnostics.process.start(path, "-c ipm.note /m myfriend@hotmail.com&subject=hello " + this._imagepath);//调用执行outlook,主要注意后面的参数,附件的文档地址空格隔开
}
catch
{
}
}
但是这样打开outlook界面后只能添加一个附件而且非常不灵活!于是就用了另一种方法:
调用COM组建来完成对outlook的操作。
1.导入 Microsoft.Office.Interop.Outlook
2.代码如下:
private void SendEmailtoContacts(List<string> AttachmentPath, string Subject)
{
try
{
Microsoft.Office.Interop.Outlook.Application outlookObj = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MailItem Item = (Microsoft.Office.Interop.Outlook.MailItem)outlookObj.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
//Microsoft.Office.Interop.Outlook.MailItem Item = outlookObj.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
//Item.To = "zhangzhx@inspur.com";
Item.Subject = Subject;
//Item.CC = "Task Client";
//Item.Body = "hello";
for (int i = 0; i < AttachmentPath.Count; i++)
{
Item.Attachments.Add(AttachmentPath[i].ToString());
}
Item.Display(true);
}
catch (System.Exception ex)
{
}
}
感谢大家指点
我个人QQ:1791786556
讨论QQ群:
WPF学习交流:699150554
WPF/UI 界面开发:527847154
WPF控件编程:699191787