2017-02-04 6 views
0

Можно отправить несколько одинаковых писем с помощью powershell например, 10 писем одному и тому же пользователю? С помощью следующего скрипта я могу отправить только почту.отправить несколько писем с powershell

$From ="user name" 
$To = "user name" 
$Subject = "Email Subject" 
$Body = "hello" 
$`SMTPServer` = "`smtp` name" 
$`SMTPPort` = "`nrport`" 
$BCC = "`username`" 
Send-`MailMessage` -From $From -to $To -Subject $Subject -Body $Body -`SmtpServer` $`SMTPServer` -`UseSsl` -Bcc $BCC 

ответ

0

Просто используйте for цикл, чтобы сделать что-то несколько раз (10 в данном случае):

for ($i = 1; $i -le 10; $i++) 

Это довольно общее понятие, не только для Powershell

+0

Правда. Но в PowerShell более читаемой формой будет '1..10 | foreach {"do something $ _"} ' – Swonkie

+0

аргументированно, любой, кто знаком с программированием любого типа, поймет цикл' for', тогда как '1..10'? – 4c74356b41

+0

Кажется довольно интуитивным для меня. Любой, кто знаком с английским языком (который намного больше, чем люди, знакомые с программированием), может интуитивно понять это выражение. – Swonkie

0

попробовать что-то вроде этого

$From ="user name" 
$To = "user name" 
$SMTPServer = "smtp name" 
$SMTPPort = "nrport" 

[email protected]([pscustomobject]@{subject="subject1"; body="body1"}, [pscustomobject]@{subject="subject1"; body="body2"}) 

foreach ($MailSubsject in $ListMailSubsject) 
{ 
    Send-MailMessage -From $From -to $To -Subject $MailSubsject.subject -Body $MailSubsject.body -SmtpServer $SMTPServer -UseSsl -Bcc $BCC 
} 
0

Вы можете использовать следующий код. Попробуйте использовать «splatting». Это делает код более читабельным и чистым.

1..10 | foreach-object { 
    $mail = @{ 
     From ="user name" 
     To = "user name" 
     Subject = "Email Subject" 
     Body = "hello" 
     SMTPServer = "smtp name" 
     SMTPPort = "port" 
     BCC = "username" 
     } 
    Send-MailMessage @mail 
} 
Смежные вопросы