Skip to main content

Overview

Gorillaa Mail exposes a standard SMTP server alongside the REST API. If your framework, CMS, or language already has SMTP support built in (WordPress, Django, Rails, PHP mail(), etc.), you can start sending through Gorillaa without writing any API integration code. Both interfaces use the same authentication, domain verification, and delivery pipeline — you get the same tracking, analytics, and deliverability regardless of which method you use.

SMTP server details

SettingValue
Hostsmtp.gorillaa.one
Port (STARTTLS)587 — Recommended
Port (TLS)465 — Implicit TLS
Port (Alt)2525 — Use when ISP blocks 587
Usernamegorillaa
PasswordYour API key (e.g. grl_live_xxxx...)
EncryptionTLS 1.3 required on all ports
Max message size25 MB
The username is always the literal string gorillaa. Your API key goes in the password field.
Your API key must have the email:send scope to send emails via SMTP. Keys without this scope will be rejected at authentication.

Quick start

import nodemailer from "nodemailer";

const transport = nodemailer.createTransport({
  host: "smtp.gorillaa.one",
  port: 587,
  secure: false, // STARTTLS — upgraded automatically
  auth: {
    user: "gorillaa",
    pass: process.env.GORILLAA_API_KEY,
  },
});

await transport.sendMail({
  from: "you@yourdomain.com",
  to: "recipient@example.com",
  subject: "Hello from Gorillaa!",
  html: "<h1>It works!</h1>",
});

Ports and encryption

Gorillaa SMTP supports three ports. All require TLS — plaintext connections are not accepted.
PortProtocolWhen to use
587STARTTLSRecommended. Connects in plaintext, then upgrades to TLS via the STARTTLS command. Supported by all modern clients.
465Implicit TLSTLS handshake happens immediately on connect. Use if your client prefers this mode.
2525STARTTLSAlternative port. Use if your ISP or hosting provider blocks port 587. Same behavior as 587.
All ports negotiate TLS 1.3 with AES-256-GCM encryption when supported by the client.

Authentication

SMTP authentication uses the AUTH LOGIN or AUTH PLAIN mechanisms:
  • Username: Always gorillaa
  • Password: Your full Gorillaa API key
The API key must have the email:send scope. Domain-scoped keys work too — SMTP enforces the same domain restrictions as the REST API.

Test mode keys

You can use grl_test_ keys via SMTP. The same test-mode limits and behavior apply as with the REST API (see Authentication → Test Mode).

SMTP vs REST API

Both methods produce identical results — same delivery pipeline, same tracking, same analytics. Choose based on your use case:
FeatureREST APISMTP
Batch send✅ Up to 100 per request❌ One message per session
SchedulingscheduledAt parameter❌ Not supported
IdempotencyidempotencyKey parameter❌ Not supported
Metadata & Tags✅ Custom metadata and tags❌ Not supported
Attachments✅ Via API body✅ Standard MIME attachments
Framework supportRequires HTTP client✅ Built into most frameworks
No code changesRequires integration code✅ Config-only in many cases
Delivery tracking✅ Full event tracking✅ Full event tracking
Domain verification✅ Same requirements✅ Same requirements
Use the REST API when you need batch sending, scheduling, idempotency, or metadata. Use SMTP when your stack already has SMTP support and you want the simplest possible integration.

Troubleshooting

  • Verify the username is exactly gorillaa (not your email address).
  • Verify the password is your full API key (starts with grl_live_ or grl_test_).
  • Check that the key has the email:send scope.
  • Check that the key hasn’t expired or been revoked.
  • Confirm DNS resolves: nslookup smtp.gorillaa.one
  • Your network may block the port. Try port 2525 as an alternative.
  • Ensure your firewall allows outbound connections to smtp.gorillaa.one on the chosen port.
  • Ensure your client supports TLS 1.2 or later.
  • If using port 587, make sure your client sends the STARTTLS command (most libraries do this automatically).
  • If using port 465, configure your client for implicit TLS (sometimes called “SSL”).
  • The From address must use a domain you’ve verified in the dashboard.
  • Check domain status at Dashboard → Domains or via GET /v1/domains.
  • See the Domain Setup Guide for DNS configuration.
  • SMTP allows up to 50 recipients per message (same as the REST API).
  • For larger sends, use the REST API’s batch endpoint or send multiple SMTP messages.

Verify connectivity

You can test SMTP connectivity with openssl:
# Test STARTTLS on port 587
openssl s_client -connect smtp.gorillaa.one:587 -starttls smtp

# Test implicit TLS on port 465
openssl s_client -connect smtp.gorillaa.one:465
A successful connection shows Protocol version: TLSv1.3 and Peer certificate: CN=smtp.gorillaa.one.