Send-MailMessage
发送电子邮件。
语法
Send-MailMessage
[-To] <string[]>
[-Subject] <string>
[[-Body] <string>]
[[-SmtpServer] <string>]
-From <string>
[-Attachments <string[]>]
[-Bcc <string[]>]
[-BodyAsHtml]
[-Encoding <Encoding>]
[-Cc <string[]>]
[-DeliveryNotificationOption <DeliveryNotificationOptions>]
[-Priority <MailPriority>]
[-Credential <pscredential>]
[-UseSsl]
[-Port <int>]
[<CommonParameters>]
说明
Send-MailMessage
cmdlet 从 PowerShell 中发送电子邮件。
必须指定简单邮件传输协议(SMTP)服务器或 Send-MailMessage
命令失败。 使用 SmtpServer 参数或将 $PSEmailServer
变量设置为有效的 SMTP 服务器。
分配给 $PSEmailServer
的值是 PowerShell 的默认 SMTP 设置。 有关详细信息,请参阅 about_Preference_Variables。
警告
Send-MailMessage
cmdlet 已过时。 此 cmdlet 不能保证与 SMTP 服务器的安全连接。 虽然 PowerShell 中没有立即可用的替换项,但建议不要使用 Send-MailMessage
。 有关详细信息,请参阅 平台兼容性说明 DE0005。
示例
示例 1:向另一个人发送电子邮件
本示例将电子邮件从一个人发送到另一个人。
Send-MailMessage
需要从 、到,Subject 参数。 此示例使用 SMTP 服务器的默认 $PSEmailServer
变量,因此不需要 SmtpServer 参数。
$sendMailMessageSplat = @{
From = 'User01 <user01@fabrikam.com>'
To = 'User02 <user02@fabrikam.com>'
Subject = 'Test mail'
}
Send-MailMessage @sendMailMessageSplat
Send-MailMessage
cmdlet 使用 from 参数 来指定邮件的发件人。
To 参数指定邮件的收件人。
Subject 参数使用文本字符串 测试邮件 作为邮件,因为不包括可选的 正文 参数。
示例 2:发送附件
本示例发送带有附件的电子邮件。
$sendMailMessageSplat = @{
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'
}
Send-MailMessage @sendMailMessageSplat
Send-MailMessage
cmdlet 使用 from 参数 来指定邮件的发件人。
To 参数指定邮件的收件人。
Subject 参数描述消息的内容。
正文 参数是消息的内容。
Attachments 参数指定附加到电子邮件的当前目录中的文件。
Priority 参数将消息设置为 High
优先级。
DeliveryNotificationOption 参数指定两个值,OnSuccess
和 OnFailure
。 发件人将收到电子邮件通知,以确认邮件传递成功或失败。
SmtpServer 参数将 SMTP 服务器设置为 smtp.fabrikam.com
。
示例 3:向邮件列表发送电子邮件
本示例将电子邮件发送到邮件列表。
$sendMailMessageSplat = @{
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 = $true
}
Send-MailMessage @sendMailMessageSplat
Send-MailMessage
cmdlet 使用 from 参数 来指定邮件的发件人。
To 参数指定邮件的收件人。
Cc 参数将邮件的副本发送到指定的收件人。
密件抄送 参数发送消息的盲件副本。 盲件副本是其他收件人隐藏的电子邮件地址。
Subject 参数是消息,因为不包括可选的 正文 参数。
Credential 参数指定域管理员凭据用于发送消息。 UseSsl 参数指定安全套接字层(SSL)创建安全连接。
参数
-Attachments
指定要附加到电子邮件的文件的路径和文件名。 可以使用此参数或管道将路径和文件名传递给 Send-MailMessage
。
类型: | String[] |
别名: | PsPath |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Bcc
指定接收邮件副本但未列为邮件收件人的电子邮件地址。 输入姓名(可选)和电子邮件地址,例如 Name <someone@fabrikam.com>
。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Body
指定电子邮件的内容。
类型: | String |
Position: | 2 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-BodyAsHtml
指定 正文 参数的值包含 HTML。
类型: | SwitchParameter |
别名: | BAH |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Cc
指定发送电子邮件的抄送副本(CC)的电子邮件地址。 输入姓名(可选)和电子邮件地址,例如 Name <someone@fabrikam.com>
。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Credential
指定有权执行此作的用户帐户。 默认值为当前用户。
键入用户名,例如 User01 或 Domain01\User01。 或者,输入 PSCredential 对象,例如 Get-Credential
cmdlet 中的对象。
凭据存储在 PSCredential 对象中,密码存储为 SecureString。
注意
有关 SecureString 数据保护的详细信息,请参阅 SecureString 的安全性如何?。
类型: | PSCredential |
Position: | Named |
默认值: | Current user |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DeliveryNotificationOption
指定电子邮件的传递通知选项。 可以指定多个值。 无为默认值。 此参数的别名 DNO。
传递通知将发送到 From 参数中的地址。
此参数的可接受值如下所示:
-
None
:无通知。 -
OnSuccess
:通知传递是否成功。 -
OnFailure
:通知传递是否失败。 -
Delay
:通知传递是否延迟。 -
Never
:从不通知。
这些值定义为基于标志的枚举。 可以使用此参数将多个值组合在一起以设置多个标志。 可以将值作为值数组或这些值的逗号分隔字符串传递给 DeliveryNotification 参数。 该 cmdlet 将使用二进制 OR作合并这些值。 将值作为数组传递是最简单的选项,还允许对值使用 Tab 补全。
类型: | DeliveryNotificationOptions |
别名: | DNO |
接受的值: | None, OnSuccess, OnFailure, Delay, Never |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Encoding
指定目标文件的编码类型。 默认值为 Default
。
此参数的可接受值如下所示:
-
ASCII
使用 ASCII(7 位)字符集。 -
BigEndianUnicode
使用具有 big-endian 字节顺序的 UTF-16。 -
Default
使用与系统的活动代码页(通常是 ANSI)对应的编码。 -
OEM
使用与系统的当前 OEM 代码页对应的编码。 -
Unicode
将 UTF-16 与 little-endian 字节顺序一起使用。 -
UTF7
使用 UTF-7。 -
UTF8
使用 UTF-8。 -
UTF32
将 UTF-32 与 little-endian 字节顺序一起使用。
类型: | Encoding |
别名: | BE |
接受的值: | ASCII, BigEndianUnicode, Default, OEM, Unicode, UTF7, UTF8, UTF32 |
Position: | Named |
默认值: | Default |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-From
需要 From 参数。 此参数指定发件人的电子邮件地址。 输入名称(可选)和电子邮件地址,例如 Name <someone@fabrikam.com>
。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-Port
指定 SMTP 服务器上的备用端口。 默认值为 25,即默认 SMTP 端口。
类型: | Int32 |
Position: | Named |
默认值: | 25 |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Priority
指定电子邮件的优先级。 常规为默认值。 此参数的可接受值为 Normal、High 和 Low。
类型: | MailPriority |
接受的值: | Normal, High, Low |
Position: | Named |
默认值: | Normal |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SmtpServer
指定发送电子邮件的 SMTP 服务器的名称。
默认值是 $PSEmailServer
首选项变量的值。 如果未设置首选项变量,并且未使用此参数,Send-MailMessage
命令将失败。
类型: | String |
别名: | ComputerName |
Position: | 3 |
默认值: | $PSEmailServer |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Subject
不需要 Subject 参数。 此参数指定电子邮件的主题。
类型: | String |
别名: | sub |
Position: | 1 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-To
需要 To 参数。 此参数指定收件人的电子邮件地址。 输入姓名(可选)和电子邮件地址,例如 Name <someone@fabrikam.com>
。
类型: | String[] |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-UseSsl
安全套接字层 (SSL) 协议用于建立与远程计算机的安全连接以发送邮件。 默认情况下,不使用 SSL。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以通过管道将附件的路径和文件名传递给此 cmdlet。
输出
None
此 cmdlet 不返回任何输出。
备注
Send-MailMessage
cmdlet 已过时。 有关详细信息,请参阅 平台兼容性说明 DE0005。 此 cmdlet 不能保证与 SMTP 服务器的安全连接。
DE0005 建议使用第三方库,MailKit。 如果使用 Exchange Online,则可以从 Microsoft Graph PowerShell SDK 使用 Send-MgUserMail。