Powershell прикрепил весь файл из папки - PullRequest
0 голосов
/ 06 августа 2020

Мне нужно отправить по электронной почте и прикрепить все файлы из папки, но не включать какие-либо подпапки. Я получаю сообщение об ошибке Не могу найти перегрузку для «Добавить» и количество аргументов: «1». В строке: 11 символов: 1

  • $ emailMessage.Attachments.Add ($ getallfiles)

ниже приведен код powershell.

$dir = "C:\Users\myid\Documents\comparsion\src\main\resources\excelfiles\Compare_Result_Files"
$getallfiles = Get-ChildItem "$dir\*.xlsx"
$emailSmtpServer = "mailhub-au.com"
$emailMessage = New-Object System.Net.Mail.MailMessage
$emailMessage.From = "donotreply@company.com"
$emailMessage.To.Add( "myid@company.com" )
$emailMessage.Subject = "Selenium Report"
$emailMessage.IsBodyHtml = $true
$emailMessage.Body = "Test Summary Attached"
$emailMessage.Body = "$getallfiles"
$emailMessage.Attachments.Add($getallfiles)
$SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer ,$emailSmtpServerPort )
$SMTPClient.Send($emailMessage)` 

1 Ответ

0 голосов
/ 06 августа 2020

Вам нужно l oop через файлы и добавлять по одному.

Также метод Attachments.Add() требует полного имени файла, а не объекта FileInfo. См. документы.

foreach ($file in $getallfiles) {
    [void]$emailMessage.Attachments.Add($file.FulllName)
}

Я бы также предложил добавить переключатель -File в Get-ChildItem, чтобы гарантировать, что вы собираете только файлы, а не папки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...