我正在尝试使用send-mailmessage从命令行发送带有内嵌图像的html格式的电子邮件。我到处寻找,但无法找到解决方案。我能够收到要发送的电子邮件,但收件人没有收到图像。这是我的代码:
$smtp = "smtp.server.com"
$to = "recp@example.com"
$from = "from@example.com"
$subject = "This is a subject"
$body = (-join(Get-content \email.html))
send-MailMessage -SmtpServer $smtp -To $to -From $from -Subject $subject -BodyAsHtml -Body $body
如果代码中存在问题或者有其他解决方案,请告诉我们。谢谢!
答案 0 :(得分:3)
使用Send-MailMessage
cmdlet无法做到这一点。要在消息中包含内嵌图像,您必须使用.NET的Net.Mail.SmtpClient类编写自己的函数。
或者,你可以抓住David Wyatt的Send-MailMessage功能,它已经拥有你所需要的一切:
Send-MailMessage
cmdlet公开了大部分基本功能 发送电子邮件,但你没有很多控制权 附件或备用视图。 TechNet论坛上的某个人是 询问如何将图像嵌入到HTML邮件中,我决定 写一个支持这个版本的Send-MailMessage
。我已开始 使用Send-MailMessage
cmdlet的代理函数,所以所有的 参数和用法应完好无损。主要区别在于我 添加了一个-InlineAttachments
参数,该参数接受哈希表 格式为'ContentId'='FilePath'
的对。然后你可以嵌入 通过使用格式的URL将资源转换为HTML正文cid:ContentId
。