Автоматическое приветственное письмо новому сотруднику компании. Exchange 2013

Для реализации данной функциональности будем использовать агента «Scripting Agent» сервера MS Exchange ( по умолчанию агент отключен)

1. агент сценариев использует файл “ScriptingAgentConfig.xml”, который находится в директории \Bin\CmdletExtensionAgents папки в которую установлен сервер Ms Exchange.  

<?xml version="1.0" encoding="utf-8" ?>
<Configuration version="1.0">
<Feature Name="WelcomeEmail" Cmdlets="New-Mailbox,Enable-Mailbox">
<ApiCall Name="OnComplete">

if($succeeded) {
	# Waiting for synchronization after mailbox has been created.
	Set-ADServerSettings -ViewEntireForest $true
	Start-Sleep -s 10
	# New-Mailbox triggered. Taking SamAccountName parameter.
		if ($provisioningHandler.UserSpecifiedParameters.Contains("SamAccountName") -eq $true) {
		$UsrSamAccountName = $provisioningHandler.UserSpecifiedParameters["SamAccountName"]
		$UsrAlias = (Get-Mailbox -Filter {SamAccountName -eq $UsrSamAccountName}).Alias.ToString()
		}
	# Enable-Mailbox triggered. Taking Identity parameter, this is the only one avalaible in this case.
	if ($provisioningHandler.UserSpecifiedParameters.Contains("Identity") -eq $true) {
	$UsrIdentity = $provisioningHandler.UserSpecifiedParameters["Identity"].ToString()
	$UsrAlias = (Get-Mailbox -Identity $UsrIdentity).Alias.ToString()
	}
 
	# Defining variables.
		$UsrAddr = (Get-Mailbox -Filter {Alias -eq $UsrAlias}).PrimarySmtpAddress.ToString()
		$UsrOU = (Get-Mailbox -Filter {Alias -eq $UsrAlias}).OrganizationalUnit

	        # Sending email notification to the user in specific OU.
		if ($UsrOU -match "DOMAIN.RU/Unit_NAME") {

		####################
		#      HR          #
		####################
		$fromHR="HR@iamroot.ru"
		$SubjectHR="'Добро пожаловать в компанию iamroot'"
		$BodyHR = [string] (get-content ("c:\welcome\WelcomeMSGHR.htm")) 
		$fileHR = "c:\welcome\WelcomeMSGHR.htm"
		$smtp="MAIL"
		Send-MailMessage -From $fromHR -To $UsrAddr -Subject  $SubjectHR -Body $BodyHR -BodyAsHtml -Encoding ([System.Text.Encoding]::UTF8) -SmtpServer $Smtp
		####################
		#      IT	   #
		####################
		$fromIT="post@iamroot.ru"
		$SubjectIT="'IT. (Обязательно к прочтению)'"
		$BodyIT = "'Мы рады приветствовать Вас, $UsrAddr,  в компании iamroot и просим ознакомиться с правилами работы и некоторыми инструкциями… файлы во вложении'" 
		$fileIT1 = "c:\welcome\1.pdf"
		$fileIT2 = "c:\welcome\2.pdf"
		$fileIT3 = "c:\welcome\3.pdf"
		$fileIT4 = "c:\welcome\4.pdf"
		$fileIT5 = "c:\welcome\5.pdf"
		$fileIT6 = "c:\welcome\6.pdf"
		Send-MailMessage -From $fromIT -To $UsrAddr -Subject  $SubjectIT -Body $BodyIT -Attachment $fileIT1,$fileIT2,$fileIT3,$fileIT4,$fileIT5,$fileIT6 -Encoding ([System.Text.Encoding]::UTF8) -SmtpServer $Smtp
		####################
 }
 # Clearing variables. Each one in its own line in order to prevent error messages from being shown on EMC.
 if ($UsrAlias) { Remove-Variable UsrAlias }
 if ($UsrAddr) { Remove-Variable UsrAddr }
 if ($UsrOU) { Remove-Variable UsrOU }
 if ($UsrMsg) { Remove-Variable UsrMsg }
 if ($UsrIdentity) { Remove-Variable UsrIdentity }
 if ($UsrSamAccountName) { Remove-Variable UsrSamAccountName }
}
</ApiCall>
</Feature>
</Configuration>

Стартуем агента.

PS1> Enable-CmdletExtensionAgent «Scripting Agent»

 

з.ы. Сохранять конфиг и HTML исключительно в кодировке UTF-8

Статья помогла? поддержите проект!

Автоматическое приветственное письмо новому сотруднику компании. Exchange 2013: 1 комментарий

  1. Alexander

    Интересно. Внедрил со своими правками =)
    Но вот еще интересная вещь, как бы в письмо вставить картинки?
    По разному пытался.. не выходит никак, уже и картинку встраивал непосредственно в код… Не хочет, а было бы здорово.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Time limit is exhausted. Please reload the CAPTCHA.