Sdílet prostřednictvím


Send-MailMessage

Odešle e-mailovou zprávu.

Syntaxe

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>]

Description

Rutina Send-MailMessage odešle e-mailovou zprávu z PowerShellu.

Je nutné zadat server SMTP (Simple Mail Transfer Protocol) nebo příkaz Send-MailMessage selže. Použijte parametr SmtpServer nebo nastavte proměnnou $PSEmailServer na platný server SMTP. Hodnota přiřazená $PSEmailServer je výchozím nastavením SMTP pro PowerShell. Další informace naleznete v tématu about_Preference_Variables.

Varování

Rutina Send-MailMessage je zastaralá. Tato rutina nezaručuje zabezpečená připojení k serverům SMTP. V PowerShellu není k dispozici žádná okamžitá náhrada, doporučujeme nepoužívat Send-MailMessage. Další informace najdete v tématu Poznámky k kompatibilitě platformy DE0005.

Příklady

Příklad 1: Odeslání e-mailu od jedné osoby jiné osobě

Tento příklad odešle e-mailovou zprávu jedné osobě jiné osobě.

Parametry z, Doa Předmět jsou vyžadovány Send-MailMessage. Tento příklad používá výchozí proměnnou $PSEmailServer pro server SMTP, takže parametr SmtpServer není potřeba.

$sendMailMessageSplat = @{
    From = 'User01 <user01@fabrikam.com>'
    To = 'User02 <user02@fabrikam.com>'
    Subject = 'Test mail'
}
Send-MailMessage @sendMailMessageSplat

Rutina Send-MailMessage používá parametr From k určení odesílatele zprávy. Parametr To určuje příjemce zprávy. Parametr předmětu používá jako zprávu textový řetězec Testovací pošta, protože volitelný parametr textu není zahrnutý.

Příklad 2: Odeslání přílohy

Tento příklad odešle e-mailovou zprávu s přílohou.

$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

Rutina Send-MailMessage používá parametr From k určení odesílatele zprávy. Parametr To určuje příjemce zprávy. Parametr Předmět popisuje obsah zprávy. Parametr Body je obsah zprávy.

Parametr Přílohy určuje soubor v aktuálním adresáři připojeném k e-mailové zprávě. Parametr Priority nastaví zprávu na High prioritu. Parametr DeliveryNotificationOption určuje dvě hodnoty, OnSuccess a OnFailure. Odesílatel obdrží e-mailová oznámení, která potvrdí úspěch nebo selhání doručení zprávy. Parametr SmtpServer nastaví server SMTP na smtp.fabrikam.com.

Příklad 3: Odeslání e-mailu do seznamu adresátů

Tento příklad odešle e-mailovou zprávu do seznamu adresátů.

$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

Rutina Send-MailMessage používá parametr From k určení odesílatele zprávy. Parametr To určuje příjemce zprávy. Parametr Cc odešle kopii zprávy zadanému příjemci. Parametr Skrytá kopie odešle slepou kopii zprávy. Nevidomá kopie je e-mailová adresa, která je ostatním příjemcům skrytá. Parametr subject je zpráva, protože volitelný parametr text není zahrnutý.

Parametr přihlašovacích údajů určuje přihlašovací údaje správce domény k odeslání zprávy. Parametr UseSsl určuje, že protokol SSL (Secure Socket Layer) vytvoří zabezpečené připojení.

Parametry

-Attachments

Určuje cestu a názvy souborů, které se mají připojit k e-mailové zprávě. Tento parametr můžete použít nebo kanálovat cesty a názvy souborů k Send-MailMessage.

Typ:String[]
Aliasy:PsPath
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Bcc

Určuje e-mailové adresy, které obdrží kopii e-mailu, ale nejsou uvedené jako příjemci zprávy. Zadejte jména (volitelné) a e-mailovou adresu, například Name <someone@fabrikam.com>.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Body

Určuje obsah e-mailové zprávy.

Typ:String
Position:2
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-BodyAsHtml

Určuje, že hodnota parametru Body obsahuje kód HTML.

Typ:SwitchParameter
Aliasy:BAH
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Cc

Určuje e-mailové adresy, na které se odešle kopie uhlíku (CC). Zadejte jména (volitelné) a e-mailovou adresu, například Name <someone@fabrikam.com>.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Credential

Určuje uživatelský účet, který má oprávnění k provedení této akce. Výchozí hodnota je aktuální uživatel.

Zadejte uživatelské jméno, například User01 nebo Domain01\User01. Nebo zadejte objekt PSCredential, například objekt z rutiny Get-Credential.

Přihlašovací údaje jsou uloženy v objektu PSCredential a heslo je uloženo jako SecureString.

Poznámka

Další informace o ochraně dat SecureString najdete v tématu Jak zabezpečený je SecureString?.

Typ:PSCredential
Position:Named
Default value:Current user
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-DeliveryNotificationOption

Určuje možnosti oznámení o doručení e-mailové zprávy. Můžete zadat více hodnot. Žádná není výchozí hodnota. Alias pro tento parametr je DNO.

Oznámení o doručení se posílají na adresu v parametru From.

