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, 3614 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
Exchange Server
Exchange 2016 - E-Mail Versand

Frage von hugooo zum Thema Exchange Server ...

Exchange Server
gelöst E-Mail Versand nicht möglich - Providerwechsel (6)

Frage von Campino86 zum Thema Exchange Server ...

Windows 10
Skript zum Auslesen und Automatischen Versenden von E-Mails (3)

Frage von weber4134 zum Thema Windows 10 ...

Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (16)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Exchange Server
Apple Mail mit Exchange 2010 verbinden (12)

Frage von DieAzubinne zum Thema Exchange Server ...