Using Redemption (Outlook) with a user other than a registered user - and getting errors

I am using the Redemption dll ( http://www.dimastr.com/redemption/ ) and I created an exe that accesses my mailbox.

I run exe in Windows Scheduler under my username and it works fine, I get an email sent to me (see code below).

When I change the runas username in Scheduler to someone else and try to access my mailbox, I get an error. 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(); } } } } 

When I try to run the same exe on another machine with which I logged in, I get this error,

 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) 

Does anyone have any ideas on what I'm doing wrong, is it possible to use Redemption in this way?

+2
c # outlook outlook-2003 outlook-redemption
Feb 26 '09 at 5:45
source share
1 answer

I got this job at the end, making sure that the user you are logged into with has “full mailbox rights” in the mailbox you are trying to see.

+2
Mar 17 '09 at 1:13
source share




All Articles