如何使用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**参数指定的收件人,主题名称为**“测试邮件”**,并使用指定的SMTP服务器名称。

如果您有多个用户,可以使用逗号分隔它们,还可以添加抄送 (CC) 和密送 (BCC) 收件人。例如:

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

更新于:2021年1月4日

3K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告