← Blog/Authentication

SMTP 538: encryption required for the requested authentication mechanism

October 15, 2026·6 min read·By MailPilot

538 is worth flagging plainly: it falls outside the core reply-code range that RFC 5321 standardizes (500-504 and 550-555), but unlike some of the other numbers in this series, it is not a fabricated or invented code. It comes from a later extension (RFC 4954, SMTP Authentication) and is consistently implemented across Gmail, Microsoft 365, Yahoo and essentially every mainstream mail provider for one specific condition: the client attempted an authentication mechanism that requires an encrypted connection, but the session was not yet encrypted.

Who is at fault

This is a sending-client configuration fault. Your SMTP client is either skipping STARTTLS before attempting AUTH, or is explicitly configured to connect on an unencrypted port (commonly 25 or an unencrypted 587) when the server requires TLS first for anything beyond the weakest mechanisms. A subtler version of this misconfiguration happens when a client correctly connects on port 587

but is set to "opportunistic" TLS rather than "required" TLS - meaning it will attempt STARTTLS

but silently fall back to a plaintext session if the handshake fails for any reason, including a

transient certificate validation hiccup. That silent fallback then triggers exactly this 538

response on the next AUTH attempt, and because the fallback itself produced no visible error, the

538 looks like the first sign of trouble when the actual root cause happened one step earlier in

the connection sequence.

The exchange

220 smtp.example.com ESMTP ready
EHLO mail.yourdomain.com
250-smtp.example.com
250-AUTH LOGIN PLAIN
250 STARTTLS
AUTH LOGIN
538 5.7.11 Encryption required for requested authentication mechanism

The server advertised STARTTLS but the client attempted AUTH LOGIN directly on the plaintext connection instead of upgrading first.

How Gmail, Microsoft 365 and Yahoo word the same condition

ProviderWording
Gmail538 5.7.11 Encryption required for requested authentication mechanism
Microsoft 365538 5.7.11 Encryption required for requested authentication mechanism
Yahoo538 5.7.11 Encryption required for requested authentication mechanism

This is one of the rare cases where all three providers use identical wording and identical codes - a sign that, non-core-RFC or not, 538 5.7.11 is treated as a de facto standard across the industry.

Diagnostic commands

$ openssl s_client -starttls smtp -connect smtp.example.com:587 -crlf -quiet
250-smtp.example.com
250-AUTH LOGIN PLAIN
250 STARTTLS

$ swaks --to recipient@example.com --from sender@yourdomain.com \
  --server smtp.example.com -p 587 --auth LOGIN \
  --auth-user sender@yourdomain.com --auth-password '***'
<~  538 5.7.11 Encryption required for requested authentication mechanism

$ swaks --to recipient@example.com --from sender@yourdomain.com \
  --server smtp.example.com -p 587 -tls --auth LOGIN \
  --auth-user sender@yourdomain.com --auth-password '***'
<~  235 2.7.0 Authentication successful

Adding -tls to force STARTTLS before AUTH in the second swaks call is the direct fix, and the successful result confirms the diagnosis.

The ordered fix

  1. Confirm your client is configured to use STARTTLS (port 587) or implicit TLS (port 465), not plain port 25 for authenticated submission.
  2. Check your SMTP library's connection settings for an explicit TLS/STARTTLS flag that may have been left off or set to "opportunistic" instead of "required."
  3. Re-test with `swaks -tls` to confirm the corrected configuration authenticates successfully.
  4. Audit any legacy integrations still configured for unencrypted submission on port 25, which almost no modern provider accepts for AUTH any more.
  5. Roll the corrected configuration out to any other application or script sharing the same SMTP credentials.

What not to do

  • Do not downgrade to a weaker AUTH mechanism to avoid the error. The fix is to encrypt the connection, not to find a mechanism the server will accept unencrypted - most providers no longer offer any such mechanism, for good reason.
  • Do not retry on the same unencrypted connection. The server's TLS requirement will not change between attempts.
  • Do not disable certificate validation to "get past" a TLS handshake issue - if the real blocker is a certificate problem rather than a missing STARTTLS call, fix the certificate chain, not the validation check.
  • Do not assume this is a provider-specific quirk. Because all three major providers use the same code and wording, treat it as a universal requirement to design for, not a one-off to patch around.

Where this most commonly slips into a codebase

A connection library upgraded or swapped mid-project is the single most common source of this bug

in practice - the old library handled STARTTLS negotiation implicitly, the new one requires an

explicit flag, and nobody notices until the first authenticated send against a strict provider

fails. Whenever you change SMTP libraries or upgrade a major version, re-run a live authentication

test against at least one of each provider you send through before trusting the new dependency in

production.

MailPilot's SMTP/IMAP connections for warm-up always negotiate TLS before authentication against every provider it supports, so this specific failure mode does not occur on MailPilot-managed connections.

MailPilot

Ready to reach the inbox every time?

Automated email warmup across real peer mailboxes. Live inbox placement monitoring. Free 7-day trial - no credit card required.

Start free trial
Reach the Inbox, Every Time
Connect unlimited inboxes for warmup. Free 7-day trial, no credit card.
Try for Free
WORKS WITH
OZOHO
inbox placement99.2%
free trial7-day
companies trust us340+

Start for free - no credit card required.

Get started freeBook a demo