c# - 在 Outlook MailItem 中设置自定义 header

标签 c# visual-studio-2010 outlook vsto outlook-addin

我正在处理 outlook 加载项,我需要在其中设置自定义 header 。我正在使用 VS2010 进行开发。

我正在尝试使用以下代码,但它似乎不起作用。

private void AddUserProperty(Outlook.MailItem mail, string folderEmailId)
{

    Outlook.PropertyAccessor mailPropertyAccessor = null;
    try
    {

        if (string.IsNullOrEmpty(folderEmailId))
             return;

        mailPropertyAccessor = mail.PropertyAccessor;
        mail.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/X-WorksiteFolderEmailId", folderEmailId);

        mail.Save();

        try
        {
             MessageBox.Show("Existing :" + mail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/X-WorksiteFolderEmailId"));
        }
        catch (System.Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
   }
   catch (System.Exception ex)
   {
        Logger.Error(ex);
        MessageBox.Show(ex.Message);
   }
   finally
   {
        if (mailPropertyAccessor != null)  
            Marshal.ReleaseComObject(mailPropertyAccessor);
   }
}

保存邮件项目后,我试图获取相同的项目进行验证,但它抛出一个异常,指出找不到该属性。

最佳答案

虽然没有必要直接获取对 PropertyAccessor 的引用,但我没有发现您的代码有问题。尝试:

    string prop = "http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/X-WorksiteFolderEmailId";
    mail.PropertyAccessor.SetProperty(prop, folderEmailId);

    mail.Save();

关于c# - 在 Outlook MailItem 中设置自定义 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21627836/

相关文章:

c# - WCF 错误 : Cannot find a token authenticator

visual-studio-2010 - Enter.、Backspace 和导航键在 Visual Studio 2010 w/Powertools/Resharper 中没有响应

visual-studio-2010 - "filter"css 属性上的 Chirpy LESS 窒息,其他杂项错误

visual-studio-2010 - 如何根据加载的解决方案的路径(分支)更改 Visual Studio 中工具栏和菜单的背景颜色?

vba - 使用 VBA 在 Outlook 2003 中循环 PST

c# - Visual Studio 2012 快捷键从 aspx 到 Code Behind 和 Code Behind 到 aspx

c# - 如何在后台运行 .NET 控制台应用程序

c# - MemoryCache.Add 返回 true 但不将项目添加到缓存

asp.net - 使用 .NET 开发 MS Outlook 插件

outlook - 如何从 Outlook 邮件表单上的 GAL 获取照片?