Quick & Dirty: Standardized e-mail signatures for Outlook Web App (OWA)

Another quick script from the Quick & Dirty category: Uniform e-mail signatures for OWA. If you don't have any third-party software in use that can also distribute standardized mail signatures in OWA, you can fall back on this quick script:

$mailboxes = get-mailbox -resultsize unlimited
foreach ($mailbox in $mailboxes)
{
$uservars = get-user $mailbox
if ($uservars)
{
$SamAccountName = $uservars.SamAccountName
$UserPrincipalName = $uservars.UserPrincipalName
[$WindowsLiveID = $uservars.WindowsLiveID
$NetID = $uservars.NetID
$AssistantName = $uservars.AssistantName
$City = $uservars.City
$Company = $uservars.Company
$CountryOrRegion = $uservars.CountryOrRegion
$Department = $uservars.Department
$DisplayName = $uservars.DisplayName
$Fax = $uservars.Fax
$FirstName = $uservars.FirstName
$LastName = $uservars.LastName
$HomePhone = $uservars.HomePhone
$Initials = $uservars.Initials
$Manager = $uservars.Manager
$MobilePhone = $uservars.MobilePhone
$Notes = $uservars.Notes
$Office = $uservars.Office
$OtherFax = $uservars.OtherFax
$OtherHomePhone = $uservars.OtherHomePhone
$OtherTelephone = $uservars.OtherTelephone
$Pager = $uservars.Pager
$Phone = $uservars.Phone
$PhoneticDisplayName = $uservars.PhoneticDisplayName
$PostalCode = $uservars.PostalCode
$PostOfficeBox = $uservars.PostOfficeBox
$StateOrProvince = $uservars.StateOrProvince
$StreetAddress = $uservars.StreetAddress
$Title = $uservars.Title
$WebPage = $uservars.WebPage
[$WindowsEmailAddress = $uservars.WindowsEmailAddress
$Name = $uservars.Name
}
#The following variables can be used for the signature:
#-------------------------------------------------------------------------------------------------------------------------
#Define text for the text-only signature:
#-------------------------------------------------------------------------------------------------------------------------
$txtsignature = `
"
---``r`n
Yours sincerely`r`n
$firstname $lastname`r`n
$Department`r`n
`r`n
Fon: $phone`r`n
Fax: $fax`r`n
`r`n
FrankysWeb`r`n
"
#Here Set text for the HTML signature:
#-------------------------------------------------------------------------------------------------------------------------
$htmlsignature = `
"
<b>
---
With kind regards
$firstname $lastname
$Department
Phone: $phone
Fax: $fax
FrankysWeb
</b>
"
Assign #Sigantur:
#-------------------------------------------------------------------------------------------------------------------------
write-host "Create signature for $SamAccountName"
$signature = Set-MailboxMessageConfiguration $SamAccountName -SignatureText $txtsignature -SignatureHtml $htmlsignature -AutoAddSignature:$true
}

These variables can be used to generate the signature:

$SamAccountName
$UserPrincipalName
$WindowsLiveID
$NetID
$AssistantName
$City
$Company
$CountryOrRegion
$Department
$DisplayName
$Fax
$FirstName
$HomePhone
$Initials
$LastName
$Manager
$MobilePhone
$Notes
$Office
$OtherFax
$OtherHomePhone
$OtherTelephone
$Pager
$Phone
$PhoneticDisplayName
$PostalCode
$PostOfficeBox
$StateOrProvince
$StreetAddress
$Title
$WebPage
$WindowsEmailAddress
$Name

In the lower part of the script, a signature can then be created with these variables, which is attached accordingly in OWA. Similar to Outlook.

Please note that a line break must be inserted in the text-only signature so that the entire signature is not on one line ("`r`n").

The script applies to OWA, not Outlook. Have fun with it.

5 thoughts on “Quick & Dirty: Einheitliche E-Mail Signaturen für Outlook Web App (OWA)”

  1. Die Zeile 46 erzeugt eine Fehlermeldung, ich habe sie auskommentiert.

    Außerdem noch ein Tipp für schöne HTML Signaturen inkl. den Variablen darin:
    Beginn mit Zeile 103:
    $htmlsignature = `
    @‘

    Mit freundlichen Grüßen XXXXXXX GmbH
    {0} {1}
    ={2}= Telefon: {3} Mobil: {4}

    ‚@ -f $firstname, $lastname, $Department, $phone, $MobilePhone

    Danach folgt der write-host Befehl

    Mit den @ Zeichen und anschließend dem Parameter -f und den folgenden Variablen werden die Variablen in den HTML Code geschrieben (die geschweiften Klammern)! Außerdem muss man einfache Anführungsstriche für den gesamten HTML Code verwenden weil im HTML Code selber normale Anführungszeichen verwendet werden!
    Getestet mit Exchange 2016 !

    Insgesamt ein super Artikel! Hätte nicht gedacht das ganze so einfach zu realisieren!

    Reply
  2. Hallo Frank!

    Danke fuer das tolle Skript!
    „Leider“ habe ich dazu noch eine Frage…
    Wir haben ein Konstrukt mit mehreren Windows-Subdomaenen und wenn ich für jede Domaene ein eigenes Skript baue (was ich wegen der unterschiedlichen Signaturinhalte leider machen muss) und das Skript für die erste Subdomaenne durchlaufen lasse (Filterung mit $mailboxes = get-mailbox -resultsize unlimited | where {$_.EmailAddresses -like („*.abc@xyz.de“)}), ist noch alles gut. Wenn ich aber anschl. dann das Skript fuer die zweite Subdomaene anwerfe, steht bei allen OWA-Postfaechern aus der ersten Subdomaene im Signaturfeld nur noch „True“. Was mache ich falsch? Ansonsten ist das genau das, was wir suchen…
    Danke!

    Gruss,

    Max

    Reply
  3. Hallo Frank,
    vielen Dank für dieses geniale Script um die OWA-Signaturen in den Griff zu bekommen.
    Siehst du eine Möglichkeit das Script so anzupassen, dass man damit auch die Office365-OWA-Accounts mit einer einheitlichen Signatur versehen kann?
    Viele Grüße aus Augsburg
    Roland

    Reply

Leave a Comment