এই নিবন্ধে আমরা দেখাব কীভাবে এক্টিভ ডিরেক্টরির ডেটা ব্যবহার করে আউटलুক ২০১০/২০১৩-এ ব্যবহারকারীর সিগনেচার স্বয়ংক্রিয়ভাবে তৈরি করা যায়। নিচের পরিস্থিতি বিবেচনা করা হবে: একটি নতুন ডোমেন ব্যবহারকারী প্রথমবার ওয়ার্কস্টেশনে লগ অন করলে, পাওয়ারশেল স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে আউटलুক ব্যবহারকারীর সিগনেচার ফাইল তৈরি করবে যার যোগাযোগের তথ্য এক্টিভ ডিরেক্টরি থেকে আনবে।
এই স্ক্রিপ্টটি সঠিকভাবে কাজ করার জন্য, AD-এ সব ব্যবহারকারীর সমস্ত প্রয়োজনীয় অ্যাট্রিবিউট পূর্ণ থাকতে হবে। এই উদাহরণে, আমরা ব্যবহারকারীর সিগনেচারে নিম্নলিখিত এক্টিভ ডিরেক্টরি অ্যাট্রিবিউটগুলো ব্যবহার করব:
- পূর্ণ ব্যবহারকারীর নাম (আমার ক্ষেত্রে, এই ডেটা Description অ্যাট্রিবিউটে সংরক্ষিত)
- পদবী (Title)
- কোম্পানির নাম (Company)
- পোস্টাল কোড, শহর এবং ঠিকানা (PostalCode, City, StreetAddress)
- ফোন নম্বর (OfficePhone)
- ই-মেইল (Mail)
- ওয়েবসাইট (Homepage)

আউटलুক সিগনেচার টেমপ্লেটের জন্য htm (HTML), rtf (Rich Text) এবং txt (Plain Text) ফরম্যাটে ৩টি ফাইল তৈরি করতে হবে। এই ফাইলগুলোর ডিজাইন, বিষয়বস্তু এবং চেহারা কর্পোরেট ইমেল সিগনেচার নীতির সাথে সुसঙ্গত হতে হবে।
signature.htm ফাইলটি নিচের HTML কোড দিয়ে তৈরি করুন:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head></head>
<body>
<div id style="font-family:Arial&;color:#5B9BD5;">
<span style="font-size:10pt;color:#000000;">
<b><p>Best Regards</p>
<p>@NAME</p> </span>
<span style="font-size:9.0pt;">
<p> </p>
<p>@DESCRIPTION</p>
<p>@COMPANY</p></b>
<p> </p></span>
<span style="font-size:8.0pt;">
<p> @POSTALCODE, @CITY, @STREETADDRESS</p>
<p> Phone.@OFFICEPHONE</p>
<p> <a href="https://@WEBSITE">@WEBSITE</a></p>
<p>e-mail:<a href="mailto:@EMAIL">@EMAIL</a></span>
</div>
</body>
</html>

signature.rtf এবং signature.txt ফাইলগুলোর বিষয়বস্তু নিচের মতো হওয়া উচিত:
Best Regards,
@NAME
@DESCRIPTION
@COMPANY
@POSTALCODE, @CITY, @STREETADDRESS
Phone. @OFFICEPHONE
e-mail:@EMAIL
site:@WEBSITE
OutlookSignature ফোল্ডারটি C:\Users\Public\Downloads-এ তৈরি করুন যাতে আউटलুক সিগনেচার টেমপ্লেট এবং কম্পিউটার ব্যবহারকারীদের সিগনেচার সংরক্ষণ করা যায়। C:\Users\Public\Downloads\OutlookSignature-এ Templates নামের একটি সাবফোল্ডার তৈরি করুন এবং সিগনেচার টেমপ্লেট ধারণকারী তিনটি ফাইলটি সেখানে কপি করুন। আপনি এটি ম্যানুয়ালি বা গ্রুপ পলিসি প্রিফারেন্স (GPP) ব্যবহার করে করতে পারেন।

