このスクリプトを設定して、コードを何度もコピーせずに、ヨーロッパ、アジアなどの複数のアドレスに対してこのメール送信プロセスを繰り返すことができるようにするにはどうすればよいですか?
たとえば、次のようなことができますか?
IF $keyword "Europe"
見つかった THEN $europe
$europe =
ヨーロッパのものはありますか
THEN
IF $keyword "Asia"
見つかった THEN $asia
等
ここに私のコードがあります:
# Email Automation
#Defines Directory
$dir = "C:\Users\user\Desktop\myfolder"
#Sets STMP server
$SMTPServer = "10.0.0.1"
#Declares todays time and formats
$Time = (Get-Date).ToString('MM/dd/yyyy hh:mm tt')
# Europe #
#Declares the keyword used to find List
$keywordEur = "Europe"
#Searches dir for list , formats
$AttachmentEur = Get-ChildItem -Path $dir -Filter "*$keywordEur*" -Recurse
$AttachmentNameEur = $AttachmentEur.BaseName
#Defines mailing list
$FromEur = "[email protected]"
$ToEur = "[email protected]"
$CcEur = "[email protected]", "[email protected]"
$SubjectEur = "$AttachmentName @ $Time"
$BodyEur = "Please find attached the file needed for Europe.
Regards,
Me
"
#Actions Email
Send-MailMessage -From $FromEur -To $ToEur -CC $CcEur -Subject $SubjectEur -Body $BodyEur -SmtpServer $SMTPServerEur -Attachments $AttachmentEur.FullName
# Asia #
#Declares the keyword used to find List
$keywordAs = "Asia"
#Searches dir for list , formats
$AttachmentAs = Get-ChildItem -Path $dir -Filter "*$keywordAs*" -Recurse
$AttachmentNameAs = $AttachmentAs.BaseName
#Defines mailing list
$FromAs = "[email protected]"
$ToAs = "[email protected]"
$CcAs = "[email protected]", "[email protected]"
$SubjectAs = "$AttachmentNameAs @ $Time"
$BodyAs = "Please find attached the file needed for Asia.
Regards,
Me
"
#Actions Email
Send-MailMessage -From $FromAs -To $ToAs -CC $CcAs -Subject $SubjectAs -Body $BodyAs -SmtpServer $SMTPServerAs -Attachments $AttachmentAs.FullName
ForEach
ループと、リージョンの 2 つのハッシュテーブルで構築されたオブジェクトを使用して、これを繰り返す方法は次のとおりです。
# Email Automation
#Defines Directory
$dir = "C:\Users\user\Desktop\myfolder"
#Sets STMP server
$SMTPServer = "10.0.0.1"
#Declares todays time and formats
$Time = (Get-Date).ToString('MM/dd/yyyy hh:mm tt')
$Europe = @{
Name = 'Asia'
From = "[email protected]"
To = "[email protected]"
Cc = "[email protected]", "[email protected]"
}
$Asia = @{
Name = 'Asia'
From = "[email protected]"
To = "[email protected]"
Cc = "[email protected]", "[email protected]"
}
$Regions = @()
$Regions += New-Object PSObject -Property $Asia
$Regions += New-Object PSObject -Property $Europe
ForEach ($Region in $Regions) {
#Searches dir for list , formats
$Attachment = Get-ChildItem -Path $dir -Filter "*$($Region.name)*" -Recurse
$AttachmentName = $Attachment.BaseName
$Subject = "$AttachmentName @ $Time"
$Body = "Please find attached the file needed for $($Region.name).
Regards,
Me
"
#Actions Email
Send-MailMessage -From $Region.From -To $Region.To -CC $Region.Cc -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Attachments $Attachment.FullName
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加