Etykiety

linux (14) php (14) Laravel (9) mysql (9) Hardware (8) Windows (6) sieci (5) PowerShell (4) software (4) MariaDB (3) apache (3) html (3) Microsoft (2) bezpieczeństwo LAN (2) cygwin (2) Akcesoria (1) CMS (1) Laptop (1) Open Office (1) drupal 7 (1) gpg (1) hosting (1) jquery (1) sieci LAN (1) xml (1) zabezpieczenie sieci LAN (1)

wtorek, 5 grudnia 2017

Wysyłanie wiadomości Email z PowerShell

Bywają sytuację, w których zależy nam na szybkim skorzystaniu z wiersza poleceń, na przykład aby niezawodnie wysłać wiadomość Email z komputera na którym ciężko jest uruchomić cokolwiek innego. Z doświadczenia wiem dobrze, że takie sytuacje zdarzają się nierzadko.

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.

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

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!

17 komentarzy:

  1. Świetnie się to czyta, ja ze swojej strony mogę polecić kasy fiskalne wroclaw

    OdpowiedzUsuń
  2. Dobry post i bardzo przydatny. Właśnie studiuje i czegoś takiego potrzebowałem.
    ____________
    OXYGEN

    OdpowiedzUsuń
  3. Bardzo przydatny wpis. Na pewno wkrótce z niego skorzystam :)

    ___________________
    http://www.lobo-technik.pl/

    OdpowiedzUsuń
    Odpowiedzi
    1. Świetnie to opisałeś , teraz uważam że jest to naprawdę bardzo łatwe.
      _________
      Maszczyk

      Usuń
  4. Przydatny wpis. Tego właśnie szukałam, pozdrawiam!
    ___________________
    Plomby sklep

    OdpowiedzUsuń
  5. 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.
    ____________
    https://www.e-msi.pl/obieg-dokumentow/

    OdpowiedzUsuń
  6. 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ń
  7. 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ń
  8. a gdzie w skrypcie poswiadczenia do smtp?

    OdpowiedzUsuń
  9. 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
    __________________
    AVPoint

    OdpowiedzUsuń
  10. Super poradnik, właśnie tego szukałem.

    OdpowiedzUsuń
  11. Dobrze i jasno opisane. Na pewno tu wrócę.

    https://speedtestonline.pl

    OdpowiedzUsuń
  12. Przyznam, że jak dla mnie to wolę proste metody.

    https://it-leader.pl/

    OdpowiedzUsuń
  13. Bardzo dobry wpis. Pozdrawiam serdecznie.

    OdpowiedzUsuń
  14. Bardzo ciekawie to zostało opisane.

    OdpowiedzUsuń
  15. 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ń

Dodaj komentarz