none
Mehrzeilige Textdatei in eine Variable einlesen RRS feed

  • Frage

  • Hallo,

    ich habe ein PowerShell Script, mit dem ich eine E-Mail in Outlook erstelle und in der Mail alle Felder (to, cc, subject, body) fülle.
    Der Mail-Text ist momentan noch im Script (Quelltext) definiert:

    $MailBody = 
    "Sehr geehrte Damen und herren,
    
    Text, text
    Text nach Zeilenumbruch.
    
    Mit freundlichen Grüßen"

    Das ganze funktioniert ohne Probleme.

    Aufgrund der einfacheren Wartbarkeit möchte ich den Text in eine Textdatei auslagern und diese laden:

    $MailBody = Get-content C:\Pfad\Dateiname_mit_Unterstrich.txt 

    Jedoch wird mir jetzt eine Fehlermeldunge angezeigt:

    Typenkonflikt: Der Datentyp des Parameters kann nicht erzwungen werden. Die Zeichenfolge kann von Outlook nicht
    übersetzt werden.

    Was muss ich denn machen, damit ich den Inhalt der Textdatei verwenden kann?
    Ich bin was die PowerShell angeht noch Anfänger.

    Danke und Gruß

    OLLI


    • Bearbeitet OLLI_S Montag, 12. August 2019 14:19
    Montag, 12. August 2019 14:18

Antworten

  • Get-Conten liefert ein Array von Textzeilen aus der Textdatei.
    MailBody erwartet aber kein Array sondern einen String.

    Also must du aus dem Array wieder einen String zaubern:

    $MailBody = ((Get-content C:\Pfad\Dateiname_mit_Unterstrich.txt) -join "`r`n")

    sollte u.U. funktionieren.
    Statt CRLF kannst du u.U. auch "<br>" wählen, wenn der Mailtyp HTML ist.

    • Als Antwort markiert OLLI_S Dienstag, 13. August 2019 06:35
    Montag, 12. August 2019 14:37

Alle Antworten

  • Get-Conten liefert ein Array von Textzeilen aus der Textdatei.
    MailBody erwartet aber kein Array sondern einen String.

    Also must du aus dem Array wieder einen String zaubern:

    $MailBody = ((Get-content C:\Pfad\Dateiname_mit_Unterstrich.txt) -join "`r`n")

    sollte u.U. funktionieren.
    Statt CRLF kannst du u.U. auch "<br>" wählen, wenn der Mailtyp HTML ist.

    • Als Antwort markiert OLLI_S Dienstag, 13. August 2019 06:35
    Montag, 12. August 2019 14:37
  • Statt CRLF kannst du u.U. auch "<br>" wählen, wenn der Mailtyp HTML ist.

    Beachte aber dass die maximale Zeilenlänge 1000 Zeichen (998 + crlf) nicht übersteigen darf. Daher die Empfehlung nach dem <BR> trotzdem ein crlf zu schreiben).

    Nachtrag: ist eine Mail Beschränkung, keine PowerShell Beschränkung

    Dienstag, 13. August 2019 05:51
  • Danke, funktioniert bestens!
    Dienstag, 13. August 2019 06:36