Přijatelné hodnoty pro tento parametr jsou následující:

  • None: Žádné oznámení.
  • OnSuccess: Upozorněte, pokud je doručení úspěšné.
  • OnFailure: Upozorněte na neúspěšné doručení.
  • Delay: Upozorněte, zda je doručení zpožděno.
  • Never: Nikdy neoznamujte.

Tyto hodnoty jsou definovány jako výčet založený na příznaku. Pomocí tohoto parametru můžete zkombinovat více hodnot a nastavit více příznaků. Hodnoty lze předat parametru DeliveryNotification jako pole hodnot nebo jako řetězec s oddělovači těchto hodnot. Rutina zkombinuje hodnoty pomocí binární operace OR. Předání hodnot jako pole je nejjednodušší možností a také umožňuje použít pro hodnoty dokončování tabulátoru.

Typ:DeliveryNotificationOptions
Aliasy:DNO
Přípustné hodnoty:None, OnSuccess, OnFailure, Delay, Never
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Encoding

Určuje typ kódování cílového souboru. Výchozí hodnota je utf8NoBOM.

Přijatelné hodnoty pro tento parametr jsou následující:

  • ascii: Používá kódování znakové sady ASCII (7bitová).
  • ansi: Používá kódování pro znakovou stránku ANSI aktuální jazykové verze. Tato možnost byla přidána v PowerShellu 7.4.
  • bigendianunicode: Kóduje ve formátu UTF-16 pomocí pořadí velkých bajtů.
  • bigendianutf32: Kóduje ve formátu UTF-32 pomocí pořadí velkých bajtů.
  • oem: Používá výchozí kódování pro MS-DOS a konzolové programy.
  • unicode: Kóduje ve formátu UTF-16 pomocí pořadí malých bajtů.
  • utf7: Kóduje ve formátu UTF-7.
  • utf8: Kóduje ve formátu UTF-8.
  • utf8BOM: Kódování ve formátu UTF-8 pomocí značky pořadí bajtů (BOM)
  • utf8NoBOM: Kódování ve formátu UTF-8 bez značky pořadí bajtů (BOM)
  • utf32: Kóduje ve formátu UTF-32.

Počínaje PowerShellem 6.2 umožňuje parametr Encoding také číselné ID registrovaných znakových stránek (například -Encoding 1251) nebo názvy řetězců registrovaných znakových stránek (například -Encoding "windows-1251"). Další informace naleznete v dokumentaci .NET pro Encoding.CodePage.

Počínaje PowerShellem 7.4 můžete použít hodnotu Ansi parametru Encoding a předat číselné ID pro znakovou stránku ANSI aktuální jazykové verze, aniž byste ji museli zadávat ručně.

Poznámka

UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se zapíše upozornění, pokud pro parametr Encoding zadáte utf7.

Typ:Encoding
Aliasy:BE
Přípustné hodnoty:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:ASCII
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-From

Je vyžadován parametr From. Tento parametr určuje e-mailovou adresu odesílatele. Zadejte jméno (volitelné) a e-mailovou adresu, například Name <someone@fabrikam.com>.

Typ:String
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Port

Určuje alternativní port na serveru SMTP. Výchozí hodnota je 25, což je výchozí port SMTP.

Typ:Int32
Position:Named
Default value:25
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Priority

Určuje prioritu e-mailové zprávy. Normální je výchozí hodnota. Přijatelné hodnoty pro tento parametr jsou Normal, High a Low.

Typ:MailPriority
Přípustné hodnoty:Normal, High, Low
Position:Named
Default value:Normal
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-ReplyTo

Určuje další e-mailové adresy (jiné než od adresy), které se mají použít k odpovídání na tuto zprávu. Zadejte jména (volitelné) a e-mailovou adresu, například Name <someone@fabrikam.com>.

Tento parametr byl představen v PowerShellu 6.2.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-SmtpServer

Určuje název serveru SMTP, který odešle e-mailovou zprávu.

Výchozí hodnota je hodnota proměnné předvoleb $PSEmailServer. Pokud proměnná předvoleb není nastavená a tento parametr se nepoužívá, příkaz Send-MailMessage selže.

Typ:String
Aliasy:ComputerName
Position:3
Default value:$PSEmailServer
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Subject

Parametr Subject není povinný. Tento parametr určuje předmět e-mailové zprávy.

Typ:String
Aliasy:sub
Position:1
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-To

Parametr To je povinný. Tento parametr určuje e-mailovou adresu příjemce. Zadejte jména (volitelné) a e-mailovou adresu, například Name <someone@fabrikam.com>.

Typ:String[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-UseSsl

Protokol SSL (Secure Sockets Layer) slouží k navázání zabezpečeného připojení ke vzdálenému počítači pro odesílání pošty. Ve výchozím nastavení se ssl nepoužívá.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

Vstupy

String

Do této rutiny můžete převést cestu a názvy souborů příloh.

Výstupy

None

Tato rutina nevrátí žádný výstup.

Poznámky

Rutina Send-MailMessage je zastaralá. Další informace najdete v tématu Poznámky k kompatibilitě platformy DE0005. Tato rutina nezaručuje zabezpečená připojení k serverům SMTP.

DE0005 navrhuje použití knihovny třetích stran, MailKit. Pokud používáte Exchange Online, můžete použít Send-MgUserMail ze sady Microsoft Graph PowerShell SDK.