2009-02-26 7 views
2

Redemption dll (http://www.dimastr.com/redemption/) kullanıyorum ve posta kutuma erişen bir exe oluşturdum.Kullanılan kullanıcı dışında bir kullanıcı ile Redemption (Outlook) kullanma ve hata alma

Windows Zamanlayıcı'da exe'yi kullanıcı adımımın altında çalıştırıyorum ve iyi çalışıyor, bana bir e-posta gönderiyor (aşağıya bakın).

Zamanlayıcıda runas kullanıcı adını başka birine değiştirdiğimde ve posta kutularına erişmeye çalıştığımda Profil Bir hata alıyorum. 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 = "[email protected]"; 
    string FromEmailAddress = "[email protected]"; 
    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(); 
      } 
     } 
    } 

} 

Yanımda başka bir makinede aynı exe çalıştırmak için deneyin bu hatayı alıyorum içinde,

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) 

kimse ne yapıyorum üzerinde herhangi bir fikir var Has açmış yanlış, bu yolla Redemption kullanılabilir mi?

cevap

2

Sonunda, oturum açtığınız kullanıcının, görmeye çalıştığınız posta kutusuna 'tam posta kutusu hakları' olduğundan emin olarak çalışıyorum.

İlgili konular