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

时间:2011-01-20 20:40:41

标签: ms-office outlook-2007 signature

该方法与我无关。无论是宏,还是以电子邮件发送的方式自动触发 我想知道Outlook是否有办法根据收件人自动分配签名。

  • 必须使用Outlook 2007.如果存在备用方法,则可以添加它们,并引用它所使用的版本。我的很多宏都必须在2007年重写。
  • 方法并不重要,只要它不涉及用户交互而不是常规UI用法来发送电子邮件。

感谢。

1 个答案:

答案 0 :(得分:0)

基于此处的代码http://www.rondebruin.nl/win/s1/outlook/signature.htm

您可以将其设置为从Application_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