You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用Send-MailMessage PowerShell cmdlet发送MIME多部分邮件以嵌入图片?

使用PowerShell发送带内联图片的MIME多部分邮件

Send-MailMessage cmdlet不直接支持创建带内联图片的MIME多部分邮件——它的设计较为基础,仅能添加常规附件,无法设置附件的内联属性(ContentId、Inline标记)。要实现内联图片需求,需要直接调用.NET的System.Net.Mail命名空间类手动构建邮件。

解决方案:用.NET类手动构建并发送邮件

以下是完整的PowerShell脚本示例,实现嵌入内联图片的HTML邮件发送:

# 基础配置
$fromAddress = "sender@domain.com"
$toAddress = "recipient@domain.com"
$emailSubject = "测试内联图片邮件"
$smtpServer = "smtp.domain.com"
$smtpPort = 587
$authUsername = "your_smtp_username"
$authPassword = ConvertTo-SecureString "your_smtp_password" -AsPlainText -Force
$smtpCredential = New-Object System.Management.Automation.PSCredential ($authUsername, $authPassword)

# 创建MailMessage实例
$mailMessage = New-Object System.Net.Mail.MailMessage($fromAddress, $toAddress, $emailSubject)
$mailMessage.IsBodyHtml = $true

# 编写HTML正文,通过cid引用内联图片
$mailMessage.Body = @"
<h3>内联图片展示</h3>
<p>下方是嵌入正文的图片:</p>
<img src="cid:inlineLogo" alt="公司Logo" />
"@

# 添加内联图片附件
$imageFilePath = "C:\assets\company-logo.jpg"
$inlineAttachment = New-Object System.Net.Mail.Attachment($imageFilePath)
$inlineAttachment.ContentId = "inlineLogo" # 需与HTML中的cid值完全匹配
$inlineAttachment.Inline = $true # 标记为内联资源
$mailMessage.Attachments.Add($inlineAttachment)

# 发送邮件
$smtpClient = New-Object System.Net.Mail.SmtpClient($smtpServer, $smtpPort)
$smtpClient.EnableSsl = $true
$smtpClient.Credentials = $smtpCredential

try {
    $smtpClient.Send($mailMessage)
    Write-Host "邮件发送成功"
}
catch {
    Write-Error "发送失败:$($_.Exception.Message)"
}
finally {
    # 释放资源
    $inlineAttachment.Dispose()
    $mailMessage.Dispose()
    $smtpClient.Dispose()
}

关键说明

  1. ContentId匹配:HTML中cid:后面的值必须和附件的ContentId完全一致,邮件客户端才能正确关联并显示内联图片。
  2. Inline属性:将附件的Inline设为$true,告知邮件客户端该资源是正文的一部分,而非独立附件。
  3. SMTP配置:根据你的邮件服务商要求调整SMTP服务器地址、端口及SSL设置(多数服务商要求587端口+SSL)。

内容的提问来源于stack exchange,提问作者Civette

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:32:15