该方法与我无关。无论是宏,还是在发送电子邮件时以某种方式自动触发。
我想知道 Outlook 是否有办法根据收件人自动分配签名。
- 必须与 Outlook 2007 一起使用。如果存在替代方法,则可以添加它们,参考它适用于哪个版本。我的很多宏必须在 2007 年重写。
- 方法并不重要,只要它不涉及除了常规 UI 使用之外的用户交互来发送电子邮件。
谢谢。
该方法与我无关。无论是宏,还是在发送电子邮件时以某种方式自动触发。
我想知道 Outlook 是否有办法根据收件人自动分配签名。
谢谢。
基于此处的代码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