使用Exchange Web服务进行OWA签名更新

时间:2013-01-11 04:54:38

标签: exchangewebservices exchange-server-2010 office365

我们正在使用Exchange Web服务在Outlook Web Access中设置用户签名。它工作得很好,我们在选项>设置下看到签名,并选中“自动在我发送的邮件中包含我的签名”复选框。我们还以编程方式设置了它。

但是,当用户在OWA中创建新的电子邮件时,签名不会显示。解决此问题的方法是转到选项>设置,取消选中“自动在我发送的邮件中包含我的签名”复选框,保存,再次选中复选框并保存。

我们用来设置签名的代码如下所示:

Folder rootFolder;
UserConfiguration OWAConfig;
rootFolder = Folder.Bind(service, WellKnownFolderName.Root);
OWAConfig = UserConfiguration.Bind(service, "OWA.UserOptions",rootFolder.ParentFolderId, UserConfigurationProperties.All);

OWAConfig.Dictionary["signaturehtml"] = "Hello World";
OWAConfig.Dictionary["autoaddsignature"] = "True";
OWAConfig.Update();

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

我有一些旧的代码可以完成同样的工作。我已粘贴下面的代码。我的代码与您的代码之间存在一些细微差别。我不确定他们是否有所作为,但你可能想尝试一下。以下是我的代码摘录,其中的差异以注释突出显示:

private void SetSettingValue(UserConfiguration owaConfig, string propName, object propValue)
{
    if (owaConfig.Dictionary.ContainsKey(propName))
    {
        owaConfig.Dictionary[propName] = propValue;
    }
    else
    {
        // Adds a key if it does not explicitly exist.
        // I am not sure if it makes a difference.
        owaConfig.Dictionary.Add(propName, propValue);
    }
}

public void AddSignature()
{
   // Extract
    UserConfiguration OWAConfig = UserConfiguration.Bind(
        service, 
        "OWA.UserOptions", 
        WellKnownFolderName.Root, // Binding to Root and not Root.ParentFolderId.
        UserConfigurationProperties.Dictionary // Binds to Dictionary and not to All.
        );

    SetSettingValue(OWAConfig, "autoaddsignature", true);
    SetSettingValue(OWAConfig, "signaturehtml", html);

    OWAConfig.Update();
}