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.