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
Другие вопросы по тегам