최근 전자 메일 자동화를 위해 PS 스크립트 작업을 시작했습니다. PowerShell에서 데이터를 추출하는 곳 (여러 수신자, 첨부 파일 등)의 CSV 파일이있는 곳에서 함께 관리하십시오. 문제는 일부 셀이 비어 있으면 스크립트가 작동하지 않는다는 것입니다. 이 하나 similar question,하지만 난 그냥 내 경우에 솔루션을 구현하는 방법을 잘 모르겠습니다 :CSV/빈 셀 문제의 PowerShell 여러 전자 메일 수신자 (첨부 파일)
$importFile = "Users.csv"
$users = import-csv $importFile | select *
foreach($user in $users)
{
$Name = $user.'Name'
$to = $user.'To'
$to2 = $user.'To2'
$Attachment = $user.'Attachment'
$Attachment2 = $user.'Attachment2'
$write = "Emailing account " + $to + " ..."
Write-Host $write
$body = [string]::join([environment]::newline, (Get-Content -path $emailFile))
$body = $body.Replace('[Name]', $Name)
$mail = New-Object System.Net.Mail.MailMessage
$mail.From = $emailFrom
$mail.To.Add($to)
$mail.To.Add($to2)
$mail.Subject = $emailSubject
$mail.IsBodyHtml = $true
$mail.Body = $body
$mail.Attachments.Add($Attachment)
$mail.Attachments.Add($Attachment2)
$smtp = New-Object System.Net.Mail.SmtpClient
$smtp.Host = $smtpServerHost
$smtp.Port = $smtpServerPort
$smtp.EnableSsl = $smtpServerSsl
$smtp.UseDefaultCredentials = $false
$smtp.Credentials = $credentials
$smtp.Send($mail)
어떤 제안을 환영합니다 :)
"* StackOverflow에서 볼 수있는 가장 나쁜 카테고리 중 하나는 다음과 같습니다."이 코드를 작성했는데 작동하지 않습니다. (코드 덤프) "* - https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ 어떤 방식으로 작동하지 않습니까? – TessellatingHeckler
System.Net.Mail.MailMessage 사용을 피하십시오 : Powershell은 Send-Mailmessage라는 고유 명령을 사용합니다 (코드 길이를 10-15 줄로 줄여야 함). 의미가 무엇인지 명확히 할 수 있습니까? "스크립트는 작동하지 않습니다"그리고 입력 파일에서 어떤 셀이 비어 있는지 설명하시오 @ – bluuf
@TessellatingHeckler and @bluuf, 입력 해 주셔서 감사합니다. 문제의 이해를 돕기 위해 CSV 파일을 추가했습니다. 나는' Where-Object'를 사용하고 @gvee 답장에 대한 자세한 내용을 제공합니다. 감사합니다. – LordWood