我正在尝试创建一个按钮来打开 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 一起使用,或者有其他方法可以将签名以正确的格式插入到电子邮件中吗?
最佳答案
以下代码来 self 的脚本之一:
$sMsg = Get-Content template.html
$sRecipientAddr = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4d3e2220282223280d28352c203d2128632e2220" rel="noreferrer noopener nofollow">[email protected]</a>"
$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 邮件。
这个想法不是我的,但老实说我不记得在哪里找到了该片段,所以我提前向作者道歉。
关于email - Powershell 打开带签名的电子邮件草稿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24044681/