fix(mail): normalize provider selection
This commit is contained in:
@@ -356,14 +356,20 @@ class YYDSMailClient(BaseMailClient):
|
|||||||
raise TimeoutError(f"No OTP received within {timeout}s")
|
raise TimeoutError(f"No OTP received within {timeout}s")
|
||||||
|
|
||||||
|
|
||||||
def get_mail_client(provider: str = "vmail") -> BaseMailClient:
|
def get_mail_client(provider: str | None = None) -> BaseMailClient:
|
||||||
"""Get mail client by provider name."""
|
"""Get mail client by provider name."""
|
||||||
if provider == "mailtm":
|
raw_provider = settings.mail_provider if provider is None else provider
|
||||||
|
normalized = (raw_provider or "").strip().lower()
|
||||||
|
|
||||||
|
if normalized == "vmail":
|
||||||
|
return VMailClient()
|
||||||
|
if normalized == "mailtm":
|
||||||
return MailTMClient()
|
return MailTMClient()
|
||||||
if provider == "yyds":
|
if normalized == "yyds":
|
||||||
return YYDSMailClient()
|
return YYDSMailClient()
|
||||||
return VMailClient() # default to vmail
|
|
||||||
|
|
||||||
|
if not normalized:
|
||||||
# Default instance
|
raise ValueError("MAIL_PROVIDER is empty; expected one of: vmail, mailtm, yyds")
|
||||||
MailClient = get_mail_client("vmail")
|
raise ValueError(
|
||||||
|
f"Unsupported MAIL_PROVIDER={raw_provider!r}; expected one of: vmail, mailtm, yyds"
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user