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

PowerShell调用Outlook发信时设置HTMLBody导致签名丢失如何解决?

解决方案

原因说明

直接对$Mail.HTMLBody赋值会覆盖Outlook默认填充的包含签名的完整HTML内容,导致签名丢失。Outlook创建新邮件实例后,首次访问HTMLBody属性时才会自动将当前账户配置的默认签名写入该属性中。

方案1:直接在默认签名基础上追加自定义内容(推荐)

调整代码顺序,先触发Outlook填充默认签名,再将自定义内容插入到原有HTML内容的合适位置,示例代码如下:

$Msg = "<span style='font-family:Calibri;font-size:12pt;'>Sehr geehrte Damen und Herren<br><br></span>"

$Outlook = New-Object -ComObject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
$namespace.Logon($null, $null, $false, $true)
$EmailFrom = 'test@test.com'
$account = $Outlook.Session.Accounts.Item($EmailFrom)
$Mail = $Outlook.CreateItem(0)

# 先绑定发件人账户,确保加载对应账户的签名
$Mail.SendUsingAccount = $account
# 首次访问HTMLBody,触发Outlook自动填充默认签名
$signature = $Mail.HTMLBody
# 将自定义内容拼接到签名前,也可以根据需要修改插入位置
$Mail.HTMLBody = $Msg + $signature

# 后续其他邮件配置(收件人、主题等)
# $Mail.To = "xxx@xxx.com"
# $Mail.Subject = "测试主题"
# $Mail.Display() # 预览邮件
# $Mail.Send() # 直接发送

# 释放COM对象,避免残留Outlook进程
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Mail) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($account) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($namespace) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Outlook) | Out-Null
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()

方案2:手动读取签名文件加载

如果需要使用非默认签名,或者需要更灵活控制签名加载逻辑,可以直接读取Outlook签名存储目录下的.htm文件内容,手动拼接到邮件内容中:

# 签名默认存储路径,将「你的签名名称」替换为实际的签名名
$signaturePath = Join-Path $env:APPDATA "Microsoft\Signatures\你的签名名称.htm"
$signatureContent = Get-Content -Path $signaturePath -Raw -Encoding UTF8

$Msg = "<span style='font-family:Calibri;font-size:12pt;'>Sehr geehrte Damen und Herren<br><br></span>"
# 直接拼接自定义内容和签名
$Mail.HTMLBody = $Msg + $signatureContent

注意事项

  • 若方案1读取的HTMLBody为空,请检查对应Outlook账户是否已经配置了默认的新邮件签名。
  • 拼接HTML内容时建议在自定义内容末尾添加换行标签<br><br>,避免内容和签名挤在一起。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:18:03