C# 访问outlook 2003 (winForm)

来源:互联网 发布:女士淘宝 编辑:程序博客网 时间:2024/06/05 05:41

用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,还不知道应该怎样做,才能够不弹出这个对话框,希望有知道的朋友能够帮个忙,先谢谢了!!