Send-MailMessage

发送电子邮件。

语法

Send-MailMessage
    [-Attachments <String[]>]
    [-Bcc <String[]>]
    [[-Body] <String>]
    [-BodyAsHtml]
    [-Encoding <Encoding>]
    [-Cc <String[]>]
    [-DeliveryNotificationOption <DeliveryNotificationOptions>]
    -From <String>
    [[-SmtpServer] <String>]
    [-Priority <MailPriority>]
    [-ReplyTo <String[]>]
    [[-Subject] <String>]
    [-To] <String[]>
    [-Credential <PSCredential>]
    [-UseSsl]
    [-Port <Int32>]
    [<CommonParameters>]

说明

cmdlet Send-MailMessage 从 PowerShell 内发送电子邮件。

必须 (SMTP) 服务器指定简单邮件传输协议,否则命令 Send-MailMessage 将失败。 使用 SmtpServer 参数或将 $PSEmailServer 变量设置为有效的 SMTP 服务器。 分配给 $PSEmailServer 的值是 PowerShell 的默认 SMTP 设置。 有关详细信息,请参阅 about_Preference_Variables

警告

cmdlet Send-MailMessage 已过时。 此 cmdlet 不保证与 SMTP 服务器建立安全连接。 虽然 PowerShell 中没有可用的即时替换,但建议不要使用 Send-MailMessage。 有关详细信息,请参阅 平台兼容性说明 DE0005

示例

示例 1:从一个人向另一个人发送电子邮件

本示例将一封电子邮件从一个人发送到另一个人。

需要 FromToSubject 参数Send-MailMessage。 此示例使用 SMTP 服务器的默认 $PSEmailServer 变量,因此不需要 SmtpServer 参数。

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>' -Subject 'Test mail'

cmdlet Send-MailMessage 使用 From 参数指定邮件的发件人。 To 参数指定邮件的收件人。 Subject 参数使用文本字符串 Test mail 作为邮件,因为不包括可选的 Body 参数。

示例 2:发送附件

本示例发送一封带有附件的电子邮件。

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>', 'User03 <user03@fabrikam.com>' -Subject 'Sending the Attachment' -Body "Forgot to send the attachment. Sending now." -Attachments .\data.csv -Priority High -DeliveryNotificationOption OnSuccess, OnFailure -SmtpServer 'smtp.fabrikam.com'

cmdlet Send-MailMessage 使用 From 参数指定邮件的发件人。 To 参数指定邮件的收件人。 Subject 参数描述消息的内容。 Body 参数是消息的内容。

Attachments 参数指定附加到电子邮件的当前目录中的文件。 Priority 参数将消息设置为“高优先级”。 -DeliveryNotificationOption 参数指定两个值:OnSuccessOnFailure。 发件人将收到电子邮件通知以确认邮件传递成功或失败。 SmtpServer 参数将 SMTP 服务器设置为 smtp.fabrikam.com

示例 3:将电子邮件发送到邮件列表

此示例将电子邮件发送到邮件列表。

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'ITGroup <itdept@fabrikam.com>' -Cc 'User02 <user02@fabrikam.com>' -Bcc 'ITMgr <itmgr@fabrikam.com>' -Subject "Don't forget today's meeting!" -Credential domain01\admin01 -UseSsl

cmdlet Send-MailMessage 使用 From 参数指定邮件的发件人。 To 参数指定邮件的收件人。 Cc 参数将邮件的副本发送到指定的收件人。 密件抄送参数发送消息的盲副本。 盲件是向其他收件人隐藏的电子邮件地址。 Subject 参数是消息,因为不包括可选的 Body 参数。

Credential 参数指定用于发送消息的域管理员凭据。 UseSsl 参数指定安全套接字层 (SSL) 创建安全连接。

参数

-Attachments

指定要附加到电子邮件的文件的路径和文件名。 可以使用此参数,也可以通过管道将路径和文件名传递给 Send-MailMessage

Type:String[]
Aliases:PsPath
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Bcc

指定接收邮件副本但未列为邮件收件人的电子邮件地址。 输入姓名 (可选) 和电子邮件地址,例如 Name <someone@fabrikam.com>

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Body

指定电子邮件的内容。

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-BodyAsHtml

指定 Body 参数的值包含 HTML。

Type:SwitchParameter
Aliases:BAH
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Cc

指定将抄送副本 (抄送) 电子邮件的电子邮件地址。 输入姓名 (可选) 和电子邮件地址,例如 Name <someone@fabrikam.com>

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Credential