outlooksignature.ps1 নামে একটি নতুন ফাইল নিচের পাওয়ারশেল কোড দিয়ে তৈরি করুন (আমি কোডের প্রতিটি ব্লকের সংক্ষিপ্ত বিবরণ দেব):
ভেরিয়েবল সেট নির্ধারণ করুন। $User ভেরিয়েবলে স্ক্রিপ্টটি চালাচ্ছে ব্যবহারকারীর নাম থাকবে। ফাইলগুলোর নাম, এক্সটেনশন এবং পথ অন্যান্য ভেরিয়েবলগুলিতে নির্দিষ্ট করুন।
$User = $env:UserName
$FileName = "signature"
$FileExtension = "htm","rtf","txt"
$Path = "C:\Users\Public\Downloads"
$PathSignature = "$Path\OutlookSignature"
$PathSignatureTemplates = "$Path\OutlookSignature\Templates"
$PathSignatureUser = "$PathSignature\$User"
$AppSignatures =$env:APPDATA + "\Microsoft\Signatures"
AD অ্যাক্সেস করার জন্য পাওয়ারশেল মডিউল ইম্পোর্ট করুন। Get-ADUser কমান্ডলেট ব্যবহার করে এক্টিভ ডিরেক্টরিতে ব্যবহারকারীর প্রয়োজনীয় অ্যাট্রিবিউটের মান পান এবং সেগুলো $AD_user অবজেক্টে সংরক্ষণ করুন।
নোট: উইন্ডোজ ৭-এ Get-ADUser কমান্ডলেট কাজ করার জন্য RSAT ইনস্টল থাকতে হবে। Active Directory Module For Windows PowerShell কম্পোনেন্টটিও সক্রিয় থাকতে হবে (Control Panel → Programs and Features → Turn On/Off Windows Features → Remote Server Administration Tools → Role Administration Tools → AD DS And AD LDS Tools).
Import-module activedirectory
$AD_user = Get-ADUser $User -Properties Title,Company,Description,Fax,HomePage,Mail,OfficePhone,PostalCode,City,StreetAddress
ব্যবহারকারীর সিগনেচার ফাইল সংরক্ষণের জন্য ফোল্ডার তৈরি করুন এবং টেমপ্লেটগুলো কপি করুন:
New-Item -Path "$PathSignature\$User" -ItemType Container –Force
foreach ($Ext in $FileExtension)
{
Copy-Item -Force "$PathSignatureTemplates\$FileName.$Ext" "$PathSignatureUser\$FileName.$Ext"
}
তারপর replace ফিচার ব্যবহার করে টেমপ্লেটের ডেটা AD থেকে ব্যবহারকারীর ডেটা দিয়ে প্রতিস্থাপন করুন:
foreach ($Ext in $FileExtension)
{
(Get-Content "$PathSignatureUser\$FileName.$Ext") | Foreach-Object {
$_`
-replace "@NAME", $AD_user.Description `
-replace "@DESCRIPTION", $AD_user.title `
-replace "@COMPANY", $AD_user.Company `
-replace "@STREETADDRESS", $AD_user.StreetAddress `
-replace "@POSTALCODE", $AD_user.PostalCode `
-replace "@CITY", $AD_user.City `
-replace "@OFFICEPHONE", $AD_user.OfficePhone `
-replace "@EMAIL", $AD_user.Mail `
-replace "@WEBSITE", $AD_user.Homepage `
} | Set-Content "$PathSignatureUser\$FileName.$Ext"
}
এখন আপনাকে সিগনেচার টেমপ্লেট ধারণকারী ফাইলগুলিকে আউटलুক ২০১০/২০১৩/২০১৬ সিগনেচার সংরক্ষণ করার ফোল্ডারে — %APPDATA%\Microsoft\Signatures (C:\Users\username\AppData\Roaming\Microsoft\Signatures) — কপি করতে হবে।
foreach ($Ext in $FileExtension)
{
Copy-Item -Force "$PathSignatureUser\$FileName.$Ext" "$AppSignatures\$User.$Ext"
write-host "$PathSignatureUser\$FileName.$Ext"
write-host "$AppSignatures\$User.$Ext"
}
আউटलুক শুরু হলে এই সিগনেচার টেমপ্লেট ফাইলগুলো ব্যবহার করতে, নিচের কাজগুলো করুন:
- HKEY_CURRENT_USER\Software\Microsoft\Office\< Office_Version>\Outlook\Setup থেকে First-Run মানটি মুছুন
- HKEY_CURRENT_USER\Software\Microsoft\Office\< Office version>\Common\MailSettings-এ NewSignature এবং ReplySignature নামে দুটি স্ট্রিং মান তৈরি করুন, যাতে টেমপ্লেটের নাম এবং সিগনেচার থাকবে (আমাদের ক্ষেত্রে টেমপ্লেটের নাম AD অ্যাকাউন্টের নামের সাথে একই)
বিভিন্ন এমএস অফিস সংস্করণে কাজ করার জন্য, এই কোডটি যোগ করতে হবে:
#Office 2010
If (Test-Path HKCU:'\Software\Microsoft\Office\14.0') {
Remove-ItemProperty -Path HKCU:\Software\Microsoft\Office\14.0\Outlook\Setup -Name First-Run -Force -ErrorAction SilentlyContinue -Verbose
New-ItemProperty HKCU:'\Software\Microsoft\Office\14.0\Common\MailSettings' -Name 'ReplySignature' -Value $User -PropertyType 'String' -Force
New-ItemProperty HKCU:'\Software\Microsoft\Office\14.0\Common\MailSettings' -Name 'NewSignature' -Value $User -PropertyType 'String' -Force
}
#Office 2013
If (Test-Path HKCU:'\Software\Microsoft\Office\15.0') {
Remove-ItemProperty -Path HKCU:\Software\Microsoft\Office\15.0\Outlook\Setup -Name First-Run -Force -ErrorAction SilentlyContinue -Verbose
New-ItemProperty HKCU:'\Software\Microsoft\Office\15.0\Common\MailSettings' -Name 'ReplySignature' -Value $User -PropertyType 'String' -Force
New-ItemProperty HKCU:'\Software\Microsoft\Office\15.0\Common\MailSettings' -Name 'NewSignature' -Value $User -PropertyType 'String' -Force
}

