最近電子メール自動化のためのPSスクリプトの作業を開始しました。 PowerShellがデータを抽出している場所(複数の受信者、添付ファイルなど)からCSVファイルを取得した場所に、何かをまとめて管理します。 問題は、いくつかのセルが空の場合、スクリプトはうまくいきません。 あり1 similar questionですが、私はちょうど私の場合にソリューションを実装する方法を確認していない:csv/empty cell issueからの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)
任意の提案は大歓迎:)
"*私がこのコードを書いたのは、私がこのコードを書いたもので、うまくいきません。 (コードダンプ) "* - https://ericlippert.com/2014/03/05/how-to-debug-small-programs/。どのようにして「うまくいきませんか」、あなたのスクリプトのどのビットがそれをしますか – TessellatingHeckler
System.Net.Mail.MailMessageの使用を避ける:PowershellにはネイティブコマンドSend-Mailmessageがあります(これはコードを10〜15行に減らす必要があります)。 "スクリプトはうまくいかない"とあなたの入力ファイルで空であるセルを説明していますか? – bluuf
@TessellatingHecklerと@bluuf、入力ありがとうございます。私は問題のより良い理解のためにCSVファイルを追加しました 私は ' – LordWood