Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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
Email 在powershell中创建多行电子邮件正文_Email_Powershell - Fatal编程技术网

Email 在powershell中创建多行电子邮件正文

Email 在powershell中创建多行电子邮件正文,email,powershell,Email,Powershell,当我试图实现多行电子邮件正文时,我不断地遇到错误。我怀疑语法有问题。在网上找不到任何示例。有什么建议吗 错误:表达式或语句中$AccountExpire“]的意外标记“EmployeeName”]。 $subject = "Email for $item["EmployeeName"]. Date expire $AccountExpire" $body=@" Name: $item["Employee"] Class: Contract

当我试图实现多行电子邮件正文时,我不断地遇到错误。我怀疑语法有问题。在网上找不到任何示例。有什么建议吗

错误:
表达式或语句中$AccountExpire“]的意外标记“EmployeeName”]。

$subject = "Email for $item["EmployeeName"]. Date expire $AccountExpire"
$body=@"                            
Name:  $item["Employee"]
Class: Contractor
Depart: $item["Depart"]
Region: $item["Region"]
Manager: $item["Manager"]
New Date: $NewDate                          
"@                      
SendUpdateEmail($subject,$Body)

您需要使用子表达式(
$()
)转义这些数组索引操作:

多行字符串(或这里的字符串,正式名称)也是如此:


就个人而言,我会选择多行模板,并使用
-f
格式运算符来填充值:

$bodyTemplate=@'
Name: {0}
Class: Contractor
Depart: {1}
Region: {2}
Manager: {3}
New Date: {4}
'@
$body = $bodyTemplate -f $item["Employee"],$item["Depart"],$item["Region"],$item["Manager"],$NewDate
使用
-f
时,还可以格式化不同类型的数据,因此如果
$NewDate
[DateTime]
对象,则可以在模板内控制该对象的格式化,例如:

@'
Date: {0:HH:mm:ss}
'@ -f (Get-Date)
这将产生:

Date: 14:55:09

(假设您在下午五点到三点的时候这样做)

您得到的错误是什么。
$item
在哪里定义?我猜是来自csv文件和循环?这些变量可能无法在here字符串中正确展开。请尝试对字段名使用单引号,而不是双引号,如
['EmployeeName']
@MathiasR.Jessen。。。。很抱歉那太傻了。是语法突出显示搞乱了我。@Matt是的,prettify不能很好地识别PowerShell转义序列;)我尝试了第一种方法,但仍然在$body=@“行中获取错误,并声明它缺少终止符”@,但这不是真的。请确保开头的
@“
是其行中的最后一项,并确保结尾的
“@
是其行中的第一项。开盘后或收盘前,各自线路上没有空格或任何内容。顺便说一句,我在每天发送数千封电子邮件的生产脚本中使用选项2和
{0}
-f
(非常适合将内容注入格式良好的HTML电子邮件正文!)。它工作得很好!花了几个小时后,我了解到,在声明此项之前,您不能有任何选项卡空间或常规空间,否则会出现一些严重错误。谢谢马蒂亚斯的帮助。成功了。
@'
Date: {0:HH:mm:ss}
'@ -f (Get-Date)
Date: 14:55:09