Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

E-Mail Versand Powershell, -body Variable auslesen

Frage Entwicklung Batch & Shell

Mitglied: MasterBlaster88

MasterBlaster88 (Level 1) - Jetzt verbinden

16.06.2014, aktualisiert 09:39 Uhr, 3461 Aufrufe, 3 Kommentare, 1 Danke

Guten Morgen,

ich glaube ich steh ein wenig auf dem Schlauch. Ich will eine E-Mail versenden und habe ein Problemchen. Ich hoffe Ihr könnt mir dabei helfen.
Ich will als Body von der E-Mail eine Log Datei versenden (ohne Anhang). Diese lese ich vorher in eine Variable ein und füge es später bei -body ein.


Inmoment sieht es so aus:

$EmailBody=Get-Content c:\scripts\log\log.txt
Send-MailMessage -To <<Empfänger>> -from <<Absender>> -SmtpServer mail.gmx.net -Subject "LogDatei" -Body $EmailBody -UseSsl -Credential $creds

Wenn ich das Script ausführe kommt die Fehlermeldung:

Send-MailMessage : "System.Object[]" kann nicht in den Typ "System.String" konvertiert werden, der für den Parameter "Body" erforderlich ist. Die angegebene Methode wird nicht unterstützt.
Bei Zeile:2 Zeichen:118
Send-MailMessage -To <<Empfänger>> -from <<Absender>> -SmtpServer mail.gmx.net -Subject "LogDatei" -Body <<<< $EmailBody -UseSsl -Credential $creds
CategoryInfo : InvalidArgument: (: ) [Send-MailMessage], ParameterBindingException
FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.SendMailMessage

(Hab natürlich Empfänger und Absender anonymisiert... da stehen tatsächlich E-Mail Adressen drin)
Ich benutze Das Script ziemlich oft, aber diese Konstellation hatte ich noch nicht. Wie kann ich den Variablen Inhalt in String Konvertieren?!



Ich hoffe Ihr könnt mir ein wenig weiterhelfen.

Infos:
- Windows Server 2008 R2
- Windows Powershell ISE Host Version 2.0
- E-Mail Versand funktioniert einwandfrei (nur Body macht Probleme)



(P.S: Sorry für die Formatierung... ist noch ziemlich früh heute morgen )
Mitglied: colinardo
LÖSUNG 16.06.2014, aktualisiert um 09:39 Uhr
Moin MasterBlaster,
ändere diese Zeile wie folgt ab:
01.
$EmailBody=Get-Content c:\scripts\log\log.txt | Out-String
Dann ist der Typ der Variablen kein Zeilen-Array mehr sondern ein purer String!

Grüße Uwe
Bitte warten ..
Mitglied: MasterBlaster88
16.06.2014 um 09:39 Uhr
Super
danke für die schnelle Antwort Uwe.
Ich stand wirklich auf dem Schlauch
Bitte warten ..
Mitglied: AnkhMorpork
16.06.2014, aktualisiert um 12:05 Uhr
Hallo,

alternativ sollte auch das funktionieren:

01.
$EmailBody=(Get-Content c:\scripts\log\log.txt).ToString()
Gruß
ANKH


Nachtrag: Habe beide Varianten eben mal mit größeren Textdateien durchgespielt. Die Variante 2 läuft hier deutlich schneller (ca. Faktor 3). Ist vielleicht für längere Logfiles interessant.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Exchange Server
gelöst SBS 2003 Exchange deaktiviert - E-Mail-Versand untereinander funktioniert nicht (3)

Frage von Wirdnoch zum Thema Exchange Server ...

Windows Netzwerk
gelöst Powershell skript zum Auslesen der im AD angemeldeten User (2)

Frage von jan.kleinel zum Thema Windows Netzwerk ...

Exchange Server
Exchange 2016 - E-Mail Versand

Frage von hugooo zum Thema Exchange Server ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte