如何使用MailMessage在PowerShell电子邮件中嵌入图像

时间:2015-03-24 16:14:12

标签: html powershell-v2.0

我有一封可以在PS上运行的电子邮件。我一直试图做的是包括嵌入在电子邮件中的图像(不是附件)。以下是我到目前为止:

function Email
        {   
            $smtpServer = {smtp server}
            $smtpFrom = {email from}
            $smtpTo = {email to}
            $messageSubject = "test"

            $message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto
            $message.Subject = $messageSubject
            $message.IsBodyHTML = $true
            $credentials=new-object system.net.networkcredential({smtpUsername},{smtpPassword})

             # $message.Body = Get-Content "D:\Program Files\CymbaTech_FBNC_AM\CTDataLoader\data\TestBody.html"

        # The line below will add any attachments you have such as log files.
        $message.Attachments.Add("{path}\Image1.png")
        $message.Body = '<img src="cid:xyz">'

            $smtp = New-Object Net.Mail.SmtpClient($smtpServer)
            $smtp.credentials=$credentials.getcredential($smtpserver,"25","basic")
            $smtp.Send($message)
        } 

在上文中,我已将图像标签添加到Body.html文件中。如果我直接打开html,它会看起来正常,图像显示正确。

但是,当我发送邮件时,图像只显示为带边框的白色框。似乎脚本没有在文件中加载图像。

之前有没有人做过相似的事情并有任何建议?

1 个答案:

答案 0 :(得分:2)

您必须将图像添加为常规附件。然后,HTML主体必须通过cid属性引用这些附件:<img src="cid:xyz">其中“xyz”是附件MIME部分上Content-ID MIME属性的值。