我正在尝试按下一个按钮打开Outlook草稿,我们可以在“收件人:”中输入,然后点击发送。
我的大部分内容都使用以下代码:
$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()
问题是电子邮件正文的原始HTML代码不是正确的签名。我可以将get-content更改为* .txt而不是.htm但是签名中没有格式化,而且它将所有内容都放在一行上。
有没有办法让代码的主体使用html,还是有另一种方法将签名插入到电子邮件中并使用正确的格式?
答案 0 :(得分: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()
我在Outlook 2007中使用它并且它有效。 Outlook配置为自动为新邮件添加签名。 template.html
是保存为HTML的预格式化Outlook邮件。
这个想法不是我的,但老实说,我不记得我在哪里找到了这个片段,所以我提前向作者道歉。