我需要找到一种方法来向 30 个人发送电子邮件,我不想抄送他们,我希望每个人都能收到邮件,因为这封邮件看起来只发给他一个人。我知道我可以使用 Outlook,将“收件人”留空,只将这些邮件地址作为密件抄送。这是一个很好的解决方案,但我需要自动化。我找不到使用 send-mailmessage powershell cmd 来执行相同操作的方法。我最接近的做法是将其发送给我自己,然后密件抄送给所有人,或者运行一个循环,使用 -to 参数逐封发送一封邮件。这两种方法对我来说都不好。有什么办法可以做到吗?
答案1
同意大卫的观点。
根据我的研究,-To 参数是必需参数,这可能有助于防止它成为垃圾邮件引擎。因此,对于您对 Powershell 的要求,您可以尝试输入自己的电子邮件地址或类似“[电子邮件保护]“在收件人字段中。
答案2
使用 cmdlet Send-MailMessage 无法执行所请求的操作,但是您可以使用 .net 类net.mail
来实现所需的操作。请参阅下文,您可以将其合并到脚本中。
$SMTPserver = "<SMTP Endpoint>"
$fromAddress = "[email protected]"
$subject = "<Subject>"
$emailbody = "<body of email>"
$bccAddresses = @("[email protected]","[email protected]","[email protected]")
$mailer = new-object Net.Mail.SMTPclient($SMTPserver)
$msg = new-object Net.Mail.MailMessage
Foreach ($emailAddress in $bccAddresses){
$msg.bcc.add($emailAddress)
}
$msg.Subject = $Subject
$msg.Body = $emailbody
$msg.From = $fromAddress
$mailer.send($msg)