Ich dachte mir gerade, dass ich das Skript noch mit Euch teile. Der TO wird das nun selbst geschrieben haben, daher veröffentliche es mal.
Viel Spaß damit, wer es benötigen möchte.
#
# Functions
#
function New-Mail(
[string]$Subject,
[string]$ContentFilePath
) {
# Outlook starten
$outlook = New-Object -ComObject Outlook.Application
[string]$mailContent = Get-Content -Path $ContentFilePath -RAW
if ($null -eq $outlook) {
return
}
# Mail vorbereiten
$mail = $outlook.CreateItem(0)
$mail.Subject = $Subject
$mail.Body = $mailContent
return $mail
}
#
# Script
#
$mailSubject = "Rechnungen"
$mailContentPath = "C:\Users\Jan\Desktop\MailTextSendTo.txt"
if ($args.Count -gt 0) {
# Erstelle die Mail
try {
Write-Host -Object "[i] Erstelle die Mail..."
$mailObject = New-Mail -Subject $mailSubject -ContentFilePath $mailContentPath
}
catch {
Write-Error -Message "[Err] Die Mail konnte nicht vorbereitet werden! $_"
Start-Sleep -Seconds 5
continue
}
# Füge den/die Anhänge hinzu
$args | ForEach-Object {
$item = Get-Item -Path $_
# Ausschluss von Ordner, statt Dateien
if ($item.PSIsContainer -eq $false) {
Write-Host -Object "[i] Füge Datei hinzu: $_"
$mailObject.Attachments.Add($_) | Out-Null
}
}
# Ende, Anzeigen der Mail
$mailObject.Display()
Write-Host -Object "[i] Ende"
}
else {
Write-Warning -Message "[W] Kein Anhang gefunden, Mail wird nicht erstellt."
Start-Sleep -Seconds 5
}