Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
outlook无法识别Powershell中的一个或多个名称_Powershell_Powershell 5.0 - Fatal编程技术网

outlook无法识别Powershell中的一个或多个名称

outlook无法识别Powershell中的一个或多个名称,powershell,powershell-5.0,Powershell,Powershell 5.0,我正在尝试编写一个简单的powershell脚本来发送邮件,我编写的代码是: $recipients = "'abc@abcd.com', 'def@abcd.com'" $Outlook = New-Object -ComObject Outlook.Application $Mail = $Outlook.CreateItem(0) $Mail.To = $recipients $Mail.Subject = "Action" $Mail.Body ="Pay rise please" $

我正在尝试编写一个简单的powershell脚本来发送邮件,我编写的代码是:

$recipients = "'abc@abcd.com', 'def@abcd.com'"

$Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem(0)
$Mail.To = $recipients
$Mail.Subject = "Action"
$Mail.Body ="Pay rise please"
$Mail.Send()
这是一个收件人,但一旦我想添加多个联系人并运行脚本,它说

Outlook does not recognize one or more names. 
At line:10 char:1
+ $Mail.Send()
+ ~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
我尝试了多种方法来定义收件人列表,方法如下:

"'abc@abcd.com', 'def@abcd.com'"
"abc@abcd.com", "def@abcd.com"
"abc@abcd.com, def@abcd.com"
"<abc@abcd.com>, <def@abcd.com>"
“'abc@abcd.com', 'def@abcd.com'"
"abc@abcd.com", "def@abcd.com"
"abc@abcd.com, def@abcd.com"
", "
没有工作,每次都返回相同的错误


提前谢谢

如果您使用Outlook的ComObject,则可以使用
收件人
属性的
添加()
方法将多个收件人添加到电子邮件中,例如:

'abc@abcd.com','def@abcd.com'|ForEach{$Mail.Recipients.Add($_)}
执行此操作将返回收件人对象,然后可以对其进行操作,例如,如果希望将其放在CC行而不是to行,则可以执行以下操作:

$Recipients = 'abc@abcd.com','def@abcd.com'|ForEach{$Mail.Recipients.Add($_)}
$Recipients | ForEach{$_.Type = 2}

或者使用
resolve()
方法根据用户的通讯簿解析地址。

如果使用Outlook的ComObject,则可以使用
Recipients
属性的
Add()
方法将多个收件人添加到电子邮件中,例如:

'abc@abcd.com','def@abcd.com'|ForEach{$Mail.Recipients.Add($_)}
执行此操作将返回收件人对象,然后可以对其进行操作,例如,如果希望将其放在CC行而不是to行,则可以执行以下操作:

$Recipients = 'abc@abcd.com','def@abcd.com'|ForEach{$Mail.Recipients.Add($_)}
$Recipients | ForEach{$_.Type = 2}

或者使用
resolve()
方法根据用户的通讯簿解析地址。

收件人通常不是用分号分隔的吗?我相信使用Outlook时,您需要(a)使用
分隔收件人
、not
和(b)不要将名称用单引号括在双引号内:
“smith@example.com; jones@example.net“
。为什么不直接使用Send MailMessage?您尝试过Send MailMessage吗?我知道您需要另一种方法。我在问OP为什么不使用更简单的方法。收件人通常不是用分号分隔吗?我相信使用Outlook时,您需要(a)使用
分隔收件人
、not
和(b)不要将名称用单引号括在双引号内:
“smith@example.com; jones@example.net“
。为什么不直接使用Send MailMessage?您尝试过Send MailMessage吗?我知道您需要另一种方法。我在问OP为什么不使用更简单的方法。