How to send mail with text and variables values on the body?

This topic contains 2 replies, has 2 voices, and was last updated by  Vandrey Trindade 2 years, 1 month ago.

  • Author
  • #41531

    Vandrey Trindade


    I'm trying to send and e-mail containing some variables values and text on it... That's what I was trying:

    $LogVerification = Get-EventLog -LogName System | Where {($_.EventID -eq 55) -and ($_.Message -like "*corrupt*") -and ($_.TimeGenerated -gt (Get-Date).AddDays(-1))} | select TimeGenerated,EntryType,Message | ft -Wrap -AutoSize
    If ($LogVerification) {
    $emailFrom = ""
    $emailTo = ""
    $subject = "Events 55 found on SRV-AD"
    $body = "There were NTFS error records on event viewer of the server.`rPlease check those records.`r$LogVerification"
    $smtpServer = ""
    $smtp = new-object Net.Mail.SmtpClient($smtpServer)
    $smtp.Send($emailFrom, $emailTo, $subject, $body)
    else {
    Write-Warning "No event found!"

    But it had a lot of "microsoft.powershell.commands.internal.format.formatstartdata" type of information...
    Then I tried using this:

    $body = Format-List -InputObject $LogVerification | Out-String

    It shows the correct value, but I can't add text to send a message with it?

  • #41542

    Wes Stahler

    The issue is with the the $LogVerification variable. As shown in your code, it is an array. Convert it to a string and you will be good to go.

    ,Format-Table -Wrap -AutoSize | Out-String
  • #41626

    Vandrey Trindade

    Wes Stahler,

    Worked! 😀
    Thanks a lot for the fast reply!

You must be logged in to reply to this topic.