如何使用 PowerShell 发送电子邮件?

要使用 PowerShell 发送电子邮件,有多种方法,但有一个名为SendMailMessage的简单命令。此命令是名为Microsoft.PowerShell.Utility的模块的一部分

要使用特定的 SMTP 服务器发送电子邮件,我们需要添加 SMTP 服务器参数。

Send-MailMessage `
   -From 'User1@TestDomain.com' `
   -To 'User2@TestDomain.com' `
   -Subject 'Test Email' `
   -SmtpServer 'Smtp.TestDomain.com'

在上面的示例中,电子邮件将从-From参数发送,用户到-To参数用户,主题名称为“Test Email”,具有指定的 SMTP 服务器名称。

如果您有多个用户,那么您可以使用逗号将他们分开,您还可以添加抄送和密件抄送收件人。例如,

Send-MailMessage `
   -From 'User1@TestDomain.com' `
   -To 'User2@TestDomain.com','User3@TestDomain.com' `
   -Cc 'Manager1@Testdomain.com' `
   -Bcc 'Manager2@testdomain.com'
   -Subject 'Test Email' `
   -Attachments 'C:\Temp\Confidential.pdf'
   -SmtpServer 'Smtp.TestDomain.com'

在上面的示例中,附件将从位置 C:\temp存储

如果您的 SMTP 服务器需要特定端口上的 SSL 连接,那么您也可以指定它,例如,

Send-MailMessage `
   -From 'User1@TestDomain.com' `
   -To 'User2@TestDomain.com','User3@TestDomain.com' `
   -Subject 'Test Email' `
   -SmtpServer 'Smtp.TestDomain.com' `
   -UseSsl -Port 587 -Priority High

我们在这里使用高优先级电子邮件在587端口上的 SSL 连接。您还可以将优先级设置为正常(默认)或低。

如果您的服务器使用不同的 SMTP 凭证,那么您也可以提供凭证参数,您还可以提供延迟、成功、失败或从不的传递通知。默认值为无。

$creds = Get-Credential
Send-MailMessage `
   -From 'User1@TestDomain.com' `
   -To 'User2@TestDomain.com','User3@TestDomain.com' `
   -Subject 'Test Email' `
   -SmtpServer 'Smtp.TestDomain.com' `
   -UseSsl -Port 587 -Priority High `
   -Credential $creds `
   -DeliveryNotificationOption OnSuccess

猜你喜欢