eml.dev

SMTP Integration

Send emails using standard SMTP. Works with any email library.

SMTP Credentials

Use these settings to configure your application:

Host smtp.eml.dev
Port 465
Security TLS/SSL
Username apikey
Password YOUR_API_KEY

Note: Use your API key as the SMTP password. The username is always apikey.

Sandbox mode: Using a sandbox API key with SMTP will log emails without delivering them. This works the same way as the REST API—great for testing your SMTP integration in staging environments.

Framework Examples

Ruby on Rails

config/environments/production.rb
config.action_mailer.smtp_settings = {
  address: "smtp.eml.dev",
  port: 465,
  user_name: "apikey",
  password: ENV["EML_API_KEY"],
  authentication: :plain,
  ssl: true
}

Django

settings.py
EMAIL_HOST = "smtp.eml.dev"
EMAIL_PORT = 465
EMAIL_USE_SSL = True
EMAIL_HOST_USER = "apikey"
EMAIL_HOST_PASSWORD = os.environ.get("EML_API_KEY")

Node.js (Nodemailer)

JavaScript
const nodemailer = require("nodemailer");

const transporter = nodemailer.createTransport({
  host: "smtp.eml.dev",
  port: 465,
  secure: true,
  auth: {
    user: "apikey",
    pass: process.env.EML_API_KEY
  }
});

PHP (PHPMailer)

PHP
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = "smtp.eml.dev";
$mail->Port = 465;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->SMTPAuth = true;
$mail->Username = "apikey";
$mail->Password = getenv("EML_API_KEY");

SMTP vs REST API

Use SMTP when:

  • You have existing SMTP code
  • Your framework has built-in SMTP support
  • You need a drop-in replacement

Use REST API when:

  • Building a new integration
  • You want detailed response data
  • You prefer HTTP over SMTP protocol