Send epost fra PowerShell

Har man behov å sende epost, men har ikke en epost-klient på den enhet man skal sende fra og man ønsker bare å sende en kort kommentar og med en vedlagt fil. F.eks. når man ønsker en ukentlig rapport fra en server.

Da kan man kjøre et enkelt PowerShell script. Der man legger inn ønsket verdi inn i scriptet eller som parameter. For videre å automatisere kjøringen av PowerShell script i f.eks. planlagt oppgave (Scheduled Tasks) i Windows.

I dette eksemplet har jeg benyttet meg av GMail som epost-server. Men det er ikke i veien å endre dette til andre epost-servere.

VIKTIG å ta hensyn til når man bruker GMail

Når man benytter seg av GMail må man huske å tillate for eksterne enheter å sende fra din GMail konto. Ellers vil man få denne meldingen “The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required “. Og så denne melding i GMail.

For å åpne for å tillate for eksterne enheter å sende fra din GMail konto gjør man dette.

  1. Gå til din Google-konto (https://myaccount.google.com/)
  2. Klikk på Sikkerhet i navigasjonspanelet til venstre.
  3. Klikk på Slå på tilgang i Tilgang til mindre sikre apper-panelet nederst på siden.

PowerShell kode

param (

[string]$BrukerNavn = ‘GmailEpostAdresse’,
[string]$Passordet = ‘GmailPassordet’,
[string]$MottakerEpostNavn = ‘MottakerAdresse’,
[string]$Tittel = ‘Her er tittelfeltet’,
[string]$Melding = ‘Skriv inn din melding her.’,
[string]$VedleggFilSti = ” # ‘C:\.. katalogstil ..\VedleggFil.txt’
)


$HemmeligPW = ConvertTo-SecureString $Passordet -AsPlainText -Force
$BrukerPassord = New-Object System.Management.Automation.PSCredential ($BrukerNavn, $HemmeligPW)

$SMTPServer = “smtp.gmail.com”
$SMTPPort = “587”


if ($VedleggFilSti -eq ”)
{
Send-MailMessage -From $BrukerNavn -to $MottakerEpostNavn -Subject $Tittel -Body $Melding -SmtpServer $SMTPServer -port $SMTPPort -UseSsl -Credential $BrukerPassord –DeliveryNotificationOption OnSuccess}
else
{
Send-MailMessage -From $BrukerNavn -to $MottakerEpostNavn -Subject $Tittel -Body $Melding -SmtpServer $SMTPServer -port $SMTPPort -UseSsl -Credential $BrukerPassord -Attachments $VedleggFilSti –DeliveryNotificationOption OnSuccess}

Du kan også laste ned PowerShell Scriptet her:

Bruk av Powershell scriptet

For å kjøre PowerShell Scriptet gjøre man på denne måten:

powershell -ExecutionPolicy ByPass -File .\SendEmailGoogle.ps1

Eller man kan f.eks. kjøre den på denne måten:

powershell -ExecutionPolicy ByPass -File .\SendEmailGoogle.ps1 -VedleggFilSti ‘C:\xxxxxx’

Enkelt!

Bilde av Álvaro Serrano (Unsplash)

Vennligst registrer deg for nyheter!

Nå abonnert du på mine nye artikler. Tusen takk!

Det oppstod en feil under din registrering. Vær så snill, prøv på nytt.