使用Redemption(Outlook)与登录用户以外的用户 – 并获取错误

我正在使用Redemption dll( http://www.dimastr.com/redemption/ ),我创建了一个访问我的邮箱的exe。

我在我的用户名下运行Windows调度程序中的exe,它工作正常,我收到一封电子邮件发送给我(见下面的代码)。

当我将Scheduler中的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) 

有没有人对我做错了什么有任何想法,可以用这种方式使用Redemption吗?

最后,我通过确保您登录的用户拥有您正在尝试查看的邮箱的“完整邮箱权限”来完成此工作。