email - Powershell 打开带签名的电子邮件草稿

标签 email powershell outlook signature

我正在尝试创建一个按钮来打开 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/

相关文章:

email - 如何从浏览器客户端发送 HTML 电子邮件?

powershell - Sysinternal 关闭句柄在命令提示符下工作但在 Powershell 下不起作用

arrays - 如何在 PowerShell 中创建数组的数组?

Powershell循环和替换(从文本文件读取)

python - 如何通过 MIMEMultipart 发送电子邮件正文部分

在电子邮件中执行的 Javascript 可以获取当前电子邮件的主题

c# - 如何跨多个帐户使用 Outlook 插件捕获已发送的项目?

.net - VSTO、Outlook.exe.config 和 <supportedRuntime>

c# - HTML 电子邮件 "opens"未被跟踪

HTML 电子邮件仅在 Thunderbird 中未正确对齐