gpt4 book ai didi

.net - 在 Outlook 2007 或更高版本中控制加密和数字签名按钮

转载 作者:行者123 更新时间:2023-12-04 20:54:03 31 4
gpt4 key购买 nike

我正在 VBA 中编写一个小脚本,它可以让我自动转发消息,包括加密的消息。

我唯一的问题是以编程方式删除加密。

我以为我可以这样做:

  • 打开留言
  • 取消选择加密和签名选项
  • 转发留言

  • 通过这种方法,我不知道如何获得对“加密和签名”按钮的引用。

    这是适用于标准非加密邮件的代码。我将此方法设置为所有传入邮件的“电子邮件规则”:
    Sub test_macro(MyMail As MailItem)
    MyMail.Display
    'Need some API here to access the decrypt button


    MyMail.Recipients.Add "otheraddress@company.com"
    MyMail.Recipients.Add "otheraddress2@company.com"
    Item_Send (MyMail)


    End Sub

    背景

    这里要求将部门地址的所有传入消息转发给某些人。将它们加密转发会导致各种版本的 Outlook (2003/2007/2010/etc) 之间出现各种证书问题,因为它们都需要拥有部门地址的私钥,并且似乎与他们的个人帐户证书冲突(我得到了所有有点古怪的行为,有时有效,有时无效)。

    替代方法
  • 我意识到由于安全限制,当前的方法可能不起作用,所以我正在寻找替代方案。也许如果我为 Outlook 创建一个插件,是否可以让我访问一些安全 API 来解密传入的消息?
  • 创建一个 POP 客户端,获取、手动解密消息并转发它。这可能是最难的方法,因为 Outlooks 默认支持很多加密格式/算法。

  • 还有其他想法吗?谢谢!

    最佳答案

    我知道这是一个较旧的线程,但对于那些感兴趣的人,以编程方式切换(启用或禁用)签名和以编程方式切换加密(以及检查签名和加密)的正确方法显示在下面引用的 VBA 文章中。这也可以在 .NET 中完成,只需稍作调整

    https://support2.microsoft.com/kb/2636465?wa=wsignin1.0

    例如,可以在 Outlook 2007、2010、2013 中使用以下 C# .NET 函数以编程方式检查电子邮件项目是否已加密:

    public static bool isEmailEncrypted(ref Outlook.MailItem mItem) {
    bool retVal = false;
    string PR_SECURITY_FLAGS = "http://schemas.microsoft.com/mapi/proptag/0x6E010003";
    long flags = (long)mItem.PropertyAccessor.GetProperty(PR_SECURITY_FLAGS);
    //need to do bitwise AND operation
    long bitwiseAND = flags & 1; //encrypted bit is the first bit
    if (bitwiseAND == 1) {
    retVal = true;
    }
    return retVal;
    }

    关于.net - 在 Outlook 2007 或更高版本中控制加密和数字签名按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6782684/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com