Ms office Outlook 2007:如何基于电子邮件收件人(收件人:CC:BCC:等)以编程方式选择签名

Ms office Outlook 2007:如何基于电子邮件收件人(收件人:CC:BCC:等)以编程方式选择签名,ms-office,outlook-2007,signature,Ms Office,Outlook 2007,Signature,这种方法与我无关。无论是宏还是电子邮件发送时自动触发。 我想知道outlook是否有办法根据收件人自动分配签名 必须使用Outlook 2007。如果存在替代方法,则可以添加这些方法,并参考其使用的版本。2007年我的很多宏都需要重写。 方法并不重要,只要它不涉及用户交互,而不是发送电子邮件的常规UI使用。 谢谢。基于此处的代码 您可以将其设置为从应用程序_ItemSend调用,但这可能会带来麻烦 Sub With_Variable_Signature() Dim itm As mailIt

这种方法与我无关。无论是宏还是电子邮件发送时自动触发。
我想知道outlook是否有办法根据收件人自动分配签名

  • 必须使用Outlook 2007。如果存在替代方法,则可以添加这些方法,并参考其使用的版本。2007年我的很多宏都需要重写。
  • 方法并不重要,只要它不涉及用户交互,而不是发送电子邮件的常规UI使用。
谢谢。

基于此处的代码

您可以将其设置为从应用程序_ItemSend调用,但这可能会带来麻烦

Sub With_Variable_Signature()
Dim itm As mailItem
Dim StrSignature As String
Dim sPath As String
Dim recip As Recipient

Set itm = ActiveInspector.currentItem

sPath = Environ("appdata") & "\Microsoft\Signatures\defaultSig.htm"

For Each recip In itm.Recipients
    Debug.Print recip.name
    If recip.name = "somebody"  And recip.type = olTo Then ' or = olcc or = olbcc
        sPath = Environ("appdata") & "\Microsoft\Signatures\customizedSig.htm"
        Exit For
    End If
Next

If Dir(sPath) <> "" Then
    StrSignature = GetBoiler(sPath)
Else
    StrSignature = ""
End If

With itm
    .HTMLBody = .HTMLBody & vbNewLine & vbNewLine & StrSignature
End With  

Set itm = Nothing

End Sub

Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
GetBoiler = ts.readall
ts.Close
End Function
Sub,带有变量\u签名()
将itm设置为邮件项
像字符串一样的模糊结构符号
像细绳一样暗淡
作为收件人的Dim recip
设置itm=ActiveInspector.currentItem
sPath=Environ(“appdata”)&“\Microsoft\Signatures\defaultSig.htm”
对于itm.收件人中的每个收件人
Debug.Print recip.name
如果recip.name=“someone”且recip.type=olTo,则“or=olcc”或“or=olbcc”
sPath=Environ(“appdata”)和“\Microsoft\Signatures\customizedSig.htm”
退出
如果结束
下一个
如果Dir(sPath)“,则
StrSignature=GetBoiler(sPath)
其他的
StrSignature=“”
如果结束
使用itm
.HTMLBody=.HTMLBody&vbNewLine&vbNewLine&StrSignature
以
设置itm=无
端接头
函数GetBoiler(ByVal sFile作为字符串)作为字符串
“迪克·库斯利卡
作为对象的Dim fso
将T作为对象
设置fso=CreateObject(“Scripting.FileSystemObject”)
设置ts=fso.GetFile(sFile).OpenAsTextStream(1,-2)
GetBoiler=ts.readall
关闭
端函数

您有没有找到解决方案?我想做类似的事情。。。