এই পাওয়ারশেল স্ক্রিপ্টটি গ্রুপ পলিসি প্রিফারেন্স ব্যবহার করে ব্যবহারকারী সিস্টেমে লগইন করলে একবার চালানোর জন্য সেট করুন। ফলে, আউटलুক আউটগোয়িং ইমেলের জন্য আমাদের তৈরি করা সিগনেচার ব্যবহার করবে। নিবন্ধের প্রথম ছবিতে এই সিগনেচারের একটি নমুনা দেখানো হয়েছে।
কিছু টিপস
- যদি আউटलুক HTM সিগনেচার বড় (ডাবল) স্পেসিং দিয়ে দেখায়, তবে এটি আউटलুক বাগ। সেক্ষেত্রে আউटलুকের ভিতরেই HTM সিগনেচার তৈরি করা ভালো, এবং এটি টেমপ্লেট হিসেবে ব্যবহার করুন (%APPDATA%\Microsoft\Signatures-এ সংরক্ষিত)
- আপনি এক্টিভ ডিরেক্টরির thumbnailPhoto অ্যাট্রিবিউট থেকে ব্যবহারকারীর ছবি সিগনেচারে যোগ করতে পারেন। যেহেতু আউटलুক সিগনেচারে ছবি যোগ করার কোনো সহজ উপায় নেই, ভালো হবে আউटलুক থেকে যেকোনো ছবি ধারণকারী একটি সিগনেচার টেমপ্লেট তৈরি করা এবং পাওয়ারশেল স্ক্রিপ্টে টেমপ্লেট ফোল্ডারের ছবি ফাইলটি প্রতিস্থাপন করা (ছবিটি %AppData%\Microsoft\Signatures\<signature name>.files-এ সংরক্ষিত থাকে)
- এক্সচেঞ্জ ২০০৭ এবং পরবর্তী সংস্করণে, আপনি ট্রান্সপোর্ট রুল ব্যবহার করে সব ইমেলে সহজে সিগনেচার যোগ করতে পারেন