tobiasgreis

Powershell E-Mail Formatierung HTML

Hallo,

ich hab folgendes Problem.: Ich möchte bei meiner AD Abfrage die E-Mail Adresse in der HTML Ausgabe als Link anzeigen lassen.

Mein Code:

$IV =  Get-ADUser -Filter {Title -like "IV"}   -Properties * | Sort-Object -Property Department, Name | Select-Object @{Name = "Amt/Eigenbetrieb/Gesellschaft"; Expression = {$_.Department}}, Name, @{Name = "Telefon"; Expression = {$_.TelephoneNumber}}, Mail | ConvertTo-Html -Fragment -PreContent ‘<h2 align="center">IV-Beirat-Liste</h2>’ | Out-String        

ConvertTo-HTML -head $head -PostContent $EVP,$IV -PreContent “<h1 align="center"><u>EVP und IV-Beirat</u></h1>” | Out-File EVP+IV.html  

Gibt es eine Möglichkeit,die Mailadresse als anklickbaren Link zu definieeren, wie im HTML mit mailto? Ich hab schon verschiedenes ausprobiert, allerdings wurde dann entweder nur der Inhalt der Tabellenüberschrift als Link markiert, oder gar nichts.

Danke im Voraus.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 508287

Url: https://administrator.de/forum/powershell-e-mail-formatierung-html-508287.html

Ausgedruckt am: 09.07.2025 um 19:07 Uhr

141575
141575 24.10.2019 aktualisiert um 11:42:55 Uhr
Bau das HTML halt einfach mit einer Schleife selbst zusammen face-wink ...
$data = Get-ADUser -Filter {Title -like "IV"}   -Properties Department,Name,TelephoneNumber,Mail | Sort-Object -Property Department, Name | Select-Object @{Name = "Amt/Eigenbetrieb/Gesellschaft"; Expression = {$_.Department}}, Name, @{Name = "Telefon"; Expression = {$_.TelephoneNumber}}, Mail  

$html = @"  
<table>
$(
    $headings = ($data | gm -MemberType Noteproperty).Name
    "<tr>"  
    $headings | %{
        "<th>$_</th>"  
    }
    "</tr>"  
    foreach($row in $data){
        "<tr>"  
            $headings | %{
                if ($_ -eq 'Mail'){  
                    "<td><a href=`"mailto:$($row.$_)`">$($row.$_)</a></td>"  
                }else{
                    "<td>$($row.$_)</td>"  
                }
            }
        "</tr>"  
    }
)
</table>
"@  
$html
Alternativ wenn's sowieso nur die Mailadressen sind, kannst du die auch per Regex ersetzen, das wäre eine weitere Möglichkeit.
$IV = (Get-ADUser -Filter {Title -like "IV"} -Properties Department,Name,TelephoneNumber,Mail | Sort-Object -Property Department, Name | Select-Object @{Name = "Amt/Eigenbetrieb/Gesellschaft"; Expression = {$_.Department}}, Name, @{Name = "Telefon"; Expression = {$_.TelephoneNumber}}, Mail | ConvertTo-Html -Fragment -PreContent ‘<h2 align="center">IV-Beirat-Liste</h2>’) -replace '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b','<a href="mailto:$0">$0</a>'  
$IV