Powershell: Wysyłka maila z konta gmail

16-Kwi-2014

To działa! Jeśli chcesz wysłać pocztę z konta gmail.

$cred=Get-Credential(„Imie_Nazwisko”)
Send-MailMessage -SmtpServer smtp.gmail.com -Port 587 -Credential $cred -UseSsl true -From ‚Imie_Nazwisko@gmail.com’ -To ‚Czyjes_Konto@gmail.com’ -Subject ‚TEST’

Mniej intuicyjne opcje to:

  • Credential – obiekt służący do uwierzytelnienia, zawiera nazwę pod którą chcesz się uwierzytelnić i hasło, które do tego służy. Komenda Get-Credential pobiera nazwę i hasło (chyba, że nazwa już jest podana, tak jak w naszym przykładzie, wtedy pobiera tylko hasło). Opcja -Credential nakazuje użycia tych credentiali do uwierzytelnienia podczas wysyłania poczty.
  • UseSSL pododuje nawiązanie połączania z SMTP z wykorzystaniem protokołu SSL

Credential może też być zapisany w zaszyfrowanym pliku i wczytany przed wysłaniem maila. A jak to zrobić? Tak:

1. Najpierw pobierz hasło:

$cred = Get-Credential -Credential „Imie_Nazwisko”

2. Zapisz credential w pliku:

$cred.Password | ConvertFrom-SecureString | Set-Content c:\temp\psswd.txt 

plik zawiera zaszyfrowane hasło. (Szyfr nie jest wyjątkowo mocny, ale zawsze to coś).

3. Przed wysyłką maila wczytaj dane z pliku:

$password = Get-Content C:\temp\psswd.txt | ConvertTo-SecureString

4. Utwórz obiekt credential:

$cred = New-object System.Management.Automation.PsCredential(„Imie_Nazwisko”,$password)

 

Jeśli już odczytasz credential, to możesz wydobyć z niego hasło instrukcją:

$cred.GetNetworkCredential().Password 

Miłej zabawy z powershellem!!!

http://technet.microsoft.com/en-us/library/hh849925(v=wps.620).aspx

Dodaj komentarz:

Autor: Rafał Kraik