nagus
Goto Top

Powershell Send-MailMessage Probleme mit Empfängern

So,
kämpfe aktuell mit einem idiotischen Problem und komme nicht weiter:

Ich will 'ne Anzahl emails an Personen raushauen.

 $recipient="$($temp.mail), $($manager.UserPrincipalName)"  
$Betreff="TEST: $($n.Zusammenfassung)"  
Send-MailMessage -To $recipient -cc "$CopyEmail" -From $Absender  -Subject $Betreff -BodyAsHtml $body -SmtpServer “emailservername” -Encoding UTF8  

Alles läuft, bis auf den Punkt dass er nicht an mehrere Empfänger versendet, bzw. nix versendet.

$recipient zeigt mir die korrekten Emailadressen an, getrennt durch ein Komma und ein Leerzeichen. Eine einzelne Email Adresse geht einwandfrei raus. Mehrere aber um verrecken nicht ...
Was mache ich falsch?

Thx
Nagus

Content-Key: 627181

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

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

Member: erikro
erikro Dec 01, 2020 updated at 20:30:03 (UTC)
Goto Top
Moin,

Du brauchst ein StringArray und keinen String.

[string[]]$recipient="$($temp.mail)", "$($manager.UserPrincipalName)"  

So wie Du das machst, kommt als eine Mailadresse irgendwie sowas an

empfaenger@acme.com,[Leertaste]manager@meinedom.com

weil das innerhalb eines Anführungszeichenpaars steht. Das wird nichts. face-wink

hth

Erik
Member: mbehrens
Solution mbehrens Dec 01, 2020 at 20:40:50 (UTC)
Goto Top
Zitat von @Nagus:

 $recipient="$($temp.mail), $($manager.UserPrincipalName)"  
> $Betreff="TEST: $($n.Zusammenfassung)"  
> Send-MailMessage -To $recipient -cc "$CopyEmail" -From $Absender  -Subject $Betreff -BodyAsHtml $body -SmtpServer “emailservername” -Encoding UTF8  

Alles läuft, bis auf den Punkt dass er nicht an mehrere Empfänger versendet, bzw. nix versendet.

$recipient zeigt mir die korrekten Emailadressen an, getrennt durch ein Komma und ein Leerzeichen. Eine einzelne Email Adresse geht einwandfrei raus. Mehrere aber um verrecken nicht ...
Was mache ich falsch?

Wie man der Dokumentation entnehmen kann, erwartet der Parameter -To keinen String sondern String.
Member: Nagus
Nagus Dec 01, 2020 updated at 20:49:41 (UTC)
Goto Top
Hi erikro,

nö - kommt richtig raus wenn ich die Variable mit $recipients prüfe. vvvv.zzzz@blabla.de, xxxx.yyyy@blabla.de
Selbst wenn ich zwei feste Adressen in der Form
$recipient="vvvv.zzzz@blabla.de, xxxx.yyyy@blabla.de"  
angebe, passiert nix ....

hier mal das ganze Skript ohne die Funktionen, wo ich den text zusammenbaue:
foreach ($n in $Data){
        
                        $temp = Get-ADUser -Filter "displayname -like '*$($n.displayname)*'" -properties * | select givenname, samaccountname, mail, manager  
                        $manager = get-aduser $temp.manager | select GivenName, UserPrincipalName
                                               
        
                        if($n.label -eq "breakfix"){  
                                                            $Betreff = $n.Zusammenfassung
                                                            $BreakeFixBody = break-fix
                                                            $BreakeFixBody
                                                          }
                        if($n.label -eq "DeviceBack"){  
                                                            $Betreff = $n.Zusammenfassung
                                                            $DeviceReturnBody = Device-return
                                                            $DeviceReturnBody
                                                          }
                        if($n.label -eq "DeviceReplace"){  
                                                            $Betreff = $n.Zusammenfassung
                                                            $DeviceReplaceBody = Device-replace
                                                            $DeviceReplaceBody
                                                          }
                        
                        $recipient="$($temp.mail), xxxx.yyyy@blabla.de"  

                        $Betreff="TEST: $($n.Zusammenfassung)"  
                        Send-MailMessage -To $recipient -cc "$CopyEmail" -From $Absender  -Subject $Betreff -BodyAsHtml $body -SmtpServer “Mailservername” -Encoding UTF8  
                      }
Member: Nagus
Nagus Dec 01, 2020 updated at 20:53:34 (UTC)
Goto Top
Zitat von @mbehrens:

Wie man der Dokumentation entnehmen kann, erwartet der Parameter -To keinen String sondern String.

Okay - das sagt mir nu aber nix, dazu sind meine PS Kentnisse zu mau. Kannst Du es mir kurz erklären?
Member: Nagus
Nagus Dec 01, 2020 at 20:59:26 (UTC)
Goto Top
okay, mit [String[]]$recipient="xxxx", "yyyy" funktioniert es.

Kann man das auch noch anders defnieren?


Thx mbehrens
Member: mbehrens
mbehrens Dec 01, 2020 at 21:22:39 (UTC)
Goto Top
Zitat von @Nagus:

okay, mit [String[]]$recipient="xxxx", "yyyy" funktioniert es.

Kann man das auch noch anders defnieren?

Viele Möglichkeiten, u. a.:

$recipientList = @("empfaenger1@domain1.xyz", "empfaenger2@domain2.xyz")  
$recipientList = @(
"empfaenger1@domain1.xyz"  
"empfaenger2@domain2.xyz"  
)
$recipientList = "empfaenger1@domain1.xyz", "empfaenger2@domain2.xyz"  
$recipientList = @()
$recipientList += "empfaenger1@domain1.xyz"  
$recipientList += "empfaenger2@domain2.xyz"  
Member: Nagus
Nagus Dec 01, 2020 at 23:23:11 (UTC)
Goto Top
Ah Danke! D.h. es ist nur ein Array. Damit habe ich schon öfters gearbeitet. Mit Strring konnte ich nix anfangen.
Member: erikro
erikro Dec 02, 2020 at 17:45:11 (UTC)
Goto Top
Zitat von @Nagus:

okay, mit [String[]]$recipient="xxxx", "yyyy" funktioniert es.

Kann man das auch noch anders defnieren?


Thx mbehrens

Das war das, was ich als erste Antwort geschrieben hatte. face-wink
Member: erikro
erikro Dec 02, 2020 at 17:47:03 (UTC)
Goto Top
Zitat von @Nagus:

Ah Danke! D.h. es ist nur ein Array. Damit habe ich schon öfters gearbeitet. Mit Strring konnte ich nix anfangen.

Steht in meiner ersten Antwort: Du brauchst ein StringArray und keinen String. Wobei ein OjectArray auch funktioniert. Das wäre dann die Lösung mit dem $var=@().