網絡上講的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 myfriend@hotmail.com&subject=Hello " + this._imagePath);//調用執行Outlook,主要注意后面的參數,附件的文件地址空格隔開 } catch { }
|