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.