当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Powershell 发送邮件 | Powershell 发送邮件指南及示例

作者:精品下载站 日期:2024-12-14 04:48:24 浏览:15 分类:玩电脑

Powershell 发送邮件 | Powershell 发送邮件指南及示例


[玩转系统] Powershell 发送邮件 | Powershell 发送邮件指南及示例

PowerShell 发送邮件简介

要从 PowerShell 发送电子邮件,请使用 Send-MailMessage Cmdlet。很多时候,管理员可能需要运行脚本来生成一些报告,例如上次重新启动时间、过去 24 小时内服务器停机的次数等。在这种情况下,必须发送包含报告的电子邮件给管理员。为此,使用 Send-MailMessage cmdlet。此 cmdlet 的主要参数是 SMTP 服务器。环境中必须配置有效的 SMTP 服务器才能发送和接收电子邮件。如果没有提到 SMTP 服务器,PowerShell 将采用 $PSEmailServer 变量中设置的变量。

Hadoop、数据科学、统计及其他

语法和参数

下面我们将看到语法和参数

句法

下面是语法

代码:

NAME
Send-MailMessage
SYNTAX
Send-MailMessage [-To] <string[]> [-Subject] <string> [[-Body] <string>] [[-SmtpServer] <string>] -From <string> [-Attachments <string[]>] [-Bcc <string[]>]
[-BodyAsHtml] [-Encoding <Encoding>] [-Cc <string[]>] [-DeliveryNotificationOption {None | OnSuccess | OnFailure | Delay | Never}] [-Priority {Normal | Low | High}]
[-Credential <pscredential>] [-UseSsl] [-Port <int>]  [<CommonParameters>]
ALIASES

参数

以下是参数:

  • 附件:此参数表示需要添加为要发送的电子邮件中的附件的文件。它的类型是字符串。它的别名是 PSPath。默认值为无。它接受管道输入,但不接受通配符。
  • 密件抄送:这表示将收到电子邮件但不会直接标记的收件人的电子邮件地址。它的类型是字符串。它的默认值是无。它接受管道输入,但不接受通配符。
  • 正文:这表示电子邮件的主体。它的类型是字符串。它的默认值是无。它接受管道输入,但不接受通配符。
  • BodyAsHtml:这表示要转换为 HTML 的邮件正文。它的类型是开关参数。它的别名是 BAH。它的默认值是无。它接受管道输入,但不接受通配符。
  • 抄送:表示应收到此邮件抄送副本的收件人。它的类型是字符串。它的默认值是无。它接受管道输入,但不接受通配符。
  • 凭据:这表示应用于 send-mailmessage cmdlet 的凭据。默认情况下,将获取当前用户凭据。它的类型是 PSCredential。它的默认值是当前用户。它接受管道输入,但不接受通配符。
  • DeliveryNotificationOption:这表示已发送电子邮件的通知状态。它可以是多个值。它的别名是 DNO。它的默认值是无。指定的地址将收到通知。它接受管道输入,但不接受通配符。允许的值为
  • 无:这意味着不发送通知。
  • OnSuccess:这表示如果邮件发送成功,则会发送通知。
  • 失败:如果邮件未送达,则会发送通知。
  • 延迟:如果发送电子邮件出现延迟,则会发送通知。
  • 从不:这表示任何通知。

编码:这表示编码类型。可接受的值如下:

  • ASCII
  • 代加工
  • 统一码
  • UTF7
  • UTF8
  • UTF8BOM
  • UTF8无BOM
  • UTF32

它的类型是encoding,别名是BE。默认值为 UTF8NoBOM。它接受管道输入,但不接受通配符。

  • 发件人:这是必需参数,表示电子邮件中应包含的地址。这表示发件人。它的类型是字符串。它的默认值是当前用户。它接受管道输入,但不接受通配符。
  • 端口:表示 SMTP 服务器的端口号。默认为25。其类型为Int32。它接受管道输入,但不接受通配符。
  • 优先级:这表示电子邮件的优先级。默认值是正常的。其他可接受的值有高值和低值。它的类型是 MailPriority。它接受管道输入,但不接受通配符。
  • 回复:这表示收件人可以回复的电子邮件地址,而不是发件人地址。它的类型是字符串,默认值是none。它接受管道输入,但不接受通配符。
  • SMTP服务器:这表示 SMTP 服务器。默认值是 $PSEmailServer 环境变量中存在的值。它的类型是字符串,别名是ComputerName。它接受管道输入,但不接受通配符。
  • 主题:这表示电子邮件的主题。这是一个强制参数。它的类型是字符串。它的别名是 sub。默认值为无。它接受管道输入,但不接受通配符。
  • 收件人:表示收件人的地址。这是一个强制参数。允许多个地址,地址之间用“;”分隔。 ”。它的类型是字符串,默认值是none。它接受管道输入,但不接受通配符。它接受管道输入,但不接受通配符。
  • UseSsl:这用于电子邮件的安全传输。它的类型是开关参数。它的默认值是无。它接受管道输入,但不接受通配符。

实施 PowerShell 发送邮件的示例

在下面的脚本中,请使用适当的值修改发件人地址($from)、目标地址($to)、smtp 服务器($SmtpServer) 和附件路径($testattachment)。

代码:

Write-Host "Welcome to the demo of sending email in PowerShell"
$from="[email "
Write-Host "From address will be" $from
$to="************"
$subject="This is an example of test mail from PowerShell"
Write-Host "Subject of the email is" $subject
$body="This is a test email. This is sent from powershell using Send-MailMessage Cmdlet"
Write-Host "The body of the email will be" $body
$SmtpServer = "***********"
$html=""
$actualbody = "<html>
<style>
BODY{font-family: Arial; font-size: 12pt;}
H1{font-size: 26px;}
H2{font-size: 24px;}
H3{font-size: 08px;}
</style>
<body>
<h1 align=""center"">Test Email</h1>
<h3 align=""center"">$body</h3>
<p>Welcome</p>
<p>Test email</p><br/>" + $html
$testattachment="C:\Users \Desktop\Articles\Mar\PowerShell Wild cards.docx"
Send-MailMessage -From $from -to $to -Subject $subject -SmtpServer $SmtpServer -Body $actualbody -BodyAsHtml -Encoding ([System.Text.Encoding]::UTF8)
Write-Host "Email Sent"

输出:

[玩转系统] Powershell 发送邮件 | Powershell 发送邮件指南及示例

以下是收到的电子邮件的样子。

[玩转系统] Powershell 发送邮件 | Powershell 发送邮件指南及示例

结论

因此,本文详细介绍了如何借助 Send-MailMessage Cmdlet 从 PowerShell 发送电子邮件。它解释了所需的不同参数及其类型,并显示了如何发送电子邮件的示例脚本。所需的最重要参数是 SMTP 服务器,除非配置了 SMTP 服务器,否则不会发送电子邮件。通过编写示例脚本来探索了解有关 cmdlet 的更多信息的方法。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