Czy wiedziałeś, że istnieje możliwość wysyłania wiadomości Email z wiersza poleceń PowerShell systemu Windows? Tak. Istnieje taka możliwość, a na dodatek jest to banalnie proste, pod warunkiem oczywiście, że mamy połączenie z internetem. Już wyjaśniam jak to zrobić.
W Windows PowerShell < v 2.0 wysyłanie wiadomości Email było nieco trudniejsze, lecz dziś można się w tym zakresie cieszyć sporym ułatwieniem. Od wersji 2.0 PowerShell'a, do wysyłania wiadomości Email w tym środowisku służy nam cmdlet
Send-MailMessage
Ten cmdlet może być stosowany na kilka różnych sposobów, a oto jego najbardziej popularne parametry:
– Attachments (łańcuch)
Pełna ścieżka i nazwy plików, które mają zostać dołączone do wiadomości e-mail.
–Bcc (łańcuch)
Pole BCC, zawierające adresatów.
–Body
Ciało (treść) wiadomości.
–BodyAsHtml
Tej opcji należy użyć jeśli ciało wiadomości ma zostać wysłane jako HTML.
–Cc (łańcuch)
Pole CC, zawierające adresatów.
–Credential (PSCredential)
Konto, które ma uprawnienia do wysyłania wiadomości e-mail. Domyślnym kontem jest bieżący użytkownik.
–DeliveryNotificationOption Opcja
Powiadomienia o dostarczeniu zostaną wysłane na adres e-mail podany w parametrze -From.
Możliwe opcje DeliveryNotificationOption:
None – Brak Powiadomienia (domyśłnie)
OnSuccess - Powiadom, jeśli dostawa zakończyła się powodzeniem.
OnFailure - Powiadom, jeśli dostawa nie zakończyła się powodzeniem.
Opóźnienie - Powiadom, jeśli dostawa jest opóźniona.
Nigdy - Nigdy nie powiadamiaj.
–Encoding Kodowanie
Kodowanie używane dla ciała i tematu
–From (łańcuch)
Adres Email, z którego wysyłana jest poczta.
–Priority Priorytet
Low, Normal, Hogh
–SmtpServer (łańcuch)
Serwer smtp, stosoway do wysyłania wiadomości
–Subject (łańcuch)
Temat wiadomości
–To (łańcuch)
Adresat - adres email adresata wiadomości
–UseSsl
Zastosuj protokół Secure Sockets Layer (SSL) aby nawiązać połączenie z serwerem SMTP i wysłać wiadomość e-mail. SSL nie jest domyślnie używany.
Pełna ścieżka i nazwy plików, które mają zostać dołączone do wiadomości e-mail.
–Bcc (łańcuch)
Pole BCC, zawierające adresatów.
–Body
Ciało (treść) wiadomości.
–BodyAsHtml
Tej opcji należy użyć jeśli ciało wiadomości ma zostać wysłane jako HTML.
–Cc (łańcuch)
Pole CC, zawierające adresatów.
–Credential (PSCredential)
Konto, które ma uprawnienia do wysyłania wiadomości e-mail. Domyślnym kontem jest bieżący użytkownik.
–DeliveryNotificationOption Opcja
Powiadomienia o dostarczeniu zostaną wysłane na adres e-mail podany w parametrze -From.
Możliwe opcje DeliveryNotificationOption:
None – Brak Powiadomienia (domyśłnie)
OnSuccess - Powiadom, jeśli dostawa zakończyła się powodzeniem.
OnFailure - Powiadom, jeśli dostawa nie zakończyła się powodzeniem.
Opóźnienie - Powiadom, jeśli dostawa jest opóźniona.
Nigdy - Nigdy nie powiadamiaj.
–Encoding Kodowanie
Kodowanie używane dla ciała i tematu
–From (łańcuch)
Adres Email, z którego wysyłana jest poczta.
–Priority Priorytet
Low, Normal, Hogh
–SmtpServer (łańcuch)
Serwer smtp, stosoway do wysyłania wiadomości
–Subject (łańcuch)
Temat wiadomości
–To (łańcuch)
Adresat - adres email adresata wiadomości
–UseSsl
Zastosuj protokół Secure Sockets Layer (SSL) aby nawiązać połączenie z serwerem SMTP i wysłać wiadomość e-mail. SSL nie jest domyślnie używany.
Nie trzeba tych parametrów dogłębnie studiować. Jak już wspomniałem wcześniej, wysyłanie wiadomości Email z PowerShell jest banalnie proste. Zobaczmy jak to działa na prostym przykładzie. Zauważymy, że w poniższym przykładzie będzie konieczne wprowadzenie poświadczeń dla serwera SMTP w okienku pojawiającym się natychmiast po zatwierdzeniu polecenia:
A oto przykładowy kod cmdleta Send-EmailMesage wraz z przykładowymi wartościami parametrów, które możesz dostosować do własnych potrzeb, aby szybko i efektownie wysyłać wiadomości Email bezpośrednio ze środowiska PowerShell:
$From = "adminexample.com"
$To = "user1@example.com"
$Cc = "user2@example.com"
$Attachment = "C:\temp\file.txt"
$Subject = "Wiadomość testowa"
$Body = "Treść przykładowej wiaodmości"
$SMTPServer = "smtp.example.com"
$SMTPPort = "587"
Send-MailMessage -From $From -to $To -Cc $Cc -Subject $Subject `
-Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl `
-Credential (Get-Credential) -Attachments $Attachment
$To = "user1@example.com"
$Cc = "user2@example.com"
$Attachment = "C:\temp\file.txt"
$Subject = "Wiadomość testowa"
$Body = "Treść przykładowej wiaodmości"
$SMTPServer = "smtp.example.com"
$SMTPPort = "587"
Send-MailMessage -From $From -to $To -Cc $Cc -Subject $Subject `
-Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl `
-Credential (Get-Credential) -Attachments $Attachment
Aby przetestować wysyłanie wiadomości Email z poziomu Windows PowerShell skopiuj i wklej powyższy kod do notatnika, dostosuj parametry do własnych potrzeb, skopiuj i wklej całość do okienka PowerShell, a następnie wprowadź poświadczenia konta SMTP. W przypadku wątpliwości lub jakichkolwiek pytań proszę o komentarze!
Świetnie się to czyta, ja ze swojej strony mogę polecić kasy fiskalne wroclaw
OdpowiedzUsuńDobry post i bardzo przydatny. Właśnie studiuje i czegoś takiego potrzebowałem.
OdpowiedzUsuń____________
OXYGEN
Bardzo przydatny wpis. Na pewno wkrótce z niego skorzystam :)
OdpowiedzUsuń___________________
http://www.lobo-technik.pl/
Świetnie to opisałeś , teraz uważam że jest to naprawdę bardzo łatwe.
Usuń_________
Maszczyk
Przydatny wpis. Tego właśnie szukałam, pozdrawiam!
OdpowiedzUsuń___________________
Plomby sklep
Super wpis właśnie chciałem zacząć używać tego powershella w windowsie bo jednak bardzo się przydaje do korespondencji mejlowej i nie trzeba wchodzić na strony i szukać na stronach. Wersja 2.0 daje spore możliwości teraz i myślę że zacznę korzystać z tego programu. Tylko muszę powiązać sobie konta i zobaczyć dokładnie o co chodzi i jak się obsługuje ten program.
OdpowiedzUsuń____________
https://www.e-msi.pl/obieg-dokumentow/
Takie wysyłanie wiadomości jest fajną opcją ale po co to robić skoro są łatwiejsze i szybsze do ogarnięcia metody? Jako ciekawostka, super. Ale jako coś praktycznego to już nie bardzo. Tu http://przestrzen-wiedzy.pl/ podali kilka fajnych propozycji na ogarnięcie tego w kilka sekund praktycznie :D
OdpowiedzUsuńDżony, jakie łatwiejsze sposoby widzisz? Bo profesjonalny serwis DPCSERWIS również proponował mi powershell'a. Także ciekawy jestem co ty widzisz, bo nigdzie nie widzę artykułu który podałeś. Widocznie usunęli.
OdpowiedzUsuńa gdzie w skrypcie poswiadczenia do smtp?
OdpowiedzUsuńNo właśnie dziwny jeste ten caly powershell, zastanawiam się nad właśnie programem pocztowym. Muszę poszukać jakiś program do obsługi poczty zewnętrzny. Poczytam więcej o tym powershellu
OdpowiedzUsuń__________________
AVPoint
Super poradnik, właśnie tego szukałem.
OdpowiedzUsuńDobrze i jasno opisane. Na pewno tu wrócę.
OdpowiedzUsuńhttps://speedtestonline.pl
Przyznam, że jak dla mnie to wolę proste metody.
OdpowiedzUsuńhttps://it-leader.pl/
Bardzo dobry wpis. Pozdrawiam serdecznie.
OdpowiedzUsuńBardzo ciekawie to zostało opisane.
OdpowiedzUsuńWszystkim zainteresowanym tematem chciałbym polecić stronę https://smartix.pl/ , ponieważ uważam, że jest to najlepszy portal z nowinkami internetowymi. Czy ktoś z Was równiez go odwiedza? Rzetelne i tematyczne artykuły.
OdpowiedzUsuńCiekawy post! :)
OdpowiedzUsuń