Outlook 2010 изменить подпись на основе получателя
Мне было интересно, было ли возможно, когда вы вводите адрес получателя для Outlook 2010, чтобы автоматически определить этот адрес и соответственно изменить подпись? Просто общий вопрос.
2 ответа
У меня был тот же вопрос, и до сих пор не нашли ответ. В качестве хорошего обходного пути я успешно использовал предложенное здесь решение: https://superuser.com/a/228633/74819. В конце вы получаете кнопку на панели инструментов, позволяющую вам создать новое сообщение с настраиваемым адресом To и предварительно определенным основным текстом (включая подпись) на ваш выбор.
Теперь я нахожу этот метод лучше, чем я искал, потому что он более предсказуем. Если подпись (и, следовательно, тело сообщения) изменялась в зависимости от списка получателей, вы теряли бы контроль над своим текстом. Кроме того, с помощью собственного инструмента вы можете установить больше, чем просто подпись.
Вы ищете настройку для этого или готовы работать с макросом? Если вы открыты для работы с макросами, смотрите ниже и отвечайте на вопросы.
Public WithEvents goInspectors As Outlook.Inspectors
Public WithEvents myMailItem As Outlook.MailItem
Private Sub Application_Startup()
Initialize_Inspector
End Sub
Private Sub Initialize_Inspector()
Set goInspectors = Outlook.Application.Inspectors
End Sub
Private Sub goInspectors_NewInspector(ByVal Inspector As Inspector)
If Inspector.currentItem.Class = olMail Then
Set myMailItem = Inspector.currentItem
End If
End Sub
Private Sub myMailItem_PropertyChange(ByVal Name As String)
'The variable below should be modified for your situation.
'If you are in an Exchange environment, then you can use "last name, firstname"(caps-sensitive).
'If the the recipient is not in Outlook's address list, use "person@email.com"
customSignatureFor = "Lastname, Firstname"
'Use vbCrLf to account for enter/returns
oldSignature = "Respectfully," & vbCrLf & vbCrLf & "Phillip"
newSignature = "v/r," & vbcrlf & "Phil"
If Name = "To" Then
For i = 1 To myMailItem.Recipients.count
If InStr(myMailItem.Recipients(i), customSignatureFor) > 0 Then
tempstring = Replace(myMailItem.Body, oldSignature, newSignature)
myMailItem.Body = tempstring
End If
Next
End If
End Sub