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.txtplik 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-SecureString4. 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().PasswordMiłej zabawy z powershellem!!!
http://technet.microsoft.com/en-us/library/hh849925(v=wps.620).aspx