从Exchange获取签名

时间:2017-11-13 09:30:32

标签: c# outlook office365 exchangewebservices

对于我公司的某些帐户,我无法收到电子邮件签名。我使用以下代码来检索签名:

let input2 = "5*(5.0/2.0)" // == 12.5

let predicate2 = NSPredicate(format: "1.0 * \(input2) = 0")

if let comparisation = predicate2 as? NSComparisonPredicate {
    let leftExpression = comparisation.leftExpression

    if let result = leftExpression.expressionValue(with: nil, 
                                                context: nil) as? NSNumber {
        print("Result is: \(result.doubleValue)") // == 12.5
    }
}

通常它工作正常,但对于某些帐户,它会抛出:

  

在商店中找不到指定的对象。,找不到配置对象。 Name = OWA.UserOptions。

1 个答案:

答案 0 :(得分:1)

以前从未登录过OWA的帐户会出现该错误。 这些帐户不存在UserConfiguration对象,您无法在代码中绑定它。

您可以先检查UserConfiguration对象,然后创建它,如果它不存在:

SearchFilter sf = new SearchFilter.IsEqualTo(ItemSchema.ItemClass, "IPM.Configuration.OWA.UserOptions");
ItemView iv = new ItemView(1);
iv.Traversal = ItemTraversal.Associated;
FindItemsResults<Item> fiResults = Root.FindItems(sf, iv);
UserConfiguration OWAConfig  =null;
if (fiResults.Items.Count == 0)
{
   OWAConfig = new UserConfiguration(service);
   OWAConfig.Save("OWA.UserOptions", Root.ParentFolderId);                
}

注意:创建新的UserConfiguration对象可能会导致问题,因为它不会首次设置OWA登录设置,区域设置等。 您需要为此测试受影响的帐户并相应地进行纠正。