Automating the outlook signature involves many things by gathering information from AD, environmental variable and so on.
We have seen people using inspirational quotes in bottom of their signature and periodically they change the quotes. How about every day new quote in their signature that too automated.
This blog is about the automation of quotes in to signature.
I am getting quotes from http://www.eduro.com/ Thanks to Eduro
$AppData=$env:appdata
$SigPath = '\Microsoft\Signatures'
$LocalSignaturePath = $AppData+$SigPath
Signature information will be available in C:\Users\<username> \AppData\Roaming\Microsoft\Signatures
if (!(Test-path "$LocalSignaturePath\signaturecustom.txt")){
@"
First and Last Name
Title | Group
CompanyName| Direct phone | Mobile phone | firstname.lastname@company.com
"@ | out-file "$LocalSignaturePath\signaturecustom.txt"
}
It will create a text file in the C:\Users\<username> \AppData\Roaming\Microsoft\Signatures\signaturecustom.txt for the first time
This file needs to be changed as per user data.
Here comes the web scrapping
$url = "http://www.eduro.com/"
$r1= Invoke-WebRequest -Uri $url
$r4=@{}
$r2=($r1.ParsedHtml.getElementsByTagName('p') )[0]
$r4[1]=$r2.innerText
$r3=($r1.ParsedHtml.getElementsByTagName('p') )[1]
$r4[0]=$r3.innerText
Note: signaturecustom.txt text needs to be modified as per your signature.
Once signaturecustom template is selected from signature Ribbon Button from outlook.it will display the output like this.
At last you can schedule it in task scheduler.
Full Script.
$AppData=$env:appdata
$SigPath = '\Microsoft\Signatures'
$LocalSignaturePath = $AppData+$SigPath
if (!(Test-path "$LocalSignaturePath\signaturecustom.txt")){
@"
First and Last Name
Title | Group
CompanyName| Direct phone | Mobile phone | firstname.lastname@company.com
"@ | out-file "$LocalSignaturePath\signaturecustom.txt"
}
$url = "http://www.eduro.com/"
$r1= Invoke-WebRequest -Uri $url
$r4=@{}
$r2=($r1.ParsedHtml.getElementsByTagName('p') )[0]
$r4[1]=$r2.innerText
$r3=($r1.ParsedHtml.getElementsByTagName('p') )[1]
$r4[0]=$r3.innerText
$r4.Values
$input= Get-content "$LocalSignaturePath\signaturecustom.txt"
$stream = [System.IO.StreamWriter] "$LocalSignaturePath\Signaturecustom.htm"
$stream.WriteLine("<!DOCTYPE HTML PUBLIC `"-//W3C//DTD HTML 4.0 Transitional//EN`">")
$stream.WriteLine("<HTML><HEAD><TITLE>Signature</TITLE>")
$stream.WriteLine("<META http-equiv=Content-Type content=`"text/html; charset=windows-1252`">")
$stream.WriteLine("<BODY>")
$stream.WriteLine("<SPAN style=`"FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: `'Trebuchet MS`'`">")
$stream.WriteLine("<BR><BR>")
$stream.WriteLine("<B><SPAN style=`"FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: `'Trebuchet MS`'`">" + ($input[0].ToUpper()).Substring(0,$input[0].Length) + "</SPAN></B>")
$stream.WriteLine("<SPAN style=`"FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: `'Trebuchet MS`'`">")
$stream.WriteLine("<BR><BR>")
$input=(Get-content "C:\Users\raviregi\Desktop\Test.txt" )| Select-Object -Skip 1
foreach( $value in $input) {
$stream.WriteLine("<SPAN style=`"FONT-SIZE: 9pt; COLOR: gray; FONT-FAMILY: `'Trebuchet MS`'`">" + $value +"</SPAN>")
$stream.WriteLine("<BR><BR>")
}
$stream.WriteLine("<SPAN style=`"FONT-SIZE: 7pt; FONT-STYLE: 'italic';COLOR: gray; FONT-FAMILY: `'Trebuchet MS`'`">" + $r4.Values +"</SPAN>")
$stream.WriteLine("<BR>")
$stream.WriteLine("</BODY>")
$stream.WriteLine("</HTML>")
$stream.close()
Comments