Skip to Content
Public APISMTP Setup

SMTP Setup

Send email through Splashify Pro from any app that supports SMTP — WordPress, Django, Magento, Mailchimp Mandrill replacements, n8n, Zapier, Microsoft Power Automate, Apple Mail, Outlook, or any custom backend using a standard SMTP library.

When to use SMTP vs the REST API: SMTP is a drop-in option for legacy apps and most CMS/eCommerce platforms — no code changes, just paste these credentials into your app’s email settings. The Send Email REST API is faster and gives you per-message status polling. Both go through the same DKIM-signed pipeline and bill identically.

Server credentials

SettingValue
SMTP Hostsmtp.splashifypro.com
Port (STARTTLS)587 (recommended)
Port (SSL/TLS)465
EncryptionSTARTTLS for port 587, SSL/TLS for port 465
Usernameemailapikey (fixed string — do not change)
PasswordYour sk_live_… public API key
Auth mechanismPLAIN or LOGIN

Username is literally emailapikey — not your email address, not your account ID. The string emailapikey tells our SMTP relay that the password field carries an API key (instead of an email/password pair). The actual identity is encoded in the API key itself.

Port 25 is not supported. Most cloud providers block outbound port 25 to prevent spam relay abuse. Use 587 (STARTTLS) or 465 (SSL).

Prerequisites

  1. Plan with email_marketing enabled — free during trial; paid plans need the Email Marketing feature flag set on your plan.
  2. A verified sender domain at Settings → Email Domain . The From address you set must be on a domain you’ve verified (SPF + DKIM CNAME + DMARC). Without verification the relay rejects with 550 5.7.1 sender domain not verified.
  3. A sk_live_… API key from Settings → Developer . Treat it like a password — anyone holding it can send mail on your behalf.

Sender Information

FieldValue
From EmailAny address on your verified domain (e.g., info@your-domain.com)
From NameYour business / brand name shown in recipients’ inboxes

Quick verify with swaks

swaks (Swiss Army Knife for SMTP) is the fastest way to confirm credentials work before wiring them into your app:

swaks \ --to recipient@example.com \ --from info@your-verified-domain.com \ --header "Subject: Splashify Pro SMTP test" \ --body "Hello from SMTP relay" \ --server smtp.splashifypro.com \ --port 587 \ --tls \ --auth LOGIN \ --auth-user emailapikey \ --auth-password sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

A 250 2.0.0 Ok: queued as <message-id> response confirms the relay accepted your message.

Platform setup

WordPress (WP Mail SMTP)

  1. Install the WP Mail SMTP plugin.
  2. Settings → WP Mail SMTP → Other SMTP.
  3. Fill in:
    • SMTP Host: smtp.splashifypro.com
    • Encryption: TLS
    • SMTP Port: 587
    • Auto TLS: ON
    • Authentication: ON
    • SMTP Username: emailapikey
    • SMTP Password: your sk_live_… key
    • From Email: an address on your verified domain
    • From Name: your store / brand name
  4. Save → click Send a Test Email.

PHPMailer

<?php use PHPMailer\PHPMailer\PHPMailer; $mail = new PHPMailer(true); $mail->isSMTP(); $mail->Host = 'smtp.splashifypro.com'; $mail->SMTPAuth = true; $mail->Username = 'emailapikey'; $mail->Password = 'sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = 587; $mail->setFrom('info@your-domain.com', 'Your Brand'); $mail->addAddress('recipient@example.com'); $mail->Subject = 'Order #1234 confirmed'; $mail->Body = 'Thanks for your order!'; $mail->send();

Python (smtplib)

import smtplib from email.mime.text import MIMEText msg = MIMEText("Thanks for your order!") msg["Subject"] = "Order #1234 confirmed" msg["From"] = "info@your-domain.com" msg["To"] = "recipient@example.com" with smtplib.SMTP("smtp.splashifypro.com", 587) as server: server.starttls() server.login("emailapikey", "sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx") server.send_message(msg)

Node.js (nodemailer)

