重写Outlook mailitem的RecievedTime属性

时间:2010-07-19 10:39:55

标签: c# outlook-addin

在我的公司,我们使用与Outlook不同的电子邮件客户端。当我们将对话复制到Exchange imap文件夹时,recievedtime属性将设置为当前日期。

是否可以通过programmaticaly更改此属性?目前我收到此属性为只读的错误。

我目前的代码:


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)
            {
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我们通过购买将所有项目从一个电子邮件系统迁移到另一个电子邮件系统的程序来解决这个问题。它被称为Transend Migration(http://www.transend.com)。程序会读取您的电子邮件,然后将它们写回新系统。

希望它有所帮助!