powershell v2 - send-mailmessage返回无效主题

时间:2014-10-14 14:31:06

标签: email powershell powershell-v2.0

我一直试图让它工作一段时间,到目前为止我发现很多人都说这是 bug 或者它是功能等等 但似乎没有人能提出解决方案。

我已经开始使用powershell了(v2当然,虽然我从来没有遇到过VBS或我曾经使用的任何其他语言的问题)以及当我发送电子邮件时,例如:

Send-mailmessage -to "me@here.com" -from "me@here.com" -subject "theSubject"

我取代我的主题是:

=?us-ascii?Q?theSubject?=

这是什么以及为什么powershell会这样做?这意味着我们的内部应用程序目前都没有接受来自PowerShell的电子邮件输入。

我已经尝试-Encoding ([System.Text.Encoding]::ASCII),这没有任何区别。

在我放弃使用powershell之前,有人可以为此建议fix(这将是一种耻辱,因为到目前为止我一直非常感动。)


EBGreen - 我的实际代码(直接来自我的脚本 - 名称已更改)是:

$cfg_Address = "me@here.com"
$cfg_Subject = "emailTest"
$cfg_FromAddress = "me@here.com"
$cfg_SMTP = "123.12.1.12"

Send-MailMessage -to "$cfg_Address" `
        -From "$cfg_FromAddress" `
        -Subject "$cfg_Subject" `
        -SmtpServer "$cfg_SMTP"

Matt - 我的电子邮件客户端是一个自定义内置应用程序,它剥离互联网标题并将它们与一组规则进行比较,以确定要执行的操作。在Outlook中查看相同的电子邮件,主题正确显示。但当我看到标题时,它说:

Subject: =?us-ascii?Q?emailTest?=

我运行了测试并使用VBS(同样的To,From,Subject)快速模拟了相同的电子邮件脚本,并将其发送给我自己。看一下我得到的互联网标题:

Subject: emailtest

2 个答案:

答案 0 :(得分:1)

这是一个错误。

Powershell v2:

Date: Thu, 16 Oct 2014 18:29:21 +0300
Subject: =?us-ascii?Q?emailTest?=

Powershell v4:

Date: Thu, 16 Oct 2014 18:27:33 +0300
Subject: emailTest

直接升级至WMF5九月预览http://blogs.msdn.com/b/powershell/archive/2014/09/04/windows-management-framework-5-0-preview-september-2014-is-now-available.aspx 或者至少是PowerShell v4(WMF4)。您获得的额外功能令人印象深刻。

答案 1 :(得分:0)

虽然这不是一个真正的答案,但它似乎是我能找到的最佳选择。

1)从脚本中删除Send-MailMessage条目(因为它似乎不起作用)

2)创建一个名为SendEmail.vbs的单独文件。在此文件中编写一个简单的VBS脚本来发送电子邮件。将它与PowerShell脚本放在一起。

3)在您的powershell脚本中添加行"$result = cscript "c:\path\to\script\SendEmail.vbs"

现在,当您运行powershell脚本时,它将使用VBS文件发送电子邮件。

无论如何都不理想,但至少它有效。