【发布时间】:2019-05-17 12:04:49
【问题描述】:
我已经取得了一些进展,并坚持使用附件。下面的脚本现在发送一封电子邮件,但没有附件
$sub = "APERAK/INVRPT Report "
$to="Chandan.Talasila@XXXXXXXX.com"
$folder = "C:\script\APERAK"
$files = Get-ChildItem "C:\script\APERAK"
$tstmp = Get-Date -UFormat "%H%M"
$dstamp = Get-Date -UFormat "%Y%m%d"
$from="Reports@XXXXXXXX.com"
$smtpserver = "mail.XXXXXXXX.com"
for ($i=0; $i -lt $files.Count; $i++) {
$subject= $sub + $dstamp #+ " " +$tstmp
$filename = $files[$i].FullName
$abpath = $folder + $files[$i].FullName
$attachment = new-object Net.Mail.Attachment($abpath)
$body= Get-Content $filename
$SMTP = new-object Net.Mail.SmtpClient($smtpserver)
$MSG = new-object Net.Mail.MailMessage($from, $to, $subject, $body)
$MSG.attachments.add($attachment)
$SMTP.send($msg)
}
使用“1”个参数调用“添加”的异常:“值不能为空。 参数名称:item" 在 C:\GentranScripts\APERAK_REPORT_EMAIL1.ps1:22 char:21 + $MSG.attachments.add
【问题讨论】:
-
for some reason, the script is entering into the for loop.... 那么这里有什么问题呢? -
你的意思是没有进入?还是正在输入但不发送电子邮件?请详细点?
-
不知道是什么问题,光标没有进入for循环。
-
您确定“C:\Reports\APERAK”是您服务器上的正确路径吗?尝试自己输出
$files.Count,看看输出。 -
为什么不用foreach?正如我所看到的,除了数组元素的寻址之外,您不会将 $i 用于任何事情。
标签: powershell loops for-loop each