Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Outlook 2010 change signature based on recipient

I was wondering if it was possible for when you enter a recipient's address for Outlook 2010 to automatically detect this address and change the signature accordingly? Just a general question.

like image 435
Often Right Avatar asked Feb 20 '14 08:02

Often Right


People also ask

How do I change signature in Outlook from address field?

It can be easily done by: 1. First selecting an email account in the Choose default signature part on the right hand side in the Signatures and Stationery window. 2) After the selection of an email account, choose a predefined signature for this account in New messages and in the following Replies/forwards option.

Can you have different signatures for internal and external emails in Outlook?

Finally, you may opt to use different signature for internal and external emails – a simple one (for internal messages – it may just include first name, last name, title and phone fields) and an extended one (for external emails – it will contain all contact details, images, logos, etc.).


2 Answers

I've had the same question and so far have not found the answer. As a nice workaround, I've successfully used the solution provided here: https://superuser.com/a/228633/74819. In the end you get a button on the toolbar allowing you to create a new message with a custom To address and a pre-defined body text (including signature) of your choice.

Now I actually find this method nicer than what I was looking for because it is more predictable. If the signature (and thus the message body) was changing based on the list of recipients, you would loose control over your text. Also, with a tool of your own, you can set more than just a signature.

like image 98
texnic Avatar answered Oct 21 '22 02:10

texnic


Are you looking for a setting to do this or are you willing to work with a macro? If you're open to working with macros, see below and reply back with questions.

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 "[email protected]"
    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
like image 39
phillip3196772 Avatar answered Oct 21 '22 04:10

phillip3196772