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