Поиск по сайту:

Send-MailMessage (Microsoft.PowerShell.Utility)


Send-MailMessage

Модуль:
Microsoft.PowerShell.Utility

Отправляет сообщение электронной почты.

Синтаксис

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. Отправьте электронное письмо от одного человека другому.

В этом примере сообщение электронной почты отправляется от одного человека другому.

Параметры От, Кому и Тема необходимы для 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 для указания отправителя сообщения. Параметр Кому указывает получателей сообщения. Параметр Тема описывает содержание сообщения. Параметр Body — это содержимое сообщения.

Параметр Attachments указывает файл в текущем каталоге, прикрепленный к сообщению электронной почты. Параметр Priority устанавливает для сообщения высокий приоритет. Параметр 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 для указания отправителя сообщения. Параметр Кому указывает получателей сообщения. Параметр Cc отправляет копию сообщения указанному получателю. Параметр Bcc отправляет скрытую копию сообщения. Скрытая копия — это адрес электронной почты, скрытый от других получателей. Параметр Subject — это сообщение, поскольку необязательный параметр Body не включен.

Параметр Credential указывает, что для отправки сообщения используются учетные данные администратора домена. Параметр UseSsl указывает, что Secure Socket Layer (SSL) создает безопасное соединение.

Параметры

-Attachments

Указывает путь и имена файлов, которые будут прикреплены к сообщению электронной почты. Вы можете использовать этот параметр или передать пути и имена файлов в Send-MailMessage.

Тип :

String[]

Псевдонимы:

PsPath

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Bcc

Указывает адреса электронной почты, которые получают копию письма, но не указаны в качестве получателей сообщения. Введите имена (необязательно) и адрес электронной почты, например Name .

Тип :

String[]

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Body

Указывает содержимое сообщения электронной почты.

Тип :

String

Позиция:

2

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-BodyAsHtml

Указывает, что значение параметра Body содержит HTML.

Тип :

SwitchParameter

Псевдонимы:

BAH

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Cc

Указывает адреса электронной почты, на которые отправляется копия (CC) сообщения электронной почты. Введите имена (необязательно) и адрес электронной почты, например Name .

Тип :

String[]

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Credential

Указывает учетную запись пользователя, имеющую разрешение на выполнение этого действия. По умолчанию используется текущий пользователь.

Введите имя пользователя, например User01 или Domain01\User01. Или введите объект PSCredential, например объект из командлета Get-Credential.

Учетные данные хранятся в объекте PSCredential, а пароль хранится в виде SecureString.

Примечание

Дополнительную информацию о защите данных SecureString см. в разделе Насколько безопасен SecureString?.

Тип :

PSCredential

Позиция:

Именованный

Значение по умолчанию:

Текущий пользователь

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-DeliveryNotificationOption

Указывает параметры уведомления о доставке сообщения электронной почты. Вы можете указать несколько значений. Нет — значение по умолчанию. Псевдоним этого параметра — DNO.

Уведомления о доставке отправляются на адрес, указанный в параметре От.

Допустимые значения этого параметра следующие:

  • Нет: нет уведомлений.
  • OnSuccess: уведомляет об успешной доставке.
  • OnFailure: уведомляет, если доставка не удалась.
  • Задержка: уведомляет, если доставка задерживается.
  • Никогда: Никогда не уведомлять.

Эти значения определяются как перечисление на основе флагов. С помощью этого параметра вы можете объединить несколько значений, чтобы установить несколько флагов. Значения можно передавать в параметр DeliveryNotification как массив значений или как строку этих значений, разделенную запятыми. Командлет объединит значения с помощью операции двоичного ИЛИ. Передача значений в виде массива — самый простой вариант, который также позволяет использовать для значений табуляцию.

Тип :

Параметры уведомления о доставке

Псевдонимы:

DNO

Принятые значения:

Нет, при успехе, при сбое, задержка, никогда

Позиция:

Именованный

Значение по умолчанию:

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 также позволяет использовать числовые идентификаторы зарегистрированных кодовых страниц (например, -Encoding 1251) или строковые имена зарегистрированных кодовых страниц (например, -Encoding). "windows-1251"). Дополнительные сведения см. в документации .NET для Encoding.CodePage.

Начиная с PowerShell 7.4, вы можете использовать значение Ansi для параметра Encoding, чтобы передать числовой идентификатор для текущей кодовой страницы ANSI языка и региональных параметров без необходимости указывать его вручную.

Примечание

UTF-7* больше не рекомендуется использовать. Начиная с PowerShell 7.1, предупреждение выводится, если вы укажете utf7 для параметра Кодировка.

Тип :

Кодирование

Псевдонимы:

BE

Принятые значения:

ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32

Позиция:

Именованный

Значение по умолчанию:

ASCII-код

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-From

Параметр От является обязательным. Этот параметр указывает адрес электронной почты отправителя. Введите имя (необязательно) и адрес электронной почты, например Name .

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

True

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Port

Указывает альтернативный порт на SMTP-сервере. Значение по умолчанию — 25, что является портом SMTP по умолчанию.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

25

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Priority

Указывает приоритет сообщения электронной почты. Нормальный — значение по умолчанию. Допустимыми значениями этого параметра являются «Нормальный», «Высокий» и «Низкий».

Тип :

MailPriority

Принятые значения:

Нормальный, Высокий, Низкий

Позиция:

Именованный

Значение по умолчанию:

Нормальный

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-ReplyTo

Указывает дополнительные адреса электронной почты (кроме адреса «От»), которые будут использоваться для ответа на это сообщение. Введите имена (необязательно) и адрес электронной почты, например Name .

Этот параметр был введен в PowerShell 6.2.

Тип :

String[]

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-SmtpServer

Указывает имя SMTP-сервера, отправляющего сообщение электронной почты.

Значением по умолчанию является значение привилегированной переменной $PSEmailServer. Если привилегированная переменная не установлена и этот параметр не используется, команда Send-MailMessage завершится с ошибкой.

Тип :

String

Псевдонимы:

ComputerName

Позиция:

3

Значение по умолчанию:

$PSEmailServer

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-Subject

Параметр Тема не является обязательным. Этот параметр указывает тему сообщения электронной почты.

Тип :

String

Псевдонимы:

sub

Позиция:

1

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-To

Параметр To является обязательным. Этот параметр указывает адрес электронной почты получателя. Введите имена (необязательно) и адрес электронной почты, например Name .

Тип :

String[]

Позиция:

0

Значение по умолчанию:

None

Необходимый:

True

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

-UseSsl

Протокол Secure Sockets Layer (SSL) используется для установки безопасного соединения с удаленным компьютером для отправки почты. По умолчанию SSL не используется.

Тип :

SwitchParameter

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

True

Принимайте подстановочные знаки:

False

Входы

Строка

В этот командлет можно передать пути и имена файлов вложений.

Выходы

Нет

Этот командлет не возвращает никаких результатов.

Примечания

Командлет Send-MailMessage устарел. Дополнительную информацию см. в примечании о совместимости платформ DE0005. Этот командлет не гарантирует безопасное соединение с SMTP-серверами.

DE0005 предлагает использовать стороннюю библиотеку MailKit. Если вы используете Exchange Online, вы можете использовать Send-MgUserMail из пакета SDK Microsoft Graph PowerShell.

Все права защищены. © PowerShell-7.ru • 2024