Vba 如何在outlook中映射哪个签名属于哪个电子邮件帐户?

Vba 如何在outlook中映射哪个签名属于哪个电子邮件帐户?,vba,outlook,Vba,Outlook,我在outlook中配置了3个电子邮件帐户。 签名存储在“AppData\Roaming\Microsoft\Signatures\”位置 使用vba,如何映射哪个签名属于哪个帐户?签名的名称存储在可通过IOLKAAccountManager MAPI接口访问的帐户配置文件数据中。由于该接口扩展了MAPI,所以只能使用C++或Delphi访问。如果单击IOLKAAccountManager按钮,您可以在中查看界面及其数据 Outlook对象模型不公开签名或访问帐户上的任意属性 如果使用是一个选项

我在outlook中配置了3个电子邮件帐户。 签名存储在“AppData\Roaming\Microsoft\Signatures\”位置


使用vba,如何映射哪个签名属于哪个帐户?

签名的名称存储在可通过IOLKAAccountManager MAPI接口访问的帐户配置文件数据中。由于该接口扩展了MAPI,所以只能使用C++或Delphi访问。如果单击IOLKAAccountManager按钮,您可以在中查看界面及其数据

Outlook对象模型不公开签名或访问帐户上的任意属性

如果使用是一个选项,则可以使用其对象(可在任何语言中访问,包括VBA)。新消息签名名称存储在0x0016001F属性中,回复签名存储在0x0017001F中

  set Session = CreateObject("Redemption.RDOSession")
  Session.MAPIOBJECT = Application.Session.MAPIOBJECT
  set Accounts = Session.Accounts
  for each Account in Accounts.GetOrder(2) 'all mail accounts
    Debug.Print Account.Name
    newMessageSignature = Account.Fields(&H0016001F)
    if TypeName(newMessageSignature) <> "String" Then newMessageSignature = ""
    replySignature = Account.Fields(&H0017001F)
    if TypeName(replySignature) <> "String" Then replySignature = ""
    Debug.Print "  new message: " &  newMessageSignature & ", reply: " & replySignature
  next
set Session=CreateObject(“Redemption.RDOSession”)
Session.MAPIOBJECT=Application.Session.MAPIOBJECT
设置帐户=会话。帐户
对于Accounts.GetOrder(2)“所有邮件帐户”中的每个帐户
调试。打印帐户。名称
newMessageSignature=帐户字段(&H0016001F)
如果TypeName(newMessageSignature)“String”,则newMessageSignature=“”
replySignature=Account.Fields(&H0017001F)
如果TypeName(replySignature)“String”,则replySignature=“”
调试。打印“新消息:&newMessageSignature&”,回复:&replySignature
下一个