SMTP Configuration

Client Onboarding

SMTP Configuration

Configure your application, platform, or MTA to send through your dedicated relay.

Connection settings

Replace placeholder values with your credentials from the portal.

SMTP Host: mail.cloudserverforemail.com Port (TLS): 587 (recommended) Port (SSL): 465 Encryption: STARTTLS or SSL/TLS Auth: LOGIN or PLAIN Username: [from portal] Password: [from portal]

Three port choices matter for different integration scenarios. Port 587 with STARTTLS is the modern default for application-to-MTA submission — this is what MailWizz, sendmail-aware applications, and the major SDKs (PHPMailer, Nodemailer, SendGrid SDK) expect. Port 465 with implicit TLS exists for legacy systems that do not negotiate STARTTLS reliably. Port 25 is unblocked on CSE infrastructure but blocked at most residential ISPs and many cloud providers (AWS, Azure, GCP outbound) — if your application server cannot reach port 25, the originating network is the cause, not CSE.

Authentication is mandatory on all three ports. The credentials from the portal authenticate the submission and bind it to your account for tracking, reputation, and billing. Anonymous SMTP relay is not supported.

MailWizz

Navigate to Backend → Servers → Delivery Servers → Add delivery server, select SMTP type and enter your credentials. Use the Test connection button to verify.

Two MailWizz-specific notes. The "Bounce server" configuration in MailWizz is separate from the SMTP delivery server — it polls a mailbox for bounce notifications via IMAP and is required for proper subscriber-status updates. Without it configured, MailWizz keeps mailing addresses that have hard-bounced, which damages reputation. Second, the "Hourly quota" setting in MailWizz delivery server should match your account's daily rate divided by 24, with a small buffer for burst sending; setting it too high produces 421 rate-limit responses from CSE infrastructure during peaks.

PHPMailer

$mail->isSMTP(); $mail->Host = 'mail.cloudserverforemail.com'; $mail->SMTPAuth = true; $mail->Username = 'your-username'; $mail->Password = 'your-password'; $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = 587;

For production PHPMailer code, also set $mail->SMTPKeepAlive = true when sending in batches — without it, every message opens a new TCP connection, which is wasteful and triggers connection-rate limits faster. Set explicit timeouts ($mail->Timeout = 30) so slow upstream resolution does not block your application thread indefinitely.

Node.js (Nodemailer)

const transporter = nodemailer.createTransport({ host: 'mail.cloudserverforemail.com', port: 587, secure: false, auth: { user: 'username', pass: 'password' } });

For Nodemailer in production, add pool: true to enable connection pooling, maxConnections: 5 to match the per-IP concurrency you have allocated, and maxMessages: 100 to amortise connection overhead across messages. Without these, Nodemailer opens a new connection per message, which is roughly 3-4x slower than pooled and uses connection-rate budget unnecessarily.

Verifying your first send

Send a test to Gmail and open More → Show original. Look for SPF: PASS, DKIM: PASS, DMARC: PASS. DKIM requires DNS setup first — see the next guide.

If SPF fails, DNS may not have propagated yet. Allow up to 24 hours.

Next: DNS & Authentication →