Merhaba, sizlerinde bildiği üzere özellikle BT tarafında çalışan arkadaşlarımızın Microsoft temelli yazılımların yönetim ve görev tanımlamasını yapabilecek yani işlerini önemli ölçüde kolaylaştıracağı Microsoft Powershell ürünü bulunuyor. Sizlere bu makalemde bahsetmek istediğim Powershell ile HTML olarak e-mail atmayı inceleyeceğiz. Burada BT personelinin bir kullanıcı hakkında tablo şeklinde bilgi çağırmasını amaçlıyoruz.
Param parametresi ile dışarıdan yani Sistem Yöneticisinden kullanıcı ismi alıyoruz;
param (
[string]$user = $( Read-Host “Kullanıcı Adını Giriniz: ” )
)
Resim – 1
Gönderici bilgilerini, SMPT sunucumuzun adresini ve mail başlığını belirtiyoruz.
$gonderici = “Gonderici@mail.com”
$SMTP = “xxxxxxxxxxxxxx.com”
$baslik = “Kullanıcı Raporu”
HTML script’I kullanarak isteğimize göre bir tablo tasarlıyoruz.
$style = “<style>BODY{font-family: Calibri; font-size: 10pt;}”
$style = $style + “TABLE{border: 5px; background-color: powderblue; border-collapse: collapse;}”
$style = $style + “TH{border: 2px; color: black; background: #dddddd; padding: 5px; }”
$style = $style + “TD{border: 2px; color: purple; padding: 5px; }”
$style = $style + “</style>”
Powershell Script ile kullanıcı bilgilerini edinebilmemiz için GET-ADUSER komutunu kullanıyoruz.
$userinfo = get-aduser $user -Properties * | select Displayname, Emailaddress, Description, LastLogonDate
$userinfo değişkenine atadığımız kullanıcı bilgilerini HTML body’sinde kullanabilmek amaçlı $userinfohtml değişkenine HTML olarak dönüştürüyoruz.
$userinfohtml = $userinfo | ConvertTo-Html -Head $style
Email body’miz içerisine edindiğimiz bilgilerin olduğu değişkeni aşağıda belirtiyoruz. Yukarıdaki style’lara göre görselimiz oluşacak.
$EmailBody = @”
<br />
<font face=Tahoma>$userinfohtml</font><br />
<br /></font></h5>
Mail’e ek olarak bir adet txt belgesi ve bir adet jpg formatında resim ekliyoruz.
$ek = “C:\dilek.txt”
$ek2 = “C:\1.JPG”
Son olarak Powershell Script ile HTML içeriğimizin de görünmesi için BodyAsHTML ile mail gönderimini sağlıyoruz.
Send-MailMessage -To $userinfo.EmailAddress -From $gonderici -SmtpServer $SMTP -Subject $baslik -Body $EmailBody -Attachments $ek, $ek2 -Encoding ([System.Text.Encoding]::Unicode) –BodyAsHTML
Resim – 2
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar:
TAGs: Microsoft Powershell Script, Powershell, Powershell Scripting, HTML Body, HTML in Powershell