指定有权执行此操作的用户帐户。 默认为当前用户。

键入用户名,例如 User01Domain01\User01。 或者,输入 PSCredential 对象,例如 cmdlet 中的 Get-Credential 一个对象。

凭据存储在 PSCredential 对象中,密码存储为 SecureString

注意

有关 SecureString 数据保护的详细信息,请参阅 SecureString 的安全性如何?

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DeliveryNotificationOption

指定电子邮件的传递通知选项。 你可以指定多个值。 默认值为“None”。 此参数的别名为 DNO

传递通知将发送到 From 参数中的地址。

此参数的可接受值如下所示:

  • None:无通知。
  • OnSuccess:如果传递成功,则发出通知。
  • OnFailure:如果传递失败,则通知。
  • Delay:如果传递延迟,则通知。
  • Never:从不通知。

这些值定义为基于标志的枚举。 可以使用此参数将多个值组合在一起以设置多个标志。 这些值可以作为值的数组或这些值的逗号分隔字符串传递给 DeliveryNotification 参数。 cmdlet 将使用二进制 OR 操作合并这些值。 将值作为数组传递是最简单的选项,还允许对值使用 Tab 补全。

Type:DeliveryNotificationOptions
Aliases:DNO
Accepted values:None, OnSuccess, OnFailure, Delay, Never
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Encoding

指定目标文件的编码类型。 默认值为 utf8NoBOM

此参数的可接受值如下所示:

  • ascii:使用 ASCII (7 位) 字符集的编码。
  • bigendianunicode:使用 big-endian 字节顺序以 UTF-16 格式进行编码。
  • bigendianutf32:使用 big-endian 字节顺序以 UTF-32 格式进行编码。
  • oem:使用 MS-DOS 和控制台程序的默认编码。
  • unicode:使用 little-endian 字节顺序以 UTF-16 格式进行编码。
  • utf7:以 UTF-7 格式进行编码。
  • utf8:以 UTF-8 格式进行编码。
  • utf8BOM:使用字节顺序标记 (BOM) 以 UTF-8 格式进行编码
  • utf8NoBOM:以 UTF-8 格式编码,不带字节顺序标记 (BOM)
  • utf32:以 UTF-32 格式进行编码。

从 PowerShell 6.2 开始, Encoding 参数还允许使用已注册代码页的数字 ID (如 -Encoding 1251) 或已注册代码页的字符串名称 () -Encoding "windows-1251" 。 有关详细信息,请参阅 Encoding.CodePage 的 .NET 文档。

Type:Encoding
Aliases:BE
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-From

From 参数是必需的。 此参数指定发件人的电子邮件地址。 输入名称 (可选) 和电子邮件地址,例如 Name <someone@fabrikam.com>

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Port

指定 SMTP 服务器上的备用端口。 默认值为 25,这是默认的 SMTP 端口。

Type:Int32
Position:Named
Default value:25
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Priority

指定电子邮件的优先级。 默认值为 Normal。 此参数的可接受值为 Normal、High 和 Low。

Type:MailPriority
Accepted values:Normal, High, Low
Position:Named
Default value:Normal
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ReplyTo

指定要用于回复此邮件的发件人地址) 以外的其他电子邮件地址 (。 输入姓名 (可选) 和电子邮件地址,例如 Name <someone@fabrikam.com>

此参数是在 PowerShell 6.2 中引入的。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SmtpServer

指定发送电子邮件的 SMTP 服务器的名称。

默认值为首选项变量的值 $PSEmailServer 。 如果未设置首选项变量且未使用此参数,则 Send-MailMessage 命令将失败。

Type:String
Aliases:ComputerName
Position:3
Default value:$PSEmailServer
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Subject

不要求 Subject 参数。 此参数指定电子邮件的主题。

Type:String
Aliases:sub
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-To

To 参数是必需的。 此参数指定收件人的电子邮件地址。 如果有多个收件人,请使用逗号 (,) 分隔其地址。 输入姓名 (可选) 和电子邮件地址,例如 Name <someone@fabrikam.com>

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-UseSsl

安全套接字层 (SSL) 协议用于与远程计算机建立安全连接以发送邮件。 默认情况下,不使用 SSL。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

输入

String

可以通过管道将附件的路径和文件名传递给 Send-MailMessage

输出

None

此 cmdlet 将不生成任何输出。