Mailflow testen via PowerShell

Mailflow testen via PowerShell
Mailflow testen via PowerShell

Wanneer je mailflow wilt testen via PowerShell waarbij de authenticatie Basic is (gebruikersnaam en wachtwoord), is het belangrijk dat je dit veilig, betrouwbaar en reproduceerbaar doet. In deze blog laat ik zien hoe je met basic authentication een testmail verstuurt, terwijl je de gebruikersnaam en het wachtwoord netjes uit een extern bestand ophaalt. Zo werk je gestructureerd, voorkom je fouten en houd je jouw scripts overzichtelijk. Omdat dit testen via PowerShell vaak onderdeel is van troubleshooting, monitoring of validatie, loont het om dit proces strak in te richten. Daarom lees je hieronder stap voor stap hoe je dit aanpakt. Voor de SMTP server gebruiken we hier overigens Azure Communication Services. Meer informatie over Azure Communication Services, kun je hier vinden.

Waarom mailflow testen via PowerShell zo effectief is

  • Je kunt snel valideren of SMTP‑instellingen correct zijn
  • Je automatiseert testflows binnen CI/CD of monitoring
  • Je werkt consistent, zonder handmatige invoer
  • Je houdt controle over authenticatie en beveiliging

Door dit testen via PowerShell te automatiseren, creëer je een herhaalbare test die je op elk moment kunt uitvoeren.

Credentials veilig opslaan

In plaats van gebruikersnaam en wachtwoord hardcoded in je script te zetten, sla je ze beter op in een aantal bestanden:

1. Bestanden voor de gebruikersnaam, het wachtwoord en de email adressen

Bijvoorbeeld:

C:\Temp\smtp-user.txt
C:\Temp\email-to.txt
C:\Temp\email-from.txt
C:\Temp\email-pass.txt

2. Bestand voor wachtwoord (SecureString)

Maak het bestand zo aan:

# Vraag het wachtwoord veilig op
$sec = Read-Host "Voer SMTP-wachtwoord in" -AsSecureString

# Sla het versleuteld op
$sec | ConvertFrom-SecureString | Out-File "C:\Temp\smtp-pass.txt"

Dit zorgt ervoor dat het wachtwoord versleuteld wordt opgeslagen. Kijk ook eens naar de blog over de Credentials binnen PowerShell.

PowerShell script om mailflow te testen via PowerShell

Onderstaande code is volledig gebaseerd op het eerst ophalen van de credentials uit een bestand.

# Pad naar bestanden
$userFile = "C:\Temp\smtp-user.txt"
$emailFile_To = "C:\Temp\email-to.txt"
$passFile = "C:\Temp\smtp-pass.txt"
$emailFile_From = "C:\Temp\email-from.txt"

# Ophalen van gebruikersnaam en wachtwoord
$user = Get-Content $userFile
$to = Get-Content $emailFile_To
$from = Get-Content $emailFile_From
$sec  = Get-Content $passFile | ConvertTo-SecureString
$cred = New-Object System.Management.Automation.PSCredential($user, $sec)

# Testmail versturen
Send-MailMessage `
  -From $from `
  -To $to `
  -Subject "Mail testen via PowerShell" `
  -Body "Dit is een test via PowerShell" `
  -SmtpServer "smtp.azurecomm.net" `
  -Port 587 `
  -UseSsl `
  -Credential $cred

Waarom deze aanpak beter is

  • Je werkt volgens best practices voor automatisering
  • Je voorkomt dat wachtwoorden in scripts terechtkomen
  • Je kunt credentials eenvoudig roteren zonder code aan te passen
  • Je script blijft schoon, overzichtelijk en veilig

Conclusie hoe het best mailflow te testen via PowerShell

Tot slot. Mail testen via PowerShell wordt een stuk veiliger en professioneler wanneer je credentials uit bestanden ophaalt. Door deze methode toe te passen, creëer je dus een robuuste workflow die klaar is voor productie, monitoring en troubleshooting. Het is een kleine investering die veel stabiliteit oplevert.

0 Shares:
Geef een reactie

Uw e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

You May Also Like