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 указывает получателя сообщения. Параметр темы использует текстовую строку тестовой почты в качестве сообщения, так как необязательный параметр текста не включен.
Пример 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 — это содержимое сообщения.
Параметр вложения указывает файл в текущем каталоге, вложенном в сообщение электронной почты. Параметр 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 является сообщением, так как необязательный параметр текст не включен.
Параметр учетных данных указывает учетные данные администратора домена для отправки сообщения. Параметр UseSsl указывает, что протокол SSL создает безопасное подключение.
Параметры
-Attachments
Указывает путь и имена файлов, которые должны быть присоединены к сообщению электронной почты. Этот параметр можно использовать или передать пути и имена файлов для Send-MailMessage
.
Тип: | String[] |
Aliases: | PsPath |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Bcc
Указывает адреса электронной почты, которые получают копию почты, но не указаны в качестве получателей сообщения. Введите имена (необязательно) и адрес электронной почты, например Name <someone@fabrikam.com>
.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Body
Указывает содержимое сообщения электронной почты.
Тип: | String |
Position: | 2 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-BodyAsHtml
Указывает, что значение параметра body содержит HTML.
Тип: | SwitchParameter |
Aliases: | BAH |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Cc
Указывает адреса электронной почты, на которые отправляется копия углерода (CC) сообщения электронной почты. Введите имена (необязательно) и адрес электронной почты, например Name <someone@fabrikam.com>
.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Credential
Указывает учетную запись пользователя, которая имеет разрешение на выполнение этого действия. По умолчанию используется текущий пользователь.
Введите имя пользователя, например User01 или Domain01\User01. Или введите объект PSCredential, например один из командлета Get-Credential
.
Учетные данные хранятся в объекте PSCredential, а пароль хранится в виде SecureString.
Заметка
Дополнительные сведения о защите данных SecureString см. в разделе Как безопасно SecureString?.
Тип: | PSCredential |
Position: | Named |
Default value: | Current user |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-DeliveryNotificationOption
Задает параметры уведомления о доставке сообщения электронной почты. Можно указать несколько значений. Значение по умолчанию отсутствует. Псевдоним этого параметра — DNO.
Уведомления о доставке отправляются по адресу в параметре From.
Допустимые значения для этого параметра приведены следующим образом:
-
None
: нет уведомлений. -
OnSuccess
: уведомлять о успешной доставке. -
OnFailure
: уведомлять о неудачной доставке. -
Delay
: уведомлять о задержке доставки. -
Never
: никогда не уведомлять.
Эти значения определяются как перечисление на основе флага. Можно объединить несколько значений, чтобы задать несколько флагов с помощью этого параметра. Значения можно передать в параметр DeliveryNotification в виде массива значений или в виде строки, разделенной запятыми этих значений. Командлет объединяет значения с помощью операции binary-OR. Передача значений в виде массива является самым простым параметром, а также позволяет использовать завершение табуляции для значений.
Тип: | DeliveryNotificationOptions |
Aliases: | DNO |
Допустимые значения: | None, OnSuccess, OnFailure, Delay, Never |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Encoding
Указывает тип кодирования для целевого файла. Значение по умолчанию — utf8NoBOM
.
Допустимые значения для этого параметра приведены следующим образом:
-
ascii
: использует кодировку для набора символов ASCII (7-разрядный). -
ansi
. Использует кодировку для кодовой страницы ANSI текущего языка и региональных параметров. Этот параметр добавлен в PowerShell 7.4. -
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 1251
) или строковым именам зарегистрированных кодовых страниц (например, -Encoding "windows-1251"
). Дополнительные сведения см. в документации по .NET для Кодировка.CodePage.
Начиная с PowerShell 7.4, можно использовать значение Ansi
для параметра кодировки для передачи числового идентификатора для кодовой страницы ANSI текущего языка и региональных параметров, не указывая ее вручную.
Заметка
UTF-7* больше не рекомендуется использовать. По состоянию на PowerShell 7.1 предупреждение записывается, если указать utf7
для параметра кодировки.
Тип: | Encoding |
Aliases: | BE |
Допустимые значения: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | ASCII |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-From
Требуется параметр From. Этот параметр задает адрес электронной почты отправителя. Введите имя (необязательно) и адрес электронной почты, например Name <someone@fabrikam.com>
.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Port
Указывает альтернативный порт на SMTP-сервере. Значение по умолчанию — 25, которое является портом SMTP по умолчанию.
Тип: | Int32 |
Position: | Named |
Default value: | 25 |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Priority
Указывает приоритет сообщения электронной почты. Обычный — это значение по умолчанию. Допустимые значения этого параметра: "Обычный", "Высокий" и "Низкий".
Тип: | MailPriority |
Допустимые значения: | Normal, High, Low |
Position: | Named |
Default value: | Normal |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-ReplyTo
Указывает дополнительные адреса электронной почты (кроме адреса from) для ответа на это сообщение.
Введите имена (необязательно) и адрес электронной почты, например Name <someone@fabrikam.com>
.
Этот параметр появился в PowerShell 6.2.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-SmtpServer
Указывает имя SMTP-сервера, отправляющего сообщение электронной почты.
Значение по умолчанию — это значение переменной предпочтения $PSEmailServer
. Если переменная предпочтения не задана и этот параметр не используется, команда Send-MailMessage
завершается ошибкой.
Тип: | String |
Aliases: | ComputerName |
Position: | 3 |
Default value: | $PSEmailServer |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Subject
Параметр Subject не требуется. Этот параметр задает тему сообщения электронной почты.
Тип: | String |
Aliases: | sub |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-To
Требуется параметр To. Этот параметр задает адрес электронной почты получателя. Введите имена (необязательно) и адрес электронной почты, например Name <someone@fabrikam.com>
.
Тип: | String[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-UseSsl
Протокол SSL используется для установления безопасного подключения к удаленному компьютеру для отправки почты. По умолчанию SSL не используется.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
Входные данные
Вы можете передать путь и имена файлов вложений в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
Командлет Send-MailMessage
устарел. Дополнительные сведения см. в заметке о совместимости платформы DE0005. Этот командлет не гарантирует безопасные подключения к SMTP-серверам.
DE0005 предлагает использовать стороннюю библиотеку MailKit. Если вы используете Exchange Online, вы можете использовать Send-MgUserMail из пакета SDK Для Microsoft Graph PowerShell.
Связанные ссылки
PowerShell