首先,在我的工作中,我们没有Active Directory,它不会很快改变。
我要做的是,使用HTML向所需用户发送电子邮件。 我写了这个脚本:
#Variables
$sig = Get-Content "%userprofile%\AppData\Roaming\Microsoft\Assinaturas\html.htm"
$Para = "mail@domain.com.br"
$Assunto = "Teste"
$Conteudo="<html>
<head>
<style>
<!--
@font-face {font-family:Calibri; font-size:11.0pt;}
-->
</style>
</head>
<body>
Line1
<br><br>
 line 2
<br><br>
 line 3
<br><br>
<strong><em>Line 4</strong></em>
<br>
Atenciosamente,
<br>
</body>
</html
$sig
"
#Writedatbitchdown
$outl = New-Object -ComObject outlook.application
$email = $outl.CreateItem(0)
$email.display()
$email.To = $Para
$email.Subject = $Assunto
$oldbody = $email.HTMLBody
$newbody = $Conteudo
$newbody += $oldbody
$email.HTMLBody = $newbody
Start-Sleep -s 3
$email.Send()
Start-Sleep -s 5
#Quit
$outl.Quit()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($outl)
Remove-Variable outl
正如您所看到的,我尝试使用Get-content“signatureFile.htm”添加签名,它根本不起作用,尝试使用默认签名,它也不起作用。我收到了纯文本的电子邮件。
另一种情况是电子邮件以HTML格式发送,而且只显示图像。
如何将签名及其图像与Outlook 2010链接? 如果有什么不清楚,请评论出来,我会尽力表达自己。
答案 0 :(得分:0)
如果用户已经为新电子邮件分配了签名,则此代码应该在没有$sig
的情况下自行运行。也就是说,您正在尝试从文件添加签名,该签名可以处理重要更改,这是您引用环境变量%userprofile%
的方式。 PowerShell不会像脚本那样扩展它们。 PowerShell方式是使用env:
关键字。请考虑以下
PS C:\Users\mcameron> Get-ChildItem env:
Name Value
---- -----
ALLUSERSPROFILE C:\ProgramData
APPDATA C:\Users\mcameron\AppData\Roaming
在您的情况下,您的$sig
应该是这样的:
$sig = Get-Content "$($env:appdata)\Microsoft\Signatures\Logo.htm"
至于嵌入图像我目前还不确定,但会进行调查。作为旁注,我不明白有关ActiveDirectory的评论的原因?