方法1.该方法需要注册MSMAPI32.OCX并添加MSMAPI的引用,可能出现无法调出outlook的情况,需要设置outlook为默认的邮件程序。
SendEmail("a.txt", "C:\\a.txt", " ", " ");
private void SendEmail(string filename, string filelpath, string title, string body)
{
try
{
MAPISession MAPIS1 = new MAPISession();
MAPIMessagesClass MAPIM1 = new MAPIMessagesClass();
MAPIS1.NewSession = true;
MAPIS1.LogonUI = false;
MAPIS1.DownLoadMail = false;
MAPIS1.SignOn();
MAPIM1.SessionID = MAPIS1.SessionID;
MAPIM1.Compose();
MAPIM1.AddressResolveUI = true;
MAPIM1.AttachmentIndex = 0;
MAPIM1.AttachmentPathName = filelpath;
MAPIM1.AttachmentName = filename;
MAPIM1.MsgSubject = title;
MAPIM1.MsgNoteText = body;
MAPIM1.Send(true);
MAPIS1.SignOff();
}
catch (Exception ex)
{
}
}
方法2,调用OUTLOOK.EXE,注意参数
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, "/a \"C:\\Temp\\aExportFiles.zip\"");//调用执行Outlook
}
catch
{
}
}