This article provides the exact SMTP server settings for MigoSMTP, explains the difference between available ports and encryption methods, and helps you choose the right configuration for your application environment.
MigoSMTP SMTP Server Settings
| Setting |
Value |
Notes |
| SMTP Host |
smtp.migosmtp.com |
Use this hostname — do not use an IP address directly |
| Port 587 |
STARTTLS (explicit TLS) |
Recommended — connects unencrypted then upgrades to TLS via STARTTLS command |
| Port 465 |
SSL / TLS (implicit TLS) |
Use when port 587 is blocked; connection is encrypted from the first byte |
| Port 25 |
SMTP (no encryption required) |
Not recommended — port 25 is blocked by most hosting providers and ISPs; use only in special server-to-server scenarios |
| Authentication |
Required — LOGIN method |
Anonymous SMTP is not supported; credentials required for every connection |
| TLS version |
TLS 1.2 minimum; TLS 1.3 preferred |
Connections using TLS 1.0 or 1.1 are rejected |
Port Comparison — Which to Use?
| Port |
Name |
How It Works |
Use This When |
| 587 |
Submission with STARTTLS |
Client connects on port 587 without encryption, then issues the STARTTLS command to upgrade the connection to TLS before sending credentials or data |
Default choice for all new integrations — widest compatibility, modern standard |
| 465 |
Submission over SSL (SMTPS) |
Connection is encrypted with TLS from the very first byte — no plaintext phase at all |
When port 587 is blocked by your server, hosting provider, or corporate firewall |
| 25 |
Classic SMTP |
The original SMTP port designed for server-to-server mail transfer. Usually no client authentication required historically. |
Avoid for application sending — almost universally blocked by hosting providers to prevent spam abuse |
Start with port 587. The vast majority of applications, frameworks, and email plugins default to port 587 with STARTTLS. Only switch to 465 if you receive a connection refused or timeout error on 587, which usually indicates a firewall rule blocking port 587 on your hosting server.
STARTTLS vs Implicit TLS (SSL) — Technical Difference
|
STARTTLS (Port 587) |
Implicit TLS (Port 465) |
| Initial connection |
Plaintext — server sends banner, client negotiates STARTTLS |
TLS handshake occurs before any SMTP dialogue |
| Upgrade mechanism |
Client sends STARTTLS command; connection upgrades mid-session |
No upgrade needed — already encrypted |
| Security level |
Equally secure once TLS is established; theoretically vulnerable to STARTTLS stripping if not enforced |
Marginally more secure by design — no plaintext exposure window |
| Compatibility |
Universal — supported by all modern SMTP clients and libraries |
Slightly older — some legacy clients require explicit SSL library configuration |
Quick-Reference Settings by Framework
| Framework / Platform |
Encryption Setting |
Port |
| Laravel (.env) |
MAIL_ENCRYPTION=tls |
587 |
| WordPress (WP Mail SMTP) |
Encryption: TLS |
587 |
| PHPMailer |
PHPMailer::ENCRYPTION_STARTTLS |
587 |
| Python smtplib |
smtplib.SMTP + starttls() |
587 |
| Node.js (nodemailer) |
secure: false, requireTLS: true |
587 |
| Django (settings.py) |
EMAIL_USE_TLS = True |
587 |
| Ruby on Rails |
enable_starttls_auto: true |
587 |
| Java (javax.mail) |
mail.smtp.starttls.enable=true |
587 |
Common Connection Errors and Fixes
| Error |
Cause |
Fix |
| Connection refused (port 587) |
Port 587 blocked by your server or hosting firewall |
Try port 465 with SSL; ask your host to open port 587 |
| Connection timed out |
Firewall silently dropping packets to smtp.migosmtp.com |
Test with telnet: telnet smtp.migosmtp.com 587; contact hosting provider if blocked |
| 535 Authentication failed |
Incorrect username or password |
Re-copy credentials from MigoSMTP SMTP Accounts page; check for trailing spaces |
| SSL handshake failed |
Outdated TLS/SSL library; TLS 1.0 or 1.1 being offered |
Update your server's OpenSSL or SSL libraries; ensure TLS 1.2+ is enabled |
| Certificate verify failed |
Outdated CA certificate bundle on your server |
sudo apt-get update && sudo apt-get install ca-certificates |
Next Steps