Поделиться через


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.

Необходимо указать сервер simple Mail Transfer Protocol (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 — это содержимое сообщения.

Параметр "Вложения" указывает файл в текущем каталоге, присоединенном к сообщению электронной почты. Параметр Priority задает для сообщения приоритет.High Параметр DeliveryNotificationOption указывает два значения и OnSuccessOnFailure. Отправитель получит Уведомления по электронной почте, чтобы подтвердить успешность или сбой доставки сообщения. Параметр 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файлов.

Тип:String[]
Aliases:PsPath
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-Bcc

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

Тип:String[]
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-Body

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

Тип:String
Position:2
значение по умолчанию:None
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-BodyAsHtml

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

Тип:SwitchParameter
Aliases:BAH
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-Cc

Указывает адреса электронной почты, на которые отправляется копия углерода (CC) сообщения электронной почты. Введите имена (необязательно) и адрес электронной почты, например Name <someone@fabrikam.com>.

Тип:String[]
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-Credential

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

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

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

Примечание.

Дополнительные сведения о защите данных SecureString см. в разделе "Как безопасна Защита SecureString?".

Тип:PSCredential
Position:Named
значение по умолчанию:Current user
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-DeliveryNotificationOption

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

Уведомления о доставке отправляются по адресу в параметре From .

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

  • None: нет уведомления.
  • OnSuccess: уведомлять о успешной доставке.
  • OnFailure: уведомлять о неудачной доставке.
  • Delay: уведомляет о задержке доставки.
  • Never: никогда не уведомлять.

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

Тип:DeliveryNotificationOptions
Aliases:DNO
допустимые значения:None, OnSuccess, OnFailure, Delay, Never
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:True
Accept wildcard characters: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 "windows-1251"-Encoding 1251). Дополнительные сведения см. в документации по .NET для Encoding.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
значение по умолчанию:ASCII
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-From

Обязательный параметр From . Этот параметр задает адрес электронной почты отправителя. Введите имя (необязательно) и адрес электронной почты, например Name <someone@fabrikam.com>.

Тип:String
Position:Named
значение по умолчанию:None
Обязательно:True
Accept pipeline input:True
Accept wildcard characters:False

-Port

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

Тип:Int32
Position:Named
значение по умолчанию:25
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-Priority

Указывает приоритет сообщения электронной почты. Значение по умолчанию: Normal. Допустимые значения этого параметра: "Обычный", "Высокий" и "Низкий".

Тип:MailPriority
допустимые значения:Normal, High, Low
Position:Named
значение по умолчанию:Normal
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-ReplyTo

Указывает дополнительные адреса электронной почты (кроме адреса from) для ответа на это сообщение. Введите имена (необязательно) и адрес электронной почты, например Name <someone@fabrikam.com>.

Этот параметр появился в PowerShell 6.2.

Тип:String[]
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-SmtpServer

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

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

Тип:String
Aliases:ComputerName
Position:3
значение по умолчанию:$PSEmailServer
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-Subject

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

Тип:String
Aliases:sub
Position:1
значение по умолчанию:None
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

-To

Обязательный параметр To . Этот параметр задает адрес электронной почты получателя. Введите имена (необязательно) и адрес электронной почты, например Name <someone@fabrikam.com>.

Тип:String[]
Position:0
значение по умолчанию:None
Обязательно:True
Accept pipeline input:True
Accept wildcard characters:False

-UseSsl

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

Тип:SwitchParameter
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:True
Accept wildcard characters:False

Входные данные

String

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

Выходные данные

None

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

Примечания

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

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