Outlook 2007: как программно выбрать подпись на основе получателя электронной почты (Кому: CC: BCC: и т. д.)

Метод меня не касается. Является ли это макросом или каким-то образом автоматически срабатывает при отправке электронного письма.
Я хочу знать, есть ли способ для Outlook автоматически назначать подпись на основе получателя.

  • Must work with Outlook 2007. If alternate methods exist, they can be added, referencing which version it works on. A lot of my macros had to be rewritten for 2007.
  • Method is not important, as long as it doesn't involve user interaction other than regular UI usage to send an email.

Спасибо.


person Lee Louviere    schedule 20.01.2011    source источник
comment
Вы когда-нибудь находили решение этой проблемы? Я хочу сделать что-то подобное...   -  person Caribou    schedule 02.11.2012


Ответы (1)


На основе кода отсюда 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
person niton    schedule 19.11.2013