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)": "プライベートIP範囲へのリクエストを許可 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)",
"Allow Retry": "リトライ許可",
"Allow safety_identifier passthrough": "SAFETY_IDENTIFIERパススルーを許可する",
"Allow self-signed or hostname-mismatched SMTP certificates": "自己署名またはホスト名が一致しない SMTP 証明書を許可する",
"Allow service_tier passthrough": "Service_tierパススルーを許可する",
"Allow speed passthrough": "speed パススルーを許可",
"Allow upstream callbacks": "アップストリームコールバックを許可",
@@ -757,6 +758,7 @@
"Choose how the platform will operate": "プラットフォームの運用方法を選択",
"Choose how to filter domains": "ドメインをフィルタリングする方法を選択してください",
"Choose how to filter IP addresses": "IPアドレスをフィルタリングする方法を選択してください",
"Choose one SMTP transport security mode": "SMTP の転送暗号化方式を 1 つ選択してください",
"Choose the bundle type and define the items inside it.": "バンドルタイプを選択し、その中のアイテムを定義してください。",
"Choose the default charts, range, and time granularity for model analytics.": "モデル分析のデフォルトチャート、範囲、時間粒度を選択します。",
"Choose where to fetch upstream metadata.": "アップストリームのメタデータをどこからフェッチするかを選択してください。",
@@ -1493,6 +1495,7 @@
"Enable selected models": "選択したモデルを有効にする",
"Enable SSL/TLS": "SSL/TLSを有効にする",
"Enable SSRF Protection": "SSRF保護を有効にする",
"Enable STARTTLS": "STARTTLSを有効にする",
"Enable streaming mode for the test request.": "テストリクエストのストリーミングモードを有効にします。",
"Enable Telegram OAuth": "Telegram OAuthを有効にする",
"Enable test mode for Creem payments": "Creem 決済のテストモードを有効にする",
@@ -2806,6 +2809,7 @@
"Non-stream": "非ストリーミング",
"Non-zero invitation rewards require compliance confirmation in Payment Gateway settings.": "0 以外の招待報酬には、支払いゲートウェイ設定でのコンプライアンス確認が必要です。",
"None": "なし",
"No encryption": "暗号化なし",
"noreply@example.com": "noreply@example.com",
"Normalized:": "正規化:",
"Not available": "利用できません",
@@ -3917,13 +3921,16 @@
"Size:": "サイズ:",
"sk_xxx or rk_xxx": "sk_xxx または rk_xxx",
"Skip retry on failure": "失敗時にリトライしない",
"Skip SMTP TLS certificate verification": "SMTP TLS証明書の検証をスキップ",
"Skip to Main": "メインコンテンツへスキップ",
"Slug": "スラッグ",
"Slug can only contain letters, numbers, hyphens, and underscores": "スラッグには英数字、ハイフン、アンダースコアのみ使用できます",
"Slug is required": "スラッグは必須です",
"Slug must be less than 100 characters": "スラッグは100文字以内にしてください",
"Smallest USD amount users can recharge (Epay)": "ユーザーがチャージできる最小USD金額 (Epay)",
"SSL/TLS": "SSL/TLS",
"SMTP Email": "SMTPメール",
"SMTP encryption": "SMTP 暗号化方式",
"SMTP Host": "SMTPホスト",
"smtp.example.com": "smtp.example.com",
"socks5://user:pass@host:port": "socks5://user:pass@host:port",
@@ -3953,6 +3960,7 @@
"SSRF Protection": "SSRF保護",
"Standard": "標準",
"Standard price": "標準価格",
"STARTTLS": "STARTTLS",
"Start": "開始",
"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.": "法人を設立せずに世界中で決済を受け付けられます。個人開発者、OPC 個人事業主、スタートアップ向けに設計されています。Waffo Pancake は Merchant of Record として、消費税、請求書、サブスクリプション管理、返金、チャージバックなど、グローバル決済のコンプライアンス負担を引き受けます。個人開発者はコンプライアンスではなくプロダクトに集中しながら素早くローンチできます。数分でオンボーディングし、1 つのプロンプトから完全な統合まで進められます。",
@@ -4478,6 +4486,7 @@
"Updated user {{username}} (ID: {{id}})": "ユーザー {{username}} を更新しました(ID: {{id}}",
"Updating all channel balances. This may take a while. Please refresh to see results.": "すべてのチャネル残高を更新中です。これには少し時間がかかる場合があります。結果を確認するには更新してください。",
"Upgrade Group": "グループをアップグレード",
"Upgrade plaintext SMTP connection with STARTTLS before authentication": "認証前に STARTTLS で平文の SMTP 接続を暗号化する",
"Upload": "アップロード",
"Upload a single service account JSON file": "単一のサービスアカウントJSONファイルをアップロードする",
"Upload file": "ファイルをアップロード",