Posílejte e-maily pomocí PowerShell
S Windows Powershell můžete odesílat e-maily přímo ze systému. V zásadě je to relativně snadné, ale v praxi často selhává, protože se musíte stále ověřovat u poskytovatele pošty. Ukážeme vám, jak to funguje.
Posílejte e-maily pomocí prostředí PowerShell
Z bezpečnostních důvodů neumožňuje PowerShell hesla pro poštovní server ve skriptu jako prostý text. Proto musíte tato data uložit externě zašifrovaná a integrovat je s trikem.
- Chcete-li odeslat poštu, použijte příkaz "Odeslat-Mailmessage", který podporuje všechny obvyklé parametry. Podrobnější informace o tom naleznete v části „Zasílání zpráv pomocí nápovědy“.
- Alespoň potřebujete odesílatele, příjemce, předmět a obsah a také server odchozí pošty.
- Pokud server není explicitně přenesen, použije PowerShell obsah proměnné „$ PSEmail Server“. Takže si můžete tento server uložit pro opakované odesílání předem ve skriptu nebo ještě lépe do svého vlastního profilu PowerShell.
- Chcete-li to provést, otevřete soubor profilu pomocí "note pad.exe $ profile" a přidejte například příkaz "$ PS EmailServer =" smtpmail.t-online.de "". Jako hodnotu použijte server odpovědný za svůj vlastní poštovní účet.
- Mnoho poštovních serverů však vyžaduje přihlášení pomocí uživatelského jména a hesla. Alespoň první může být při volání předán s parametrem »pověření«. Po spuštění skript zobrazí přihlašovací dialog, ve kterém musí být zadáno chybějící heslo. To je však nepraktické a nevhodné pro úlohy skriptů na pozadí.
- Protože heslo nelze předat přímo ve skriptu, musíte vždy vytvořit požadovaný objekt PSCredential načtením hesla ze šifrovaného souboru. Chcete-li tento soubor vytvořit, použijte příkaz »(Get-Credential) .password | ConvertFrom-SecureString> password.txt «.
- V následujícím typickém přihlašovacím dialogu zadejte »Uživatelské jméno« a »Heslo« a potvrďte »OK«. PowerShell nyní zašifruje heslo a uloží ho do souboru »heslo určeného jako cíl. txt“.
- Později ve skriptu můžete heslo načíst a uložit jako proměnnou s »$ password = Get-Content password.txt | ConvertTo-SecureString. "
- Nyní vytvořte potřebný objekt pověření příkazem »$ credential = New-Object System.Management.Automation.PSCredential" User name ", $ password«. Nakonec převedete tento objekt pomocí »Odeslat-Mailmessage« s parametrem »pověření $ pověření«.