Udostępnij za pośrednictwem


Send-MailMessage

Wysyła wiadomość e-mail.

Składnia

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

Opis

Polecenie cmdlet Send-MailMessage wysyła wiadomość e-mail z poziomu programu PowerShell.

Należy określić serwer SMTP (Simple Mail Transfer Protocol) lub polecenie Send-MailMessage kończy się niepowodzeniem. Użyj parametru SmtpServer lub ustaw zmienną $PSEmailServer na prawidłowy serwer SMTP. Wartość przypisana do $PSEmailServer jest domyślnym ustawieniem SMTP dla programu PowerShell. Aby uzyskać więcej informacji, zobacz about_Preference_Variables.

Ostrzeżenie

Polecenie cmdlet Send-MailMessage jest przestarzałe. To polecenie cmdlet nie gwarantuje bezpiecznych połączeń z serwerami SMTP. Chociaż nie ma natychmiastowego zastąpienia dostępnego w programie PowerShell, zalecamy, aby nie używać Send-MailMessage. Aby uzyskać więcej informacji, zobacz zgodność platformy uwaga DE0005.

Przykłady

Przykład 1. Wysyłanie wiadomości e-mail od jednej osoby do innej osoby

Ten przykład wysyła wiadomość e-mail od jednej osoby do innej osoby.

Parametry From, Toi Subject są wymagane przez Send-MailMessage. W tym przykładzie użyto domyślnej zmiennej $PSEmailServer dla serwera SMTP, więc parametr SmtpServer nie jest wymagany.

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>' -Subject 'Test mail'

Polecenie cmdlet Send-MailMessage używa parametru From w celu określenia nadawcy komunikatu. Parametr To określa adresata wiadomości. Parametr Subject używa ciągu tekstowego Test mail jako wiadomości, ponieważ opcjonalny parametr Treść nie jest dołączony.

Przykład 2. Wysyłanie załącznika

Ten przykład wysyła wiadomość e-mail z załącznikiem.

Send-MailMessage -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'

Polecenie cmdlet Send-MailMessage używa parametru From w celu określenia nadawcy komunikatu. Parametr Do określa adresatów wiadomości. Parametr Temat opisuje zawartość komunikatu. Parametr Treść jest zawartością komunikatu.

Parametr Attachments określa plik w bieżącym katalogu dołączonym do wiadomości e-mail. Parametr priorytetu ustawia komunikat na wysoki priorytet. Parametr -DeliveryNotificationOption określa dwie wartości, OnSuccess i OnFailure. Nadawca otrzyma powiadomienia e-mail, aby potwierdzić powodzenie lub niepowodzenie dostarczania wiadomości. Parametr SmtpServer ustawia serwer SMTP na smtp.fabrikam.com.

Przykład 3. Wysyłanie wiadomości e-mail na listę adresową

W tym przykładzie wiadomość e-mail jest wysyłana do listy adresowej.

Send-MailMessage -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

Polecenie cmdlet Send-MailMessage używa parametru From w celu określenia nadawcy komunikatu. Parametr Do określa adresatów wiadomości. Parametr CC wysyła kopię wiadomości do określonego adresata. Parametr Bcc wysyła ślepą kopię komunikatu. Kopia ślepa to adres e-mail, który jest ukryty przed innymi adresatami. Parametr Temat jest komunikatem, ponieważ opcjonalny parametr Treść nie jest uwzględniony.

Parametr Credential określa poświadczenia administratora domeny są używane do wysyłania komunikatu. Parametr UseSsl określa, że protokół Secure Socket Layer (SSL) tworzy bezpieczne połączenie.

Parametry

-Attachments

Określa ścieżkę i nazwy plików, które mają być dołączone do wiadomości e-mail. Możesz użyć tego parametru lub potoku ścieżek i nazw plików, aby Send-MailMessage.

Typ:String[]
Aliasy:PsPath
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Bcc

Określa adresy e-mail, które otrzymują kopię wiadomości, ale nie są wyświetlane jako adresaci wiadomości. Wprowadź nazwy (opcjonalnie) i adres e-mail, na przykład Name <someone@fabrikam.com>.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Body

Określa zawartość wiadomości e-mail.

Typ:String
Position:2
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-BodyAsHtml

Określa, że wartość parametru Body zawiera kod HTML.

Typ:SwitchParameter
Aliasy:BAH
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Cc

Określa adresy e-mail, do których jest wysyłana kopia węgla (CC) wiadomości e-mail. Wprowadź nazwy (opcjonalnie) i adres e-mail, na przykład Name <someone@fabrikam.com>.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Credential

Określa konto użytkownika, które ma uprawnienia do wykonania tej akcji. Wartość domyślna to bieżący użytkownik.

Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01. Możesz też wprowadzić obiekt PSCredential, taki jak obiekt z polecenia cmdlet Get-Credential.

Poświadczenia są przechowywane w obiekcie PSCredential, a hasło jest przechowywane jako SecureString.

Nuta

Aby uzyskać więcej informacji na temat ochrony danych SecureString, zobacz Jak bezpieczny jest protokół SecureString?.

Typ:PSCredential
Position:Named
Domyślna wartość:Current user
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-DeliveryNotificationOption

