要怎麼在 C# 中操作 OutLook 呢? 雖然 C# 並沒有直接的提供收信的元件,但是我們仍然可以透過
OFFice 提供的 Outlook 元件來存取、操作 OutLook ,首先要把元件加入參考,如下圖所示:
我們會在參考中發現到多了一個 Outlook 的參考
現在我們就可以開始操作囉....
Outlook.Application Mailapp= new Outlook.ApplicationClass();
Outlook.NameSpace mailspace=Mailapp.GetNamespace("MAPI");
Outlook.MAPIFolder mfolder=mailspace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
mfolder.Items.Sort("[ReceivedTime]",false);
string MailSubject="";
long mailcount=mfolder.Items.Count;
for (int i=1;i<mailcount;i++)
{
object item = mfolder.Items[i];
Outlook.MailItem mi = item as Outlook.MailItem;
if(mi != null)
{
if (mi.Subject ==null)
{MailSubject="";}
else
{MailSubject=mi.Subject.ToString();}
textBox1.Text+=mi.ReceivedTime.ToString()+" - "+MailSubject+"\r\n";
if (MailSubject=="給王小明的主旨")
{
Outlook.Attachments ii=mi.Attachments; //檢查有無附件
for (int x=1;x<=ii.Count;x++)
{
Outlook.Attachment aa=(Outlook.Attachment)ii[x];
aa.SaveAsFile(@"d:\"+aa.FileName); //有的話就存檔
}
break;
}
}
}
// 取得Folder 的另一種方法
// foreach(object item in mfolder.Items)
// {
// Outlook.MailItem mi = item as Outlook.MailItem;
//
// if(mi != null)
// {
// if (mi.Subject ==null)
// {MailSubject="";}
// else
// {MailSubject=mi.Subject.ToString();}
//
// //textBox1.Text+=mi.ReceivedTime.ToString()+" - "+MailSubject+"\r\n";
// if (MailSubject=="給王小明的主旨")
// {
// Outlook.Attachments ii=mi.Attachments;
// for (int x=1;x<=ii.Count;x++)
// {
// Outlook.Attachment aa=(Outlook.Attachment)ii[x];
// aa.SaveAsFile(@"d:\"+aa.FileName);
// }
//
//
//
// break;
// }
//
//
//
//
// }
// }
mailspace.Logoff();
mfolder=null;
mailspace=null;
Mailapp =null;
以上和大家分享...
沒有留言:
張貼留言