gpt4 book ai didi

powershell - 找不到 “Add”和参数计数的重载: “1”

转载 作者:行者123 更新时间:2023-12-02 23:57:40 27 4
gpt4 key购买 nike

我得到了两个不同的脚本,并将它们组合在一起以检查新文件的特定文件夹,并通过电子邮件将该文件作为附件发送。

这是合并的代码:

Param (
$Path = "C:\path"
)

$File = Get-ChildItem $Path | Where { $_.LastWriteTime -ge [datetime]::Now.AddMinutes(-10) }
If ($File)
{
$emailSmtpServer = "smtp.xxxx.com"
$emailSmtpServerPort = "587"
$emailSmtpUser = "xxxx@xxxxxx.com"
$emailSmtpPass = "xxxxxxxx"

$emailMessage = New-Object System.Net.Mail.MailMessage
$emailMessage.From = "Xxxx Xxxx <xxxx@xxxxxx.com>"
$emailMessage.To.Add( "xxxx@xxxxxx.com" )
$emailMessage.Subject = "File Test Report"
$emailMessage.IsBodyHtml = $false
$emailMessage.Body = "Weekly Report"

$SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer , $emailSmtpServerPort )
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential( $emailSmtpUser , $emailSmtpPass );
$attachment = $File
$emailMessage.Attachments.Add($attachment)

$SMTPClient.Send($emailMessage)
}

该代码可以正常工作,它会查找新文件并发送电子邮件,但不会附加该文件,并且出现以下错误
Cannot find an overload for "Add" and the argument count: "1".
At D:\SendEmail2.ps1:24 char:1
+ $emailMessage.Attachments.Add($attachment)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodCountCouldNotFindBest

我认为这与使用 $attachment = $File调用文件有关

有人可以帮忙吗?

最佳答案

您可能必须首先创建一个Attachment对象,并且还必须处理多个文件,因此请替换以下几行:

$attachment = $File
$emailMessage.Attachments.Add($attachment)

与:
$File | ForEach-Object {
$filePath = $_.FullName
$attachment = new-object Net.Mail.Attachment($filePath)
$emailMessage.Attachments.Add($attachment)
}

关于powershell - 找不到 “Add”和参数计数的重载: “1”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39995068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com