StarrySkyWorld commited on
Commit
65f1cfe
·
1 Parent(s): 5863861

fix: fix email pool auto

Browse files
Files changed (1) hide show
  1. core/email_generator.py +15 -0
core/email_generator.py CHANGED
@@ -246,7 +246,11 @@ class EmailGenerator:
246
  domain = os.environ.get('EMAIL_DOMAIN', '').strip()
247
  timeout = int(os.environ.get('MAIL_API_TIMEOUT', '15'))
248
 
 
 
249
  if not base_url or not admin_pwd or not domain:
 
 
250
  return None
251
 
252
  name = self._generate_mailapi_name()
@@ -264,6 +268,7 @@ class EmailGenerator:
264
  try:
265
  resp = requests.post(url, json=payload, headers=headers, timeout=timeout)
266
  if resp.status_code != 200:
 
267
  return None
268
  data = resp.json() if resp.content else {}
269
  address = data.get('address')
@@ -271,6 +276,7 @@ class EmailGenerator:
271
  address = f"{name}@{domain}"
272
  return address
273
  except Exception:
 
274
  return None
275
 
276
  def _generate_mailapi_name(self) -> str:
@@ -278,6 +284,15 @@ class EmailGenerator:
278
  numbers = ''.join(random.choices(string.digits, k=random.randint(1, 3)))
279
  letters2 = ''.join(random.choices(string.ascii_lowercase, k=random.randint(1, 3)))
280
  return letters1 + numbers + letters2
 
 
 
 
 
 
 
 
 
281
 
282
  def _generate_random_name(self) -> str:
283
  """Generate a random realistic name"""
 
246
  domain = os.environ.get('EMAIL_DOMAIN', '').strip()
247
  timeout = int(os.environ.get('MAIL_API_TIMEOUT', '15'))
248
 
249
+ base_url = self._normalize_mailapi_base_url(base_url)
250
+
251
  if not base_url or not admin_pwd or not domain:
252
+ print("[MAIL] Mail API auto-create disabled or misconfigured")
253
+ print(f"[MAIL] base_url set: {bool(base_url)} admin_pwd set: {bool(admin_pwd)} domain set: {bool(domain)}")
254
  return None
255
 
256
  name = self._generate_mailapi_name()
 
268
  try:
269
  resp = requests.post(url, json=payload, headers=headers, timeout=timeout)
270
  if resp.status_code != 200:
271
+ print(f"[MAIL] Mail API create failed: {resp.status_code}")
272
  return None
273
  data = resp.json() if resp.content else {}
274
  address = data.get('address')
 
276
  address = f"{name}@{domain}"
277
  return address
278
  except Exception:
279
+ print("[MAIL] Mail API create request failed")
280
  return None
281
 
282
  def _generate_mailapi_name(self) -> str:
 
284
  numbers = ''.join(random.choices(string.digits, k=random.randint(1, 3)))
285
  letters2 = ''.join(random.choices(string.ascii_lowercase, k=random.randint(1, 3)))
286
  return letters1 + numbers + letters2
287
+
288
+ def _normalize_mailapi_base_url(self, base_url: str) -> str:
289
+ if not base_url:
290
+ return base_url
291
+ if base_url.endswith("/api"):
292
+ return base_url[:-4]
293
+ if base_url.endswith("/api/"):
294
+ return base_url[:-5]
295
+ return base_url
296
 
297
  def _generate_random_name(self) -> str:
298
  """Generate a random realistic name"""