[PARAMETER(Mandatory=$True)][string]$text,
[PARAMETER(Mandatory=$True)][string]$link,
[array]$objects = @($Global:objSelection,$Global:objSelection_reply),
[string]$size_font = "9",
[int]$color = $Grey_color,
[string]$font = "Tahoma",
[bool]$Bold
)
#foreach ($i=0; $i -le ($objects.Count-1); $i++) {
$objects | %{
$Range = $_.Range
$hyp = $_.Hyperlinks.Add($Range, $link, "" , "",$text)
$hyp.Range.Font.Name = $font
$hyp.Range.Font.Size = $size_font
$hyp.Range.Font.Color = $color
if ($Bold) {
$hyp.Range.Font.Bold = $True
}
else {
$hyp.Range.Font.Bold = $False
}
}
}
function Add-Text {
param (
[PARAMETER(Mandatory=$True)][string]$text,
[array]$objects = @($Global:objSelection,$Global:objSelection_reply),
[string]$font="Tahoma",
[string]$fontsize="9",
[switch]$bold,
[int]$colortext=$Grey_color
)
for ($i=0; $i -le ($objects.Count-1); $i++) {
$objects[$i].ParagraphFormat.SpaceAfter=1
$objects[$i].Font.Color = $colortext
if ($bold){$objects[$i].Font.Bold = $True}
else{$objects[$i].Font.Bold = $False}
$objects[$i].Font.Name = $font
$objects[$i].Font.Size = $fontsize
$objects[$i].TypeText($text)
}
}
function Add-NewLine {
param (
[array]$objects = @($Global:objSelection,$Global:objSelection_reply)
)
for ($i=0; $i -le ($objects.Count-1); $i++) {
Add-Text "`n" -objects $objects[$i]
}
}
$objWord = New-Object -ComObject Word.Application
#region Создаём COM объект, устанавливаем опции
$objWord = New-Object -ComObject Word.Application
$objDoc = $objWord.Documents.Add()
$Global:objSelection = $objWord.Selection
$objDoc_reply = $objWord.Documents.Add()
$Global:objSelection_reply = $objWord.Selection
#$Global:objSelection.Style = "No Spacing"
$objEmailOptions = $objWord.EmailOptions
$objSignatureObject = $objEmailOptions.EmailSignature
$objSignatureEntries = $objSignatureObject.EmailSignatureEntries
#endregion
#region наполняем контент
Add-Text -text "ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ" -fontsize "11" -bold
Add-NewLine
Add-Text -text "ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ" -fontsize "11"
Add-NewLine
Add-HyperLink -link "mailto:$mail" -text $mail
Add-NewLine
Add-Text -text "ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ" -fontsize "11" -bold
Add-NewLine
Add-Text -text "ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ" -fontsize "11"
Add-NewLine
#endregion
#region Сохраняем результат и устанавливаем в подпись
$Global:objSelection = $objDoc.Range()
$Global:objSelection_reply = $objDoc_reply.Range()
$objSignatureEntries.Add("Sign", $Global:objSelection)
$objSignatureEntries.Add("Sign_reply", $Global:objSelection_reply)
$objSignatureObject.NewMessageSignature = "Sign"
$objSignatureObject.ReplyMessageSignature = "Sign_reply"
$objDoc.Saved = $True
$objDoc.Close
$objDoc_reply.Saved = $True
$objDoc_reply.Close
$objWord.Quit
#endregion
# Закрываем все процессы outlook. Бывает что он подвисает в момент закрытия COM объекта.
Get-WmiObject Win32_Process | ?{$_.name -match "outlook.exe|word"} | %{$_.Terminate()}
сорям, я подобное последний раз делал лет 10 назад, нича не помню уже)
Обсуждают сегодня