Keycloak
See the verification and reset emails a realm sends, exactly as a user would get them.
1Fill in the realm's email settings
Realm settings → **Email**. From: staging@example.com, Host: smtp.mailclutch.com, Port: 587, Encryption: **Enable StartTLS**, Authentication: on, then the username and password below.
The same thing in a realm export, if you provision realms as JSON:
"smtpServer": { "host": "smtp.mailclutch.com", "port": "587", "starttls": "true", "auth": "true", "user": "mc_0000000000000000", "password": "pw_0000000000000000", "from": "staging@example.com" }
2Send a test message
The Email tab has a **Test connection** button, which sends to the address on your own account. Then trigger a real one: create a user and use Credentials → Reset password, or Email verification.
Watch it land
Open the sandbox and the message is there — rendered HTML, plain text, raw source, attachments, and the SPF, DKIM and DMARC verdicts. It updates live, so you can leave it open next to your terminal.
Nothing is ever delivered onward, whatever address you send to; claim the inbox with an account and it stays.
Awaiting your email
Send from any address; it stops here rather than going onward. The inbox keeps what it catches for 24 hours.
What usually goes wrong
Your admin account needs an address
Test connection sends to the logged-in admin. If that account has no email address, Keycloak refuses before it reaches us.
Port and encryption go together
Enable StartTLS with 587, or SSL with 465 — never both at once.
Other stacks
The same four values in another dialect. Every guide below is filled in with the sandbox pair at the top of this page.
Frameworks and languages
- LaravelFive .env variables, no package
- SymfonyOne MAILER_DSN
- DjangoFive settings, nothing installed
- RailsAction Mailer smtp_settings
- Node.jsA Nodemailer transport
- Next.jsRoute Handler or Server Action
- Gonet/smtp, standard library
- SpringFive Spring Boot properties
- JavaJakarta Mail, no framework
- .NETMailKit: connect, auth, send
- PHPPHPMailer, no framework
- Pythonsmtplib, standard library
- Rustlettre over a STARTTLS relay