forked from carrydela/autoClaude
feat: Update mail service implementation and its configuration example.
This commit is contained in:
@@ -8,27 +8,15 @@ import requests as standard_requests # 用于普通API交互
|
||||
class MailSystem:
|
||||
"""单个邮箱系统实例,支持多域名"""
|
||||
|
||||
def __init__(self, base_url, admin_email, admin_password, domains):
|
||||
def __init__(self, base_url, api_token, domains):
|
||||
self.base_url = base_url
|
||||
self.domains = domains # 该系统支持的域名列表
|
||||
self.token = self._get_token(admin_email, admin_password)
|
||||
self.token = api_token
|
||||
self.headers = {"Authorization": self.token}
|
||||
|
||||
def _get_token(self, email, password):
|
||||
"""获取身份令牌,这是我们的通行证"""
|
||||
url = f"{self.base_url}/api/public/genToken"
|
||||
payload = {"email": email, "password": password}
|
||||
try:
|
||||
resp = standard_requests.post(url, json=payload)
|
||||
data = resp.json()
|
||||
if data['code'] == 200:
|
||||
print(f"[+] 令牌获取成功 ({self.base_url}): {data['data']['token'][:10]}...")
|
||||
return data['data']['token']
|
||||
else:
|
||||
raise Exception(f"获取Token失败: {data}")
|
||||
except Exception as e:
|
||||
print(f"[-] 连接邮件系统失败 ({self.base_url}): {e}")
|
||||
return None
|
||||
if self.token:
|
||||
print(f"[+] 邮箱系统已连接 ({self.base_url}), Token: {self.token[:10]}...")
|
||||
else:
|
||||
print(f"[-] 邮箱系统 Token 为空 ({self.base_url})")
|
||||
|
||||
def create_user(self, email_prefix, domain=None):
|
||||
"""在系统里注册一个新邮箱用户"""
|
||||
@@ -103,8 +91,7 @@ class MailPool:
|
||||
for cfg in mail_configs:
|
||||
ms = MailSystem(
|
||||
base_url=cfg["base_url"],
|
||||
admin_email=cfg["admin_email"],
|
||||
admin_password=cfg["admin_pass"],
|
||||
api_token=cfg.get("api_token", ""),
|
||||
domains=cfg["domains"],
|
||||
)
|
||||
if ms.token: # 只添加连接成功的系统
|
||||
|
||||
Reference in New Issue
Block a user