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 указывает два значения и 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
файлов.
Тип: | 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 |
Входные данные
Вы можете передать путь и имена файлов вложений в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
Командлет Send-MailMessage
устарел. Дополнительные сведения см. в заметке о совместимости платформы DE0005. Этот командлет не гарантирует безопасные подключения к SMTP-серверам.
DE0005 предлагает использовать стороннюю библиотеку MailKit. Если вы используете Exchange Online, вы можете использовать Send-MgUserMail из пакета SDK Для Microsoft Graph PowerShell.
Связанные ссылки
PowerShell