Określa opcje powiadomienia o dostarczaniu wiadomości e-mail. Można określić wiele wartości. Brak jest wartością domyślną. Alias dla tego parametru to DNO.

Powiadomienia o dostarczaniu są wysyłane do adresu w parametrze From.

Dopuszczalne wartości tego parametru są następujące:

  • None: brak powiadomienia.
  • OnSuccess: powiadom o pomyślnym zakończeniu dostarczania.
  • OnFailure: powiadom, czy dostarczanie nie powiedzie się.
  • Delay: powiadom, czy dostawa jest opóźniona.
  • Never: Nigdy nie powiadamiaj.

Te wartości są definiowane jako wyliczenie oparte na flagach. Możesz połączyć wiele wartości ze sobą, aby ustawić wiele flag przy użyciu tego parametru. Wartości można przekazać do parametru DeliveryNotification jako tablicę wartości lub jako ciąg rozdzielany przecinkami tych wartości. Polecenie cmdlet połączy wartości przy użyciu operacji binary-OR. Przekazywanie wartości jako tablicy jest najprostszą opcją, a także umożliwia użycie uzupełniania tabulatorów na wartościach.

Typ:DeliveryNotificationOptions
Aliasy:DNO
Dopuszczalne wartości:None, OnSuccess, OnFailure, Delay, Never
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Encoding

Określa typ kodowania dla pliku docelowego. Wartość domyślna to utf8NoBOM.

Dopuszczalne wartości tego parametru są następujące:

  • ascii: używa kodowania zestawu znaków ASCII (7-bitowych).
  • bigendianunicode: koduje w formacie UTF-16 przy użyciu kolejności bajtów big-endian.
  • bigendianutf32: Koduje w formacie UTF-32 przy użyciu kolejności bajtów big-endian.
  • oem: używa domyślnego kodowania dla programów MS-DOS i konsoli.
  • unicode: Koduje w formacie UTF-16 przy użyciu kolejności bajtów little-endian.
  • utf7: koduje w formacie UTF-7.
  • utf8: koduje w formacie UTF-8.
  • utf8BOM: koduje w formacie UTF-8 za pomocą znacznika kolejności bajtów (BOM)
  • utf8NoBOM: koduje w formacie UTF-8 bez znaku kolejności bajtów (BOM)
  • utf32: koduje w formacie UTF-32.

Począwszy od programu PowerShell 6.2, Kodowanie parametr umożliwia również numeryczne identyfikatory zarejestrowanych stron kodu (na przykład -Encoding 1251) lub nazwy ciągów zarejestrowanych stron kodu (na przykład -Encoding "windows-1251"). Aby uzyskać więcej informacji, zobacz dokumentację platformy .NET dotyczącą Encoding.CodePage.

Typ:Encoding
Aliasy:BE
Dopuszczalne wartości:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Domyślna wartość:UTF8NoBOM
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-From

Parametr From jest wymagany. Ten parametr określa adres e-mail nadawcy. Wprowadź nazwę (opcjonalnie) i adres e-mail, na przykład Name <someone@fabrikam.com>.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Port

Określa alternatywny port na serwerze SMTP. Wartość domyślna to 25, czyli domyślny port SMTP.

Typ:Int32
Position:Named
Domyślna wartość:25
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Priority

Określa priorytet wiadomości e-mail. Wartość normalna to wartość domyślna. Dopuszczalne wartości tego parametru to Normal, High i Low.

Typ:MailPriority
Dopuszczalne wartości:Normal, High, Low
Position:Named
Domyślna wartość:Normal
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-ReplyTo

Określa dodatkowe adresy e-mail (inne niż adres od) do użycia w celu udzielenia odpowiedzi na tę wiadomość. Wprowadź nazwy (opcjonalnie) i adres e-mail, na przykład Name <someone@fabrikam.com>.

Ten parametr został wprowadzony w programie PowerShell 6.2.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-SmtpServer

Określa nazwę serwera SMTP, który wysyła wiadomość e-mail.

Wartość domyślna to wartość zmiennej preferencji $PSEmailServer. Jeśli zmienna preferencji nie jest ustawiona i ten parametr nie jest używany, polecenie Send-MailMessage kończy się niepowodzeniem.

Typ:String
Aliasy:ComputerName
Position:3
Domyślna wartość:$PSEmailServer
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Subject

Parametr Subject nie jest wymagany. Ten parametr określa temat wiadomości e-mail.

Typ:String
Aliasy:sub
Position:1
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-To

Wymagany jest parametr Do. Ten parametr określa adres e-mail odbiorcy. Jeśli istnieje wielu adresatów, rozdziel ich adresy przecinkami (,). Wprowadź nazwy (opcjonalnie) i adres e-mail, na przykład Name <someone@fabrikam.com>.

Typ:String[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-UseSsl

Protokół SSL (Secure Sockets Layer) służy do nawiązywania bezpiecznego połączenia z komputerem zdalnym w celu wysyłania poczty. Domyślnie protokół SSL nie jest używany.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

String

Możesz przekazać ścieżkę i nazwy plików załączników do Send-MailMessage.

Dane wyjściowe

None

To polecenie cmdlet nie generuje żadnych danych wyjściowych.