tobiasgreis
Goto Top

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.

Content-Key: 508287

Url: https://administrator.de/contentid/508287

Printed on: April 27, 2024 at 19:04 o'clock

Mitglied: 141575
141575 Oct 24, 2019 updated at 09:42:55 (UTC)
Goto Top
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