我在发送SMTP电子邮件时遇到了一个问题,大约是一些电子邮件地址。 200.我正在寻找一个脚本,在该脚本中,它读取包含200个电子邮件地址的.txt文件,并且批量较小,使用下面的脚本发送通用SMTP消息。
发送通用电子邮件的脚本如下:
$to = "TO EMAIL"
$smtp = "SMTP Server"
$from = "FROM EMAIL"
$subject = "Subject"
$body = "EMAIL BODY"
send-MailMessage -SmtpServer $smtp -To $to -Bcc (Get-Content "\\FILE Location") -From $from -Subject $subject -Body $body -BodyAsHtml -Priority high
任何帮助将不胜感激。
答案 0 :(得分:0)
这是一个解决方案(可能还有其他/更好的方法):
$to = "TO EMAIL"
$smtp = "SMTP Server"
$from = "FROM EMAIL"
$subject = "Subject"
$body = "EMAIL BODY"
$Recipient = Get-Content "emails.txt"
$NumberOfBatches = [int]($Recipient.count / 50)
For ($i = 0; $i -lt $NumberOfBatches; $i++) {
$Emails = $Recipient | Select -First 50 -Skip ($i * 50)
Send-MailMessage -SmtpServer $smtp -To $to -Bcc $Emails -From $from -Subject $subject -Body $body -BodyAsHtml -Priority high
}
这会将电子邮件地址列表加载到名为$Recipient
的变量中。
然后计算每次发送50封电子邮件需要多少批次,将其转换为[int]以获得一个整数。
然后使用For
循环来执行定义的批次数,并使用Select-Object
cmdlet按定义的批次过滤电子邮件列表,方法是使用-First
和{ {1}}。