网络上讲的C#调用Outlook界面发送邮件的例子举不胜数,但都是将调出简单的界面,设置收件人地址、邮件标题、正文内容等,但对于发送指定附件的说明非常少。也有实现的,却是采用引入Outlook对象库,我不想只为了如此一个小功能去引入那么大个东东,太恶心!刚好也想给CrossFile2.0加入这个小功能,于是乎昨晚仔细研究了下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 [email protected]&subject=Hello " + this._imagePath);//调用执行Outlook,主要注意后面的参数,附件的文件地址空格隔开
}
catch
{
}
}
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 [email protected]&subject=Hello " + this._imagePath);//调用执行Outlook,主要注意后面的参数,附件的文件地址空格隔开
}
catch
{
}
}
解决方案 »
- 要使用C#实现以下关于年月的循环
- C# 要获取网页由 js 或asp 产生的内容怎么办呢?
- 救命啊。。。。CHessianProxyFactory调用提示 远程服务器返回错误: (501) 未实现
- DataGrid控件對數據進行刪除
- (高手请进)关于BSTR类型
- 大家快來原來CSDN有後門?輸入帳戶:ADMIN密碼:ㄩP{ˋ◎#C
- 请问高手C#B/S系统中,我按F5刷新后怎么会页面返回到主窗口的主页,主窗口采用的是框架。
- 用.net2010开发的winform,如何才能生成脱机安装的setup.exe程序?
- C# 调制解调器自动拨号解决
- 从c++Builder到vs.net难吗?
- c#里怎么使用VBA?急呀,这是我的代码,知道的兄弟给指点一下!
- Crystal Report 9 安装后的兼容问题。
有时间给大家弄个例子了。
我的问题搞定了,过程是这样的:
我卡住时用的是Outlook 2003,现在用的是2000,查资料说这种安全机制好象是2003和xp上新加的,用2000后就没有再跳出对话框了,不晓得你用的是否Outlook 2003或xp?试一下吧.