Skip to content

SMTP relay

Point any existing mailer at OutSend and change nothing else about your application.

If you already have a working mailer, the fastest migration is no code at all. The SMTP relay accepts mail from any standard client and puts it through the same sending path, with the same events, as the API.

Settings

SettingValue
Hostsmtp.getoutsend.com
Port2587
Usernameoutsend
PasswordYour API key
EncryptionSTARTTLS

The username is literally outsend for every account — your API key is the credential that identifies you.

Limits

  • 50 recipients per message
  • 10 MB total attachments

Messages above either limit are rejected at the SMTP conversation rather than accepted and dropped later.

Nodemailer

const transporter = nodemailer.createTransport({
  host: "smtp.getoutsend.com",
  port: 2587,
  auth: {
    user: "outsend",
    pass: process.env.OUTSEND_API_KEY,
  },
})

Rails / ActionMailer

config.action_mailer.smtp_settings = {
  address:              "smtp.getoutsend.com",
  port:                 2587,
  user_name:            "outsend",
  password:             ENV["OUTSEND_API_KEY"],
  authentication:       :plain,
  enable_starttls_auto: true
}

Django

EMAIL_HOST = "smtp.getoutsend.com"
EMAIL_PORT = 2587
EMAIL_HOST_USER = "outsend"
EMAIL_HOST_PASSWORD = os.environ["OUTSEND_API_KEY"]
EMAIL_USE_TLS = True

What you still get

Mail sent over SMTP is recorded with source: "smtp" and produces exactly the same events as an API send — deliveries, bounces, deferrals, complaints, and the provider’s own response on each one. Nothing about observability is API-only.

The from domain still has to be verified. That rule has no exceptions, because it is the rule that keeps your sending identity yours.