Powershell/Mail/mail_csv_senden.ps1
Alin e6207b59c7 mail_csv_senden.ps1
Anrede und Anredeform hinzugefügt.
2026-03-11 09:53:25 +00:00

83 lines
3.0 KiB
PowerShell

# --- Modul-Check ---
if (!(Get-Module -ListAvailable ActiveDirectory)) {
Write-Error "Das Active Directory Modul ist nicht installiert. Bitte RSAT installieren."
return
}
# --- Konfiguration ---
$csvPath = "C:\Temp\datei2.csv" # Pfad prüfen
$PSEmailServer = "smtp.int.n-ergie"
$absender = "alin.sennewald@n-ergie.de"
$betreff = "WICHTIG: Prüfung IT-Services (Abschaltung H-Laufwerk 2026)"
# CSV importieren (Spalte 1: User, Spalte 2: Anwendungen)
$daten = Import-Csv -Path $csvPath -Delimiter ","
foreach ($zeile in $daten) {
$samAccountName = $zeile.User.Trim()
$anwendungenRaw = $zeile.Anwendungen
try {
# E-Mail-Adresse aus dem AD abrufen
Write-Host "Suche Mailadresse für $samAccountName..." -ForegroundColor Yellow
$adUser = Get-ADUser -Identity $samAccountName -Properties EmailAddress, extensionAttribute3
$empfaenger = $adUser.EmailAddress
$anrede = $adUser.extensionAttribute3
$nachname = $adUser.Surname
# Adjektivattribut vor Herr / Frau bestimmen und in Variable schreiben
if ($anrede -eq "Herr") {
$vanrede = "geehrter"
}
elseif ($anrede -eq "Frau") {
$vanrede = "geehrte"
}
else {
# Fallback, falls das Geschlecht unbekannt ist
$vanrede = "geehrte/r"
}
if (-not $empfaenger) {
Write-Warning "Keine E-Mail-Adresse für User '$samAccountName' im AD hinterlegt. Zeile wird übersprungen."
continue
}
# HTML-Liste aus den Anwendungen bauen
$anwendungenHtml = "<ul>"
$anwendungenRaw.Split(';') | ForEach-Object {
$item = $_.Trim()
if ($item) { $anwendungenHtml += "<li>$item</li>" }
}
$anwendungenHtml += "</ul>"
# HTML-Body
$htmlBody = @"
<html>
<body style="font-family: Calibri, Arial, sans-serif;">
<p>Sehr $vanrede $anrede $nachname,</p>
<p>im IT-Servicekatalog (Stand Q1 2026) sind Sie als serviceverantwortliche Person für folgende(n) Service(s) hinterlegt:</p>
<div style="background-color: #f4f4f4; padding: 10px; border-left: 4px solid #005bb7;">
$anwendungenHtml
</div>
<p>Da das <b>H-Laufwerk bis Ende Q4 2026 abgeschaltet wird</b>, prüfen wir derzeit, ob der oben genannte Service auf das User-Home-Laufwerk angewiesen ist.</p>
<p>Sollte der Service das H-Laufwerk benötigen, bitten wir um Rückmeldung bis zum <b>31.03.2026</b>.</p>
<p>Mit freundlichen Grüßen<br>Ihr IT-Service</p>
</body>
</html>
"@
# Versand
Write-Host "Sende an $empfaenger ($samAccountName)..." -ForegroundColor Green
Send-MailMessage -To $empfaenger `
-From $absender `
-Subject $betreff `
-Body $htmlBody `
-BodyAsHtml `
-Encoding UTF8
} catch {
Write-Warning "Fehler bei User '$samAccountName': $($_.Exception.Message)"
}
}