Powershell使用Signature打开电子邮件草稿

use*_*839 2 email powershell outlook signature

我正在尝试按下一个按钮打开一个outlook草稿,我们可以在"To:"中键入并单击"发送".

我的大部分内容都使用以下代码:

$SUBJECT = ('Ticket: ' + $textticketnumber.text)
CreateLink #Function that gets a weblink and stores it to variable $rtblink.Text
$BODY = $rtblink.Text
$EMAILSIG = Get-Content ($env:USERPROFILE + "\AppData\Roaming\Microsoft\Signatures\*.htm")

$ol = New-Object -comObject Outlook.Application
$mail = $ol.CreateItem(0)
$mail.Subject = "$SUBJECT"
$mail.Body = "`n$BODY`n$EMAILSIG"

$inspector = $mail.GetInspector
$inspector.Display()
Run Code Online (Sandbox Code Playgroud)

问题是电子邮件正文的原始HTML代码不是正确的签名.我可以将get-content更改为*.txt而不是.htm但是签名中没有格式化,而且它将所有内容都放在一行上.

有没有办法使代码的主体与html一起使用,或者是否有另一种方法将签名插入到具有正确格式的电子邮件中?

Ale*_*sht 5

以下代码来自我的一个脚本:

$sMsg = Get-Content template.html 

$sRecipientAddr = "someone@example.com"
$sMsgSubject = "Subject"

$oOutlook = New-Object -ComObject Outlook.Application 
$oMapiNs = $oOutlook.GetNameSpace("MAPI")
$oMailMsg = $oOutlook.CreateItem(0)
$oMailMsg.GetInspector.Activate()
$sSignature = $oMailMsg.HTMLBody
[Void]$oMailMsg.Recipients.Add($sRecipientAddr)  
$oMailMsg.Subject = $sMsgSubject
$oMailMsg.HTMLBody = $sMsg + $sSignature
$oMailMsg.Save()
Run Code Online (Sandbox Code Playgroud)

我在Outlook 2007中使用它并且它可以工作.Outlook配置为自动为新邮件添加签名.template.html是保存为HTML的预格式化Outlook邮件.

这个想法不是我的,但我老实说不记得我在哪里找到了这个片段,所以我提前向作者道歉.