这是我第一次编写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.MailMessage
或Send-Mailmessage
无关。这是使用Outlook对象 - New-Object -com Outlook.Application
,因此不能将其视为重复。
答案 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;
尝试它将会工作