我有一封可以在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,它会看起来正常,图像显示正确。
但是,当我发送邮件时,图像只显示为带边框的白色框。似乎脚本没有在文件中加载图像。
之前有没有人做过相似的事情并有任何建议?
答案 0 :(得分:2)
您必须将图像添加为常规附件。然后,HTML主体必须通过cid属性引用这些附件:<img src="cid:xyz">
其中“xyz”是附件MIME部分上Content-ID MIME属性的值。