2010-07-19 3 views
0

Ici, chez mon entreprise, nous utilisons un client E-mail différent de Outlook. Lorsque nous copions nos conversations dans le dossier Exchange imap, la propriété recievedtime est définie sur la date actuelle.Réécrire la propriété RecievedTime d'un mailitem Outlook

Est-il possible de modifier par programme cette propriété? Actuellement, j'obtiens l'erreur que cette propriété est en lecture seule.

Mon code actuel:


private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    foreach (Outlook.Folder Map in Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox).Folders) 
    { 
     if (Map.Name != "some_name") 
      continue; 
     if (MessageBox.Show("mes", "title", MessageBoxButtons.OKCancel) != DialogResult.OK) 
      break; 
     foreach (Object Item in Map.Items) 
     { 
      try 
      { 
       String Message = ""; 
       Outlook.MailItem Mail = (Outlook.MailItem)Item; 
       Message += "Sent by: \"" + Mail.SenderName + "\" \n"; 
       Message += "Sent on: " + Mail.SentOn.ToString() + "\n"; 
       Message += "Received on: " + Mail.ReceivedTime.ToString(); 
       MessageBox.Show(Message); 

       Mail.ReceivedTime = Mail.SentOn; 
       //Property or indexer 'Microsoft.Office.Interop.Outlook._MailItem.ReceivedTime' cannot be assigned to: it is read only 
      } 
      catch (Exception Exception) 
      { 
      } 
     } 
    } 
} 

Répondre

0

Nous avons résolu ce problème en achetant un programme qui migre vers un autre tous les éléments d'un e-MailSystem. Il s'appelle Transend Migration (http://www.transend.com). Le programme lit tous vos e-mails, puis les réécrit sur le nouveau système.

J'espère que ça aide!

Questions connexes