Hintergrund: Basierend auf einem Inputfile sollen bestimmte Teile in einem (komplexen) Mail Template getauscht werden und dann das Ergebnis verschickt werden.
Lösung: Template erstellen, zu tauschende Stellen irgendwie markieren (§§§CLIENT§§§ z.B.) und das Mail als .MSG speichern.
Script:
$targetdate="10.7.2019"
$targetcomputer="MyPC"
$recipients="a@b.c","d.e@f.h"
$ol=New-Object -ComObject Outlook.Application
$msg=$ol.CreateItemFromTemplate("C:\Temp\Template.msg")
$msg.Subject=$msg.Subject.Replace("§§§DATE§§§",$targetdate).Replace("§§§CLIENT§§§",$targetcomputer)
$msg.HTMLBody=$msg.HTMLBody.Replace("§§§DATE§§§",$targetdate).Replace("§§§CLIENT§§§",$targetcomputer)
foreach ($rec in $recipients)
{
$msg.Recipients.Add($rec)
}
$msg.Save()
# anzeigen
$inspector=$msg.GetInspector()
$inspector.Display()
# $msg.Send() wäre die Alternative
# cleanup
Remove-Variable ol,msg,inspector