使用send-mailmessage发送内嵌图像

时间:2015-10-09 15:09:54

标签: html powershell sendmail

我正在尝试使用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

如果代码中存在问题或者有其他解决方案,请告诉我们。谢谢!

1 个答案:

答案 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