用C# 写winform项目,要访问outlook 2003,并下载邮件中的附件,从网上找了一些相关资料,自己写了一个方法,如下:
private void download_Email(string Email)
{
try
{
Outlook.Application olApp;
Outlook.NameSpace olNs;
Outlook.MAPIFolder olInFolder;
Outlook.MailItem olMItm;
olApp = new Outlook.ApplicationClass();
olNs = olApp.GetNamespace("MAPI");
olNs.Logon(null, null, false, false);
olInFolder = olNs.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);//Inbox是收件箱,OutBox是发件箱
for (int i = 1; i <= olInFolder.Items.Count; i++)
{
olMItm = ((Outlook.MailItem)(olInFolder.Items[i]));
int count = olMItm.Attachments.Count;
//bool unRead = olMItm.UnRead;//为true时为未读,为false时为已读
if (olMItm.SenderEmailAddress.ToString().Equals(Email) && count > 0)//unRead &&
{
Directory.CreateDirectory(BackupFolder_Url + olMItm.SenderEmailAddress.ToString());
//olMItm.UnRead = false;
for (int j = 1; j <= count; j++)
{
//olMItm.Subject.ToString();//邮件的标题
//olMItm.Body.ToString();//邮件的内容
//olMItm.SenderName //发件人名称
//olMItm.To.ToString() //收件人的邮箱名称
//olMItm.Recipients[1].Name //收件人的邮箱名称
//olMItm.MessageClass //"IPM.Note"
//olMItm.Recipients.Count //是所有收件人的数量
//olMItm.CC //是抄送
//保存附件的代码如下:
try
{
olMItm.Attachments[j].SaveAsFile(BackupFolder_Url + olMItm.SenderEmailAddress.ToString() + "//" + olMItm.Attachments[j].DisplayName);
}
catch (Exception exc)
{
break;
}
//olMItm.Attachments[j].DisplayName;//附件的文件名
//olMItm.SenderEmailAddress.ToString();//发件人的邮件地址
}
olMItm.Move(olNs.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDrafts));//Drafts是草稿,Notes是便笺
}
}
}
catch (Exception ex)
{ }
}
}
但是还有个问题,就是在访问2003时,会出现一个对话框,提示是否允许访问2003,还不知道应该怎样做,才能够不弹出这个对话框,希望有知道的朋友能够帮个忙,先谢谢了!!