编程设置Outlook 2013签名默认?(Programmatically set Outlook

2019-08-19 08:36发布

是否有可能以编程方式设置Outlook 2013中默认的签名设置? 我们可以生成用户的签名确定,但想也设置签名默认用户的电子邮件出现:

设置本身似乎是在注册表中卷起,走在Outlook配置文件:

HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6677\00000002

注册值:

  • New Signature
  • Reply-Forward Signature

...(其具有二进制数据,推测编码的HTML文件名/参考)。

不知道我是否可以使用Outlook对象模型来访问并设置设置? 而这是否有可能与ClickOnce应用程序?

Answer 1:

我还没有清理过的代码还没有,但是这对我的作品在Outlook 2013年蟒蛇设定的签名(是的,我知道它的丑陋和不PEP8)。

import _winreg
def set_default():

    try:
        #this makes it so users can't change it.
        outlook_2013_key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Office\15.0\Common\MailSettings", 0, _winreg.KEY_ALL_ACCESS)
        _winreg.SetValueEx(outlook_2013_key, "NewSignature", 0, _winreg.REG_SZ, "default" )
        _winreg.SetValueEx(outlook_2013_key, "ReplySignature", 0, _winreg.REG_SZ, "default" )

        # sets the sigs in outlook profile
        outlook_2013_base_key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Office\15.0\Outlook\Profiles", 0, _winreg.KEY_ALL_ACCESS)
        default_profile_2013_tup = _winreg.QueryValueEx(outlook_2013_base_key,'DefaultProfile')
        default_profile_2013 = default_profile_2013_tup[0]
        print default_profile_2013
        outlook_2013_profile_key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,
                                                   "Software\\Microsoft\\Office\\15.0\\Outlook\\Profiles\\" + default_profile_2013 + "\\9375CFF0413111d3B88A00104B2A6676", 0, _winreg.KEY_ALL_ACCESS)
        for i in range(0, 10):
            try:
                outlook_2013_sub_key_name = _winreg.EnumKey(outlook_2013_profile_key,i)
                print outlook_2013_sub_key_name, "sub_key_name"
                outlook_2013_sub_key = _winreg.OpenKey(outlook_2013_profile_key, outlook_2013_sub_key_name, 0, _winreg.KEY_ALL_ACCESS)
                _winreg.SetValueEx(outlook_2013_sub_key, "New Signature", 0, _winreg.REG_SZ, "default" )
                _winreg.SetValueEx(outlook_2013_sub_key, "Reply-Forward Signature", 0, _winreg.REG_SZ, "default" )
            except:
                pass

    except:
        print('no 2013 found')


Answer 2:

展望签名的每个帐户基础上在配置文件数据(存储在注册表中)的参数设置。 你可以看到在数据OutlookSpy -点击IOlkAccountManager的帐户按钮并双击。

IOlkAccountManager只能在C ++或Delphi访问。 如果使用赎回是一个选项(它可以从任何语言,包括VBA或.Net中使用,我是它的作者),它暴露了RDOAccount 。 ReplySignatureNewMessageSignature性能。



文章来源: Programmatically set Outlook 2013 Signature Defaults?