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>]
Описание
Командлет Send-MailMessage
отправляет сообщение электронной почты из PowerShell.
Необходимо указать SMTP-сервер, в противном случае команда завершается ошибкой Send-MailMessage
. Используйте параметр SmtpServer или задайте для переменной $PSEmailServer
допустимый SMTP-сервер.
Значение , присвоенное параметру $PSEmailServer
SMTP по умолчанию для PowerShell. Дополнительные сведения см. в разделе about_Preference_Variables.
Предупреждение
Командлет Send-MailMessage
устарел. Этот командлет не гарантирует безопасные подключения к SMTP-серверам. Хотя в PowerShell нет доступной немедленной замены, не рекомендуется использовать Send-MailMessage
. Дополнительные сведения см. в примечании к совместимости платформы DE0005.
Примеры
Пример 1. Отправка сообщения электронной почты от одного пользователя другому
В этом примере отправляется сообщение электронной почты от одного пользователя другому.
Параметры From, To и Subject требуются для Send-MailMessage
. В этом примере используется переменная по умолчанию $PSEmailServer
для SMTP-сервера, поэтому параметр SmtpServer не требуется.
$sendMailMessageSplat = @{
From = 'User01 <user01@fabrikam.com>'
To = 'User02 <user02@fabrikam.com>'
Subject = 'Test mail'
}
Send-MailMessage @sendMailMessageSplat
Командлет Send-MailMessage
использует параметр From , чтобы указать отправителя сообщения. Параметр To указывает получателя сообщения. Параметр Subject использует текстовую строку Test mail в качестве сообщения, так как необязательный параметр Body не включен.
Пример 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
использует параметр From , чтобы указать отправителя сообщения. Параметр To указывает получателей сообщения. Параметр Subject описывает содержимое сообщения. Параметр Body — это содержимое сообщения.
Параметр 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
использует параметр From , чтобы указать отправителя сообщения. Параметр To указывает получателей сообщения. Параметр Cc отправляет копию сообщения указанному получателю. Параметр Bcc отправляет слепую копию сообщения. Слепая копия — это адрес электронной почты, скрытый от других получателей. Параметр 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
Указывает учетную запись пользователя с разрешением на выполнение этого действия. По умолчанию используется текущий пользователь.
Введите имя пользователя, например User01 или Domain01\User01. Или введите объект PSCredential , например объект из командлета 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 в виде массива значений или строки этих значений, разделенной запятыми. Командлет объединит значения с помощью операции binary-OR. Передача значений в виде массива является самым простым вариантом, а также позволяет использовать для значений заполнение табуляции.
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
: использует кодировку для 7-разрядной кодировки ASCII.bigendianunicode
: кодирует в формате UTF-16 с использованием порядка байтов с большим байтом.bigendianutf32
: кодирует в формате UTF-32 с использованием порядка байтов с большим порядком байтов.oem
: использует кодировку по умолчанию для MS-DOS и консольных программ.unicode
: кодирует в формате UTF-16 с использованием порядка байтов с маленьким порядком байтов.utf7
: кодирует в формате UTF-7.utf8
: кодирует в формате UTF-8.utf8BOM
: кодирует в формате UTF-8 с меткой порядка байтов (BOM)utf8NoBOM
: кодирует в формате UTF-8 без метки порядка байтов (BOM)utf32
: кодирует в формате UTF-32.
Начиная с PowerShell 6.2, параметр Encoding также разрешает числовые идентификаторы зарегистрированных кодовых страниц (например -Encoding 1251
, ) или строковые имена зарегистрированных кодовых страниц (например -Encoding "windows-1251"
, ). Дополнительные сведения см. в документации по .NET для Encoding.CodePage.
Type: | Encoding |
Aliases: | BE |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | ASCII |
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 |
Входные данные
Вы можете передать путь и имена файлов вложений в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
Командлет Send-MailMessage
устарел. Дополнительные сведения см. в примечании к совместимости платформы DE0005. Этот командлет не гарантирует безопасные подключения к SMTP-серверам.
DE0005 предлагает использовать стороннюю библиотеку MailKit. Если вы используете Exchange Online, вы можете использовать Send-MgUserMail из пакета SDK Microsoft Graph PowerShell.