Электронная почта с вложенными вложениями с использованием powershell - PullRequest
0 голосов
/ 16 ноября 2018

Требование:

Отправить письмо со встроенным изображением без прикрепления изображение в качестве вложения с помощью powershell.

My PowershellКод:

$From = "From@gmail.com"
$ToEmails = "ToEmails@gmail.com"
$CcEmails = "CcEmails@gmail.com"
$userName = "From@gmail.com"
$ImageName = "codecover.png"
$FilePath = "D:\$($ImageName)"
$Attachment = @($FilePath)
$Subject = "Test Subject"
$password = "From Email password"
$SMTPServer = "smtp.outlook.com"
$SMTPPort = "587"
$Body += "<img src='$($ImageName)' />"

[string][ValidateNotNullOrEmpty()]$password = $password
$securePassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$Credentials = New-Object Management.Automation.PSCredential ($userName, $securePassword)

Send-MailMessage -From $From -to $ToEmails -Cc $CcEmails -Subject $Subject -BodyAsHtml -Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl -Credential $Credentials -Attachments $Attachment –DeliveryNotificationOption OnSuccess

Проблема с моим результатом:

Результат отправки письма с вложенным вложением , но то же изображение находится во вложении который я не хочу.Снимок экрана приведен ниже

enter image description here

Подскажите, пожалуйста, как отправить встроенные изображения без прикрепления этого изображения во вложениях.

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете закодировать его в base64.

$Byte    = [system.io.file]::ReadAllBytes("C:\yourImage.png")
$Base64  = [System.Convert]::ToBase64String($Byte)
$Content = '{0}{1}{2}' -f '<img src="data:image/png;base64,',$Base64,'">'

Использовать содержимое как текст сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...