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

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

String

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

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

None

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

Примечания

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

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