Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 3672 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 ...

VB for Applications
gelöst Auslesen von E-Mails über Access (7)

Frage von Florian-OVE zum Thema VB for Applications ...

Neue Wissensbeiträge
LAN, WAN, Wireless

Schwachstelle im WPA2 Protokoll veröffentlicht

(3)

Information von colinardo zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte