要使用 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