【问题标题】:HTML embedded image in the email not displayed电子邮件中的 HTML 嵌入图像未显示
【发布时间】:2015-09-09 02:02:11
【问题描述】:

这是我第一次编写 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,因此它不能被视为重复。

【问题讨论】:

  • Unable to embedded image in email using Send-Mailmessage 的可能副本。关于那个问题是指向另一个副本的链接。看看这些问题中的任何一个,看看你是否能找到答案。到目前为止,您的问题是您在 html 中使用本地路径。您需要使用相对路径并将图像作为附件附加
  • 这与它们无关,因为它们是 System.Net.Mail.MailMessage 或 Send-Mailmessage,但我在这里使用的是 Outlook 对象。
  • 您尝试过使用New-Object -com Outlook.Application 吗?

标签: html powershell outlook html-email


【解决方案1】:

如果您需要在电子邮件中发送带有图像的 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="cid:Volume.png" 和 img src='cid:Value.png'

试试就行了

【讨论】:

    猜你喜欢
    • 2019-02-02
    • 2015-02-17
    • 1970-01-01
    • 2010-12-03
    • 2017-06-11
    • 2020-05-28
    • 2016-11-06
    • 2011-08-06
    • 1970-01-01
    相关资源
    最近更新 更多