const nodemailer = require("nodemailer"); const transporter = nodemailer.createTransport({ host: "smtp.splashifypro.com", port: 587, secure: false, // STARTTLS upgrade — set true only when using port 465 auth: { user: "emailapikey", pass: "sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx", }, }); await transporter.sendMail({ from: '"Your Brand" <info@your-domain.com>', to: "recipient@example.com", subject: "Order #1234 confirmed", text: "Thanks for your order!", html: "<p>Thanks for your order!</p>", });

Django (settings.py)

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend" EMAIL_HOST = "smtp.splashifypro.com" EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = "emailapikey" EMAIL_HOST_PASSWORD = "sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" DEFAULT_FROM_EMAIL = "Your Brand <info@your-domain.com>"

Laravel (.env)

MAIL_MAILER=smtp MAIL_HOST=smtp.splashifypro.com MAIL_PORT=587 MAIL_USERNAME=emailapikey MAIL_PASSWORD=sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=info@your-domain.com MAIL_FROM_NAME="Your Brand"

Magento 2

System → Configuration → Sales → Sales Emails + SMTP On module:

  • Host: smtp.splashifypro.com
  • Port: 587
  • Auth: Login
  • Username: emailapikey
  • Password: your sk_live_… key
  • TLS: Yes
  • SSL: No

n8n / Zapier / Power Automate

Pick the Send Email (SMTP) node and supply the four credentials above. The same form maps 1:1.

Pricing

Same per-email pricing as the REST API — emails sent over SMTP go through the identical pipeline:

TierMarketingTransactional
1k–10k emails/mo₹0.040₹0.025
10k–50k emails/mo₹0.030₹0.020
50k+ emails/mo₹0.020₹0.015

The first 100 emails per day are free. Above that, your wallet is charged per email.

Marketing vs transactional classification: an SMTP submission is treated as transactional by default (₹0.025/email). If you want it counted as marketing (cheaper-tier campaigns or list-based blasts), use the in-app Campaign builder  which stamps the right category.

Deliverability essentials

Email deliverability depends on you setting up DNS correctly on your sending domain. The relay does its part (DKIM signing, IP reputation management, bounce/complaint loops), but recipient inboxes will check yours.

RecordRequiredPurpose
SPFyesAuthorises Splashify Pro to send on your behalf. Add include:_spf.splashifypro.com to your existing SPF record (don’t replace).
DKIMyesCryptographic signature on every message. Splashify Pro publishes the DKIM key on a CNAME we ask you to add.
DMARCrecommendedTells inboxes what to do with mail that fails SPF/DKIM. Start with p=none to monitor, move to quarantine once stable.
MXalready setYour inbound mail server. Leave as-is.

Verify all three at Settings → Email Domain  before going live.

Limits

LimitValue
Connection rate per API key100 concurrent SMTP connections
Recipients per message50 (split into multiple RCPT TO)
Message size25 MB including attachments
Daily volume per accountUnlimited (subject to wallet balance + plan flag)
Free daily quota100 emails (transactional + marketing combined)
Connection timeout60 seconds idle
Auth attempts before lockout5 wrong passwords / 5 minutes per IP

Hitting any limit returns a standard SMTP failure code your library will surface — 421 for connection limits, 550 for content/policy rejections, 535 for auth failures.

Status codes

CodeMeaningAction
220Server readyContinue with EHLO
235Auth successfulSend messages
250Message accepted, queued for deliveryDone — poll /public/email/status for delivery confirmation
421Service unavailable / connection limit hitBack off, retry with exponential delay
535Auth failedVerify username is literally emailapikey and password is a valid sk_live_… key
550Sender domain not verified, or recipient on suppression listVerify domain at /settings/email-domain or remove suppression
552Message size exceeds 25 MBSplit attachments
554Wallet balance insufficientTop up at Wallet 

Tracking sent messages

Every SMTP-sent message is visible in /email  under Send Volume (Today / 7d / 30d) and rolled into the Source breakdown → Transactional / API card alongside REST API sends.

Per-recipient delivery status, opens, clicks, bounces, and complaints are written to your account’s audit trail. Pull individual statuses via the REST status endpoint using the Message-ID header that the SMTP server returns in the 250 response.

Security notes

  • Rotate API keys if a key has been exposed (committed to git, shared in support channel, etc). Old keys are revocable from Settings → Developer ; SMTP connections using a revoked key get 535 5.7.0 authentication revoked immediately.
  • Use environment variables for the password in your code — never hardcode sk_live_… keys in source files.
  • Restrict by IP (Pro plan +): pin a key to a list of allowed source IPs from /settings/developer. Connections from outside the list get 535 5.7.0 IP not authorised.
  • TLS is enforced — connections that don’t upgrade to TLS via STARTTLS get terminated after the EHLO with 530 5.7.0 must issue STARTTLS first.

Troubleshooting

SymptomLikely cause
535 5.7.0 authentication failedUsername isn’t emailapikey, or password isn’t a valid sk_live_… key
550 5.7.1 sender domain not verifiedFrom: address is on a domain you haven’t verified at /settings/email-domain
554 5.7.0 wallet balance insufficientTop up wallet, or sender’s plan doesn’t have email_marketing enabled
421 4.3.2 connection limit reachedToo many concurrent connections — close idle sessions
Connection times outFirewall blocking 587/465 outbound — many home ISPs and AWS instances block port 25/587
Mail goes to spamMissing/incomplete SPF or DKIM. Verify at /settings/email-domain .
530 5.7.0 must issue STARTTLS firstClient connected on 587 without negotiating STARTTLS — enable TLS in your library

Need help