Sdílet prostřednictvím


Send-MailMessage

Odešle e-mailovou zprávu.

Syntax

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 Send-MailMessage příkaz selže. Použijte parametr SmtpServer nebo nastavte $PSEmailServer proměnnou na platný server SMTP. Hodnota přiřazená $PSEmailServer je výchozím nastavením SMTP pro PowerShell. Další informace najdete v tématu about_Preference_Variables.

Upozorňující

Rutina Send-MailMessage je zastaralá. Tato rutina nezaručuje zabezpečená připojení k serverům SMTP. I když v PowerShellu není k dispozici žádná okamžitá náhrada, doporučujeme nepoužívat Send-MailMessage. Další informace naleznete 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 From, To a Subject jsou vyžadovány parametrem Send-MailMessage. Tento příklad používá výchozí $PSEmailServer proměnnou 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ět používá jako zprávu textový řetězec Test pošty , protože volitelný parametr Text 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 Text je obsah zprávy.

Parametr Přílohy určuje soubor v aktuálním adresáři, který je připojený k e-mailové zprávě. Parametr Priority nastaví zprávu na prioritu High . 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 Kopie 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 Předmět je zpráva, protože volitelný základní parametr není zahrnutý.

Parametr Credential určuje přihlašovací údaje správce domény, které se použijí 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 převést cesty a názvy souborů na Send-MailMessage.

Typ:String[]
Aliases:PsPath
Position:Named
výchozí hodnota:None
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters: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
výchozí hodnota:None
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters:False

-Body

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

Typ:String
Position:2
výchozí hodnota:None
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters:False

-BodyAsHtml

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

Typ:SwitchParameter
Aliases:BAH
Position:Named
výchozí hodnota:None
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters: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
výchozí hodnota:None
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Určuje uživatelský účet, který má oprávnění k provedení této akce. Ve výchozím nastavení je to 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 naleznete v tématu Jak zabezpečený je SecureString?.

Typ:PSCredential
Position:Named
výchozí hodnota:Current user
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters: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, jestli je doručení úspěšné.
  • OnFailure: Upozorněte, pokud doručení není úspěšné.
  • Delay: Upozorněte, pokud je doručení zpožděné.
  • 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 oddělený čárkami 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
Aliases:DNO
přijímané hodnoty:None, OnSuccess, OnFailure, Delay, Never
Position:Named
výchozí hodnota:None
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters: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 kódovou 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í malého bajtového pořadí.
  • 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 Kódování také číselná ID registrovaných znakových stránek (jako -Encoding 1251) nebo názvy řetězců registrovaných znakových stránek (například -Encoding "windows-1251"). Další informace najdete v dokumentaci k .NET pro Encoding.CodePage.

Počínaje PowerShellem 7.4 můžete hodnotu parametru Encoding použít Ansi k předání číselného 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 při zadání parametru Encoding zapíše utf7 upozornění.

Typ:Encoding
Aliases:BE
přijímané hodnoty:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
výchozí hodnota:ASCII
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters:False

-From

Parametr From je povinný. 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
výchozí hodnota:None
Vyžadováno:True
Accept pipeline input:True
Accept wildcard characters:False

-Port

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

Typ:Int32
Position:Named
výchozí hodnota:25
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters: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řijímané hodnoty:Normal, High, Low
Position:Named
výchozí hodnota:Normal
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters: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
výchozí hodnota:None
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters:False

-SmtpServer

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

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

Typ:String
Aliases:ComputerName
Position:3
výchozí hodnota:$PSEmailServer
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters:False

-Subject

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

Typ:String
Aliases:sub
Position:1
výchozí hodnota:None
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters: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
výchozí hodnota:None
Vyžadováno:True
Accept pipeline input:True
Accept wildcard characters: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
výchozí hodnota:None
Vyžadováno:False
Accept pipeline input:True
Accept wildcard characters: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 naleznete 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.