使用Powershell发送带有图片的电子邮件。

3

我想在通过Powershell发送的电子邮件中嵌入一张图片。

下面是我的代码:

$Attachment = New-Object Net.Mail.Attachment($LocalLocation)
$Attachment.ContentDisposition.Inline = $True
$Attachment.ContentDisposition.DispositionType = "Inline"
$Attachment.ContentType.MediaType = "image/png"


$MailMessage = New-Object Net.Mail.MailMessage
$MailMessage.To.Add($emailTo)
$MailMessage.From = $MyEmail
$MailMessage.Subject = "Test Email"
$MailMessage.IsBodyHtml = $True
$MailMessage.Attachments.Add($Attachment)

$MailMessage.Body = "
  <html>
    <head></head>
    <body>
      <img src='CID:$($Attachment.ContentId)' />
    </body>
  </html>"

$SmtpClient = New-Object Net.Mail.SmtpClient("123.0.0.1",25 )
$SmtpClient.Send($MailMessage)

我收到了一封电子邮件,但是消息中只有一个空白框,$LocalLocation 是我的图片链接。

我正在使用 PowerShell 3。


在代码中,您正在引用“$Attachment.ContentId”,但我没有看到您为其赋值。 - user6811411
1个回答

4
$SendTo = "Sender Mail ID"
$SMTPServer = "SMTP Server" 
$EmailFrom = “Reciever Mail ID”
$EmailSubject = “Email including images in HTML”
$Image = "Image File"
$Message = new-object Net.Mail.MailMessage
Add-PSSnapin Microsoft.Exchange.Management.Powershell.Admin -erroraction silentlyContinue
$att = new-object Net.Mail.Attachment($Image)
$att.ContentId = "att"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$body = '<img src="cid:att" />'
$Message.From = $EmailFrom
$Message.To.Add($SendTo)
$Message.Subject = $EmailSubject
$Message.Body = $body
$Message.IsBodyHTML = $true
$Message.Attachments.Add($att)
$smtp.Send($Message)
$att.Dispose()

希望这有所帮助。

在我的看法中,$mailmessage.Attachments.Add($att1) 不应该放在 $mailmessage = New-Object system.net.mail.mailmessage 之前。 - user6811411
我想要将图片嵌入正文中。当我将<img src='CID:$($att1.ContentId)' />放入正文时,它仍然无法工作。谢谢。 - Mike
编辑了脚本。现在您将能够在消息正文中发送图像。 - Venkatakrishnan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接