fix(telegram_bot): Correct GPTMail API endpoint and authentication method

- Change API endpoint from `/api/mail/list` to `/api/generate-email`
- Update HTTP method from POST to GET request
- Replace `Authorization` header with `X-API-Key` for proper authentication
- Remove unnecessary payload parameter from API request
- Enhance response handling to extract and display generated test email
- Add error message parsing from API response for better debugging
- Improve test connection feedback to show actual generated email address
This commit is contained in:
2026-02-04 03:09:28 +08:00
parent a7867ae406
commit 36bd799c8f

View File

@@ -4572,17 +4572,22 @@ class ProvisionerBot:
return False, "没有配置 GPTMail API Key" return False, "没有配置 GPTMail API Key"
api_key = keys[0] api_key = keys[0]
url = f"{GPTMAIL_API_BASE}/api/mail/list" # 使用正确的 API 接口: /api/generate-email (GET 请求)
url = f"{GPTMAIL_API_BASE}/api/generate-email"
headers = { headers = {
"Authorization": f"Bearer {api_key}", "X-API-Key": api_key, # 正确的请求头
"Content-Type": "application/json" "Content-Type": "application/json"
} }
payload = {"email": "test@test.com", "limit": 1}
response = requests.post(url, headers=headers, json=payload, timeout=10) response = requests.get(url, headers=headers, timeout=10)
if response.status_code == 200: if response.status_code == 200:
return True, "API 连接正常" data = response.json()
if data.get("success"):
email = data.get("data", {}).get("email", "")
return True, f"生成测试邮箱: {email}"
else:
return False, data.get("error", "Unknown error")
else: else:
return False, f"HTTP {response.status_code}" return False, f"HTTP {response.status_code}"