باستخدام الفداء (Outlook) مع مستخدم بخلاف المستخدم الموجود في المستخدم - والحصول على أخطاء

StackOverflow https://stackoverflow.com/questions/589254

سؤال

أنا أستخدم DLL الفداء (http://www.dimastr.com/redemption/) لقد قمت بإنشاء EXE الذي يصل إلى صندوق البريد الخاص بي.

قمت بتشغيل EXE في جدولة Windows ضمن اسم المستخدم الخاص بي ويعمل بشكل جيد، أحصل على بريد إلكتروني يتم إرساله لي (انظر رمز أدناه).

عندما أقوم بتغيير اسم مستخدم Runas في المجدول إلى شخص آخر ومحاولة الوصول إلى ملف تعريف صندوق البريد الخاص بهم، أحصل على خطأ. system.io.fileloadException.

static void Main(string[] args)
{

    System.Diagnostics.Debugger.Break();

    object oItems;

    //string outLookUser = "My Profile Name";
    string outLookUser = "Other User Profile Name";

    string ToEmailAddress = "abc.email@xyz.com";
    string FromEmailAddress = "abc.email@xyz.com";
    string outLookServer = "exchangeServer.com";

    string sMessageBody =
        "\n outLookUser: " + outLookUser +
        "\n outLookServer: " + outLookServer +
        "\n\n";

    RDOSession Session = null;

    try
    {
        rdoDefaultFolders olFolderInbox = rdoDefaultFolders.olFolderInbox;

        Session = new RDOSession();
        RDOFolder objFolder;

        Session.LogonExchangeMailbox(outLookUser, outLookServer);

        int mailboxCount = Session.Stores.Count;
        string defaultStore = Session.Stores.DefaultStore.Name;

        sMessageBody +=
        "\n mailboxCount: " + mailboxCount.ToString() +
        "\n defaultStore: " + defaultStore +
        "\n\n";


        //RDOStore rmpMetering = Session.Stores.GetSharedMailbox("Name of another mailbox");
        //objFolder = rmpMetering.GetDefaultFolder(olFolderInbox);

        objFolder = Session.GetDefaultFolder(olFolderInbox);

        oItems = objFolder.Items;
        int totalcount = objFolder.Items.Count;
        if (totalcount > 10) totalcount = 10;

        for (int loopcounter = 1; loopcounter < totalcount; loopcounter++)
        {
            RDOMail oItem = objFolder.Items[loopcounter];

            string attachmentName = string.Empty;
            foreach (RDOAttachment attachment in oItem.Attachments)
            {
                attachmentName += attachment.FileName + " ";


                if (attachmentName.Trim() == "Data.csv")
                {
                    attachment.SaveAsFile(@"C:\datafiles\" + attachmentName.Trim());

                    foreach (RDOFolder archiveFolder in objFolder.Folders)
                    {
                        if (archiveFolder.Name == "DataFileArchive")
                        {
                            oItem.MarkRead(true);
                            oItem.Move(archiveFolder);
                        }
                    }
                }
            }

            sMessageBody += oItem.Subject + " " + attachmentName + "\n";
            if ((oItem.UnRead))
            {
                //Do whatever you need this for                    
                //sMessageBody = oItem.Body;
                //oItem.MarkRead(true);
            }
        }

        System.Web.Mail.SmtpMail.Send(ToEmailAddress,FromEmailAddress
            , "Data File Processing-" + DateTime.Now.ToString()
            ,"" + sMessageBody);

    }
    catch (Exception ex)
    {
        Session = null;

        System.Web.Mail.SmtpMail.Send(ToEmailAddress, FromEmailAddress, "Error", sMessageBody + " " + ex.Message);

    }
    finally
    {
        if ((Session != null))
        {
            if (Session.LoggedOn)
            {
                Session.Logoff();
            }
        }
    }

}

عندما أحاول تشغيل نفس EXE على جهاز آخر معي تسجيل الدخول، أحصل على هذا الخطأ،

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or ass
embly 'Interop.Redemption, Version=4.7.0.0, Culture=neutral, PublicKeyToken=null
' or one of its dependencies. The system cannot find the file specified.
File name: 'Interop.Redemption, Version=4.7.0.0, Culture=neutral, PublicKeyToken
=null'
   at RPMDataFileProcessing.Program.Main(String[] args)

هل حصل أي شخص على أي أفكار حول ما أفعله خطأ، هل يمكن استخدام الفداء بهذه الطريقة؟

هل كانت مفيدة؟

المحلول

حصلت على هذا العمل في النهاية من خلال ضمان أن يتم تسجيل المستخدم الذي قمت بتسجيله باسم "حقوق صندوق البريد الكامل" إلى مربع البريد الذي تحاول رؤيته.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top