电子邮件中的HTML嵌入图像未显示

时间:2015-09-09 02:02:11

标签: html powershell outlook html-email

这是我第一次编写power shell脚本,我正在尝试自动向用户发送电子邮件报告。我正在创建outlook对象并尝试使用它。

$Text --> "<br /><font face='Arial'><b><i>For Full Interactive Viewing <a href=http://www.google.com>Click Here</a></i></b></font><br/>"

$MessageImages --> <br/><img src='C:\MyImages\Volume.png'/><br/><br/><hr><br/><img src='C:\MyImages\Value.png'/><br/><br/><hr><br/><hr>

$FinalText = $Text+$MessageImages

现在,我正在创建outlook对象并发送它。

$o = New-Object -com Outlook.Application

$mail = $o.CreateItem(0)

$mail.importance = 2

$mail.subject = “Reports - Automated Email from user list “

$mail.HTMLBody = $FinalText

$mail.SentOnBehalfOfName ="*********"

$mail.To = "*******"

$mail.Send()

当我运行此脚本时,$MessageImages中的所有图像都显示在我计算机的电子邮件中,因为图像位于所提及的位置,但是当我将其发送给其他人时,它显示的是x标记。我可以理解,它无法找到图像,因此无法显示嵌入的图像。有人可以帮我解决这个问题吗?

修改:这与System.Net.Mail.MailMessageSend-Mailmessage无关。这是使用Outlook对象 - New-Object -com Outlook.Application,因此不能将其视为重复。

1 个答案:

答案 0 :(得分:0)

如果您需要在电子邮件中发送带有图像的HTML报告,则必须使用该电子邮件附加图像。参考下面的一个,

$files = Get-ChildItem C:\MyImages\             
Foreach($file in $files)                   
{                     
$filename = $file.FullName                    
$attachment = New-Object System.Net.Mail.Attachment –ArgumentList  
$filename.ToString()         
$attachment.ContentDisposition.Inline = $True            
$attachment.ContentDisposition.DispositionType = "Inline"         
$attachment.ContentType.MediaType = "image/jpg"             
$attachment.ContentId = $file.ToString()          
$emailMessage.Attachments.Add($attachment)         
}         
$SMTPClient.Send($emailMessage)        
$attachment.Dispose();           
$emailMessage.Dispose();         

在HTML中提到图像源为img src =&#34; cid:Volume.png&#34;和img src =&#39; cid:Value.png&#39;

尝试它将会工作