Я пытаюсь использовать объект MailMessage для отправки электронной почты с помощью PowerShell. Сценарий использует Import-CSV
для использования файла, затем использует ConvertTo-HTML
в теле письма. Я добавил несколько замененных HTML, поскольку почтовый клиент, которого я отправляю, игнорирует теги <style>
.Отправка - HTML-адрес электронной почты
Вот мой сценарий:
$smtpServer = "x.x.x.x"
$smtpFrom = "[email protected]"
$smtpTo = "[email protected]"
$messageSubject = "Weekly Student Device Repair Summary $((Get-Date).ToShortDateString())"
$message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto
$message.Subject = $messageSubject
$message.IsBodyHTML = $true
$summ = Import-Csv -Path 'C:\folder\file.csv'
$message.body = @"
<html>
<body>
Hello,<br><br>
Here is your weekly repair summary.<br><br>
$($summ | ConvertTo-Html)<br><br>
Thank you,<br><br>
Technology
</body>
<html>
"@
$finalHTML = $message.body -replace "<table", "<table border='0' cellspacing='0' cellpadding='10' style='border: 1px solid black; border-collapse: collapse;'"
$finalHTML = $finalHTML -replace "<th", "<th border='0' cellspacing='0' cellpadding='0' style='border: 1px solid black; border-collapse: collapse; padding:5px;'"
$finalHTML = $finalHTML -replace "<td", "<td border='0' cellspacing='0' cellpadding='0' style='border: 1px solid black; border-collapse: collapse; padding:5px;'"
$finalHTML | Out-File "c:\folder\file.html"
$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($finalHTML)
Я смущен, потому что | Out-File
работает и выглядит точно так же, как я хочу, чтобы тело электронной почты, чтобы посмотреть.
В $smtp.Send($finalHTML)
ошибки, хотя, с:
«Не удается найти перегрузку„Отправить“и количество аргументов:„1“».
Если я заменю $smpt.Send($finalHTML)
с $smpt.Send($message)
, скрипт работает, электронная почта отправляет это HTML, но ни один из $finalHTML
не применяется.
Это сделал это. Большое спасибо. Я был на правильном пути с моим tshooting, но вы пригвоздили его. Еще раз спасибо. – CreedC