как разрешить постоянный доступ к outlook через C # - PullRequest
1 голос
/ 16 сентября 2011

Я попытался получить доступ и прочитать почту Outlook.Я попробовал следующий код, но он выдает всплывающее окно с предупреждением о безопасности, говоря: «Программа пытается получить доступ к информации об адресе электронной почты, хранящейся в Outlook Express».когда я пытаюсь получить доступ к Microsoft.Office.Interop.Outlook.MailItem в foreach.

    const string OUTLOOK_PROCESSNAME = "OUTLOOK";
    const string OUTLOOK_APPLICATIONNAME = "Outlook.Application";

    private static Microsoft.Office.Interop.Outlook.Application StartOutlookApplication()
    {
        return StartApplication(OUTLOOK_PROCESSNAME, OUTLOOK_APPLICATIONNAME) as Microsoft.Office.Interop.Outlook.Application;
    }

    private static object StartApplication(string processName, string applicationName)
    {
        // Application object
        object app = null;
        try
        {

            // is there an existing application object ?
            if (Process.GetProcessesByName(processName).Length > 0)
            {

                // use the GetActiveObject method to attach an existing application object
                app = Marshal.GetActiveObject(applicationName);
            }
            if (app == null)
            {
                // create a new instance
                Type t = Type.GetTypeFromProgID(applicationName);
                app = Activator.CreateInstance(t);
            }


        }
        catch (System.Exception ex)
        {
            // Some Logging
            Trace.WriteLine(string.Format("Error while starting the Application: {0}", applicationName));
        }
        return app;

    }


Microsoft.Office.Interop.Outlook.MAPIFolder subFolder = null;
            Microsoft.Office.Interop.Outlook.Application app = StartOutlookApplication();
            Microsoft.Office.Interop.Outlook.NameSpace NS = app.GetNamespace("MAPI");
            Microsoft.Office.Interop.Outlook.MAPIFolder inboxFld = NS.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
            lastupdateddate = getmostrecentupdatetime();
            DateTime lastupdated=Convert.ToDateTime(lastupdateddate);
            subFolder = inboxFld.Folders[Inboxpath];

            foreach (Microsoft.Office.Interop.Outlook.MailItem t in subFolder.Items)
            {
                if (t.SenderEmailAddress.Contains(senderemail))
                {

Пожалуйста, помогите мне. Мне нужно запустить мою программу без отображения этого предупреждающего сообщения.

1 Ответ

1 голос
/ 16 сентября 2011

Библиотека выкупа обойдет большинство из них.http://www.dimastr.com/redemption/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...