2013-01-11 32 views
2

我们使用Exchange Web服务在Outlook Web Access中设置用户签名。它效果很好,我们在选项>设置下看到签名,并且选中了“我发送的邮件时自动包含我的签名”复选框。我们也以编程方式设置。使用Exchange Web服务的OWA签名更新

但是,当用户在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(); 

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

回答

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(); 
} 
+0

谢谢,但我已经发布的代码是我们用什么短路版本,我们检查,如果属性设置在创建之前存在或更新它。这部分工作正常,它的OWA签名刷新,这是一个问题。 – PW763

+0

我这种情况我没有想法。 –

+0

问题是我把值设置为“True”应该是正确的布尔值。你的代码是100%。 – PW763

相关问题