fix: support SMTP STARTTLS mode and NTLM auth (#5426)

* fix: support SMTP STARTTLS mode and NTLM auth

Add explicit SMTP STARTTLS configuration for 587-style connections and keep SSL/TLS as the implicit TLS mode.

Prefer PLAIN when advertised, keep LOGIN compatibility, and add NTLM as a fallback for Exchange SMTP servers that require it after STARTTLS.

* fix: respect explicit SMTP encryption mode

* fix: preserve SMTP TLS compatibility
This commit is contained in:
Benson Yan
2026-06-24 12:45:39 +08:00
committed by GitHub
parent 9fc9c8f1e3
commit 2f23a66733
27 changed files with 959 additions and 52 deletions
+9
View File
@@ -299,6 +299,7 @@
"Allow requests to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)": "Allow requests to private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)",
"Allow Retry": "Allow Retry",
"Allow safety_identifier passthrough": "Allow safety_identifier passthrough",
"Allow self-signed or hostname-mismatched SMTP certificates": "Allow self-signed or hostname-mismatched SMTP certificates",
"Allow service_tier passthrough": "Allow service_tier passthrough",
"Allow speed passthrough": "Allow speed passthrough",
"Allow upstream callbacks": "Allow upstream callbacks",
@@ -757,6 +758,7 @@
"Choose how the platform will operate": "Choose how the platform will operate",
"Choose how to filter domains": "Choose how to filter domains",
"Choose how to filter IP addresses": "Choose how to filter IP addresses",
"Choose one SMTP transport security mode": "Choose one SMTP transport security mode",
"Choose the bundle type and define the items inside it.": "Choose the bundle type and define the items inside it.",
"Choose the default charts, range, and time granularity for model analytics.": "Choose the default charts, range, and time granularity for model analytics.",
"Choose where to fetch upstream metadata.": "Choose where to fetch upstream metadata.",
@@ -1493,6 +1495,7 @@
"Enable selected models": "Enable selected models",
"Enable SSL/TLS": "Enable SSL/TLS",
"Enable SSRF Protection": "Enable SSRF Protection",
"Enable STARTTLS": "Enable STARTTLS",
"Enable streaming mode for the test request.": "Enable streaming mode for the test request.",
"Enable Telegram OAuth": "Enable Telegram OAuth",
"Enable test mode for Creem payments": "Enable test mode for Creem payments",
@@ -2806,6 +2809,7 @@
"Non-stream": "Non-stream",
"Non-zero invitation rewards require compliance confirmation in Payment Gateway settings.": "Non-zero invitation rewards require compliance confirmation in Payment Gateway settings.",
"None": "None",
"No encryption": "No encryption",
"noreply@example.com": "noreply@example.com",
"Normalized:": "Normalized:",
"Not available": "Not available",
@@ -3917,13 +3921,16 @@
"Size:": "Size:",
"sk_xxx or rk_xxx": "sk_xxx or rk_xxx",
"Skip retry on failure": "Skip retry on failure",
"Skip SMTP TLS certificate verification": "Skip SMTP TLS certificate verification",
"Skip to Main": "Skip to Main",
"Slug": "Slug",
"Slug can only contain letters, numbers, hyphens, and underscores": "Slug can only contain letters, numbers, hyphens, and underscores",
"Slug is required": "Slug is required",
"Slug must be less than 100 characters": "Slug must be less than 100 characters",
"Smallest USD amount users can recharge (Epay)": "Smallest USD amount users can recharge (Epay)",
"SSL/TLS": "SSL/TLS",
"SMTP Email": "SMTP Email",
"SMTP encryption": "SMTP encryption",
"SMTP Host": "SMTP Host",
"smtp.example.com": "smtp.example.com",
"socks5://user:pass@host:port": "socks5://user:pass@host:port",
@@ -3953,6 +3960,7 @@
"SSRF Protection": "SSRF Protection",
"Standard": "Standard",
"Standard price": "Standard price",
"STARTTLS": "STARTTLS",
"Start": "Start",
"Start a conversation to see messages here": "Start a conversation to see messages here",
"Start collecting payments globally without registering a company. Built for indie developers, OPC sole proprietorships, and startups. Waffo Pancake acts as your Merchant of Record, taking on the compliance burden of global payment collection — consumption tax, invoicing, subscription management, refunds, and chargebacks. Solo developers can launch fast and stay focused on product instead of compliance. Onboard in minutes — one prompt to a full integration.": "Start collecting payments globally without registering a company. Built for indie developers, OPC sole proprietorships, and startups. Waffo Pancake acts as your Merchant of Record, taking on the compliance burden of global payment collection — consumption tax, invoicing, subscription management, refunds, and chargebacks. Solo developers can launch fast and stay focused on product instead of compliance. Onboard in minutes — one prompt to a full integration.",
@@ -4478,6 +4486,7 @@
"Updated user {{username}} (ID: {{id}})": "Updated user {{username}} (ID: {{id}})",
"Updating all channel balances. This may take a while. Please refresh to see results.": "Updating all channel balances. This may take a while. Please refresh to see results.",
"Upgrade Group": "Upgrade Group",
"Upgrade plaintext SMTP connection with STARTTLS before authentication": "Upgrade plaintext SMTP connection with STARTTLS before authentication",
"Upload": "Upload",
"Upload a single service account JSON file": "Upload a single service account JSON file",
"Upload file": "Upload file",