SMTP Setup
Mailclutch is a plain SMTP server. If your stack can send mail, it can send to Mailclutch — starting with the working credentials below.
Your sandbox
Live credentials, filled into every snippet on this page as soon as they arrive.
- Host
- smtp.mailclutch.com
- Port
- 587
- Username
- mc_0000000000000000
- Password
- pw_0000000000000000
Credentials
Every snippet on this page already carries the pair above, so you can paste one in and send. In your own code those two values belong in environment variables like anything else — the literals here are only so nothing stands between you and the first captured email.
| Host | smtp.mailclutch.com |
|---|---|
| Port | 587 (recommended), 25, 465 or 2525 |
| Username | Your sandbox username, or a project's once you have an account |
| Password | The matching password |
| Encryption | STARTTLS on 25 / 587 / 2525, implicit TLS on 465 — TLS 1.2 minimum |
Use 587 unless something in your network blocks it. Port 2525 is the usual fallback when an outbound firewall or a PaaS blocks the standard mail ports, and 465 is there for clients that only speak implicit TLS.
Credentials pick the inbox, not the address on the envelope: recipients are never contacted, so you don't need to sanitise the addresses your application uses. Sending to real.customer@example.com from staging is safe.
Once you have an account, credentials are per project rather than per account — each project has its own username and password, so one client's staging environment can never write into another's inbox.
The snippets below are the short form. For a stack-by-stack walkthrough — what to install, the whole config block and a test message to send — see the framework guides.
Laravel
Set the standard mail variables.
# .env MAIL_MAILER=smtp MAIL_HOST=smtp.mailclutch.com MAIL_PORT=587 MAIL_USERNAME=mc_0000000000000000 MAIL_PASSWORD=pw_0000000000000000 MAIL_ENCRYPTION=tls
Symfony
# .env.local MAILER_DSN=smtp://mc_0000000000000000:pw_0000000000000000@smtp.mailclutch.com:587
Node.js (Nodemailer)
import nodemailer from 'nodemailer'; const transporter = nodemailer.createTransport({ host: 'smtp.mailclutch.com', port: 587, secure: false, // STARTTLS is negotiated after connecting auth: { user: 'mc_0000000000000000', pass: 'pw_0000000000000000', }, }); await transporter.sendMail({ from: 'noreply@example.com', to: 'user@example.com', subject: 'Welcome!', html: '<h1 className="mb-3 text-4xl tracking-[-0.025em]">Hello World</h1>', });
Python (smtplib)
import smtplib from email.mime.text import MIMEText smtp = smtplib.SMTP('smtp.mailclutch.com', 587) smtp.starttls() smtp.login('mc_0000000000000000', 'pw_0000000000000000') msg = MIMEText('<h1 className="mb-3 text-4xl tracking-[-0.025em]">Hello World</h1>', 'html') msg['Subject'] = 'Welcome!' msg['From'] = 'noreply@example.com' msg['To'] = 'user@example.com' smtp.send_message(msg) smtp.quit()
Ruby on Rails (Action Mailer)
# config/environments/staging.rb config.action_mailer.smtp_settings = { address: 'smtp.mailclutch.com', port: 587, user_name: 'mc_0000000000000000', password: 'pw_0000000000000000', authentication: :plain, enable_starttls_auto: true }
PHP (PHPMailer)
use PHPMailer\PHPMailer\PHPMailer; $mail = new PHPMailer(true); $mail->isSMTP(); $mail->Host = 'smtp.mailclutch.com'; $mail->SMTPAuth = true; $mail->Username = 'mc_0000000000000000'; $mail->Password = 'pw_0000000000000000'; $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = 587; $mail->setFrom('noreply@example.com'); $mail->addAddress('user@example.com'); $mail->Subject = 'Welcome!'; $mail->Body = '<h1 className="mb-3 text-4xl tracking-[-0.025em]">Hello World</h1>'; $mail->isHTML(true); $mail->send();
Watch it land
Whichever snippet you ran, the message is in the sandbox those credentials belong to — rendered HTML, plain text, raw source, headers, attachments, and the SPF, DKIM and DMARC verdicts. It updates live.
Awaiting your email
Send from any address; it stops here rather than going onward. The inbox keeps what it catches for 24 hours.
Troubleshooting
| Symptom | Usual cause |
|---|---|
| Authentication fails | Account credentials used instead of the sandbox or project SMTP credentials — or a pair that has expired. Take a new one from the card above. |
| TLS handshake fails | Implicit TLS (secure: true) pointed at 587. Use 465 for that, or keep 587 with STARTTLS. |
| Connection times out | Outbound mail ports blocked by the host or PaaS. Try 2525. |
| Nothing appears in the inbox | The mailer is still queueing — run the queue worker, or send synchronously. |
| Emails land in the wrong project | Two environments share one set of project credentials. Give each its own project. |