網絡上講的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
{
}
}