Como a formatação de saída no prompt do PowerShell acontece quando você realmente gera $CertToList
, e você não está interessado nisso, você pode querer construir uma estrutura HTML para apresentar a saída na mensagem de correio.
Atualizar
Como você deseja incorporar um anexo in-line na forma de uma imagem, teremos que fazer o trabalho de criar e enviar o email por nós mesmos, em vez de confiar em Send-MailMessage
:
# Smtp details as outlined by Colyn1337
$smtpServer = "server.domain.com"
$smtpFrom = "[email protected]"
$smtpTo = "[email protected]"
$messageSubject = "The subject line of the email"
# Set up an SmtpClient for sending the message
$smtpClient = New-Object Net.Mail.SmtpClient
$smtpClient.Host = $smtpServer
# Create the MailMessage you want to send
$mailMessage = New-Object Net.Mail.MailMessage
$mailMessage.From = $smtpFrom
$mailMessage.To.Add($smtpTo)
$mailMessage.Subject = $messageSubject
# Create the html content for the mail
# Add embedded image resource to HTML
$htmlReport = "<image src=cid:DangeRussLogo>"
# And then the table with your data
$htmlReport += "<table>"
$htmlReport += "'n"
$htmlReport += "<tr>"
$htmlReport += "<th>RequestID</th>"
$htmlReport += "<th>RequesterName</th>"
$htmlReport += "<th>RequestType</th>"
$htmlReport += "<th>NotAfter</th>"
$htmlReport += "<th>CommonName</th>"
$htmlReport += "<th>EnrollmentFlags</th>"
$htmlReport += "</tr>"
$htmlReport += "'n"
foreach($cert in $CertToList)
{
$htmlReport += "<tr>"
$htmlReport += "<td>$($cert.RequestID)</td>"
$htmlReport += "<td>$($cert.RequesterName)</td>"
$htmlReport += "<td>$($cert.RequestType)</td>"
$htmlReport += "<td>$($cert.NotAfter)</td>"
$htmlReport += "<td>$($cert.CommonName)</td>"
$htmlReport += "<td>$($cert.EnrollmentFlags)</td>"
$htmlReport += "</tr>"
$htmlReport += "'n"
}
$htmlReport += "</table>"
# Now create an AlternateView from the HTML contents
$messageBody = [Net.Mail.AlternateView]::CreateAlternateViewFromString($htmlReport, 'text/html')
# Create a Linked Resource from the logo image
$imageMimeType = New-Object System.Net.Mime.ContentType("image/png")
$embeddedImage = New-Object Net.Mail.LinkedResource("C:\Users\DangeRuss\logo.png", $imageMimeType)
$embeddedImage.ContentId = "DangeRussLogo"
# Add the resource to the HTML view
$messageBody.LinkedResources.Add($embeddedImage)
# Add the HTML view to the MailMessage
$mailMessage.AlternateViews.Add($messageBody)
# And finally send the message
$smtpClient.Send($mailMessage)
Se você quiser usar um arquivo .jpeg
ou .jpg
em vez do PNG, altere o MimeType de "image / png" para "image / jpeg"