Using a text file as the body of an email in Powershell

sterlingdev
sterlingdev used Ask the Experts™
on
Hi, I have a script currently that produces output to a text file and then the attachment is emailed out. I would like to change the script so that it displays the text of this output in the BODY of the email.

Is this possible? The text file is just a few rows of standard text, eg...

servername               versionnumber         date  

etc.

I don't nessicarily need the text file, it was just a temporary means of producing this email on a tight deadline!

Thanks

if ( (Get-PSSnapin -Name VMware.VimAutomation.Core -ErrorAction SilentlyContinue) -eq $null )
{
    Add-PSsnapin VMware.VimAutomation.Core
}

$server = "Server001"
$SMTPserver = "emailserv.mydomain.co.uk"
$from = "sendermailer@mydomain.co.uk"
$to = "sterlinghd@mydomain.co.uk"
$attachments = "C:\Scripts\Generate-VMToolsVersionReport\VMWareTools_VersionReport.txt"
$subject = "VMWare Tools Report from vc001 server Cluster"
$bodytext = "Attachment contains the current versions of VMWare tools by VM on the vc001 Vcenter cluster"

# Connect to the vCenter server(s) 
$vcserver = connect-VIServer $server -Protocol https -WarningAction SilentlyContinue | Out-Null

# get the vmware tools version for each VM  
get-vm | % { get-view $_.ID } | select Name, @{ Name="ToolsVersion"; Expression={$_.config.tools.toolsVersion}} | Sort-Object toolsversion -Descending | out-file $attachments

# Disconnect from the vCenter server(s) 
Disconnect-VIServer -Server $server -Force:$true -Confirm:$false

$mailer = New-Object Net.Mail.SMTPclient($SMTPserver)
$msg = New-Object Net.Mail.MailMessage($from, $to, $subject, $bodytext)
$Attach = new-object Net.Mail.Attachment($attachments)
$msg.Attachments.Add($attach)
$mailer.send($msg)

Open in new window

Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Try this..

if ( (Get-PSSnapin -Name VMware.VimAutomation.Core -ErrorAction SilentlyContinue) -eq $null )
{
    Add-PSsnapin VMware.VimAutomation.Core
}

$server = "Server001"
$SMTPserver = "emailserv.mydomain.co.uk"
$from = "sendermailer@mydomain.co.uk"
$to = "sterlinghd@mydomain.co.uk"
$attachments = "C:\Scripts\Generate-VMToolsVersionReport\VMWareTools_VersionReport.txt"
$subject = "VMWare Tools Report from vc001 server Cluster"

# Connect to the vCenter server(s) 
$vcserver = connect-VIServer $server -Protocol https -WarningAction SilentlyContinue | Out-Null

# get the vmware tools version for each VM  
get-vm | % { get-view $_.ID } | select Name, @{ Name="ToolsVersion"; Expression={$_.config.tools.toolsVersion}} | Sort-Object toolsversion -Descending | out-file $attachments

$bodytext = [string]::Join("`r`n",(Get-Content $attachments))

# Disconnect from the vCenter server(s) 
Disconnect-VIServer -Server $server -Force:$true -Confirm:$false

$mailer = New-Object Net.Mail.SMTPclient($SMTPserver)
$msg = New-Object Net.Mail.MailMessage($from, $to, $subject, $bodytext)
$Attach = new-object Net.Mail.Attachment($attachments)
$msg.Attachments.Add($attach)
$mailer.send($msg) 

Open in new window

Author

Commented:
Excellent, thank you, worked perfectly!

Author

Commented:
Fast, simple and working reply

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial