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
文件未附加到powershell脚本中的电子邮件_Powershell_Azure Powershell - Fatal编程技术网

文件未附加到powershell脚本中的电子邮件

文件未附加到powershell脚本中的电子邮件,powershell,azure-powershell,Powershell,Azure Powershell,我正在创建一个CSV文件并尝试将其附加到电子邮件。在云中也这样做,所以我想绕过本地驱动器…只需创建文件并附加它。但我得到了这个错误 不能对空值表达式调用方法。第67行字符:1$smtp.Attachments.Add($att.Name) 我的连接方式不对吗?电子邮件正在发送,但没有附件。我知道它正在被创建,因为当我把它放在Azure容器中时,我可以看到它。但是我不想先存储它。这似乎是对的。谢谢大家! $SqlAdapter.Fill($DataSet) $att = New-Item file

我正在创建一个CSV文件并尝试将其附加到电子邮件。在云中也这样做,所以我想绕过本地驱动器…只需创建文件并附加它。但我得到了这个错误

不能对空值表达式调用方法。第67行字符:1$smtp.Attachments.Add($att.Name)

我的连接方式不对吗?电子邮件正在发送,但没有附件。我知道它正在被创建,因为当我把它放在Azure容器中时,我可以看到它。但是我不想先存储它。这似乎是对的。谢谢大家!

$SqlAdapter.Fill($DataSet)
$att = New-Item filename.csv -ItemType file
$DataSet.Tables[0] | Export-CSV -NoTypeInformation $att
$smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort)
$smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)  
$smtp.Attachments.Add($att)
$smtp.Send($From, $To, $subject, $body)

SmtpClient类需要一个
Net.Mail.Attachment
对象:

$att = New-Object Net.Mail.Attachment($file)
是否有任何理由不使用
Send-MailMessage
cmdlet而构建对象

Send-MailMessage -To $To -From $From -Subject $Subject -Body $Body -SmtpServer $SmtpServer -Attachments $PathToAttachment

smtpclient类需要一个附件对象,而您正在向它提供一个文件系统对象。如果我是您,我也会使用sendmailmessage发送邮件(而不是使用SmtpClient类),但这并不一定。如果您只给它一个文件名,它将根据通常情况假定一个相对于当前工作目录的路径。是的,我将尝试转换到Send-MailMessage cmdlet以简化此操作。