feat: 添加代理支持

- 在 .env 中通过 PROXY_URL 配置代理
- 支持 http/https/socks4/socks5 代理
- 所有网络请求(curl_cffi 和 requests)都走代理
- 服务类构造函数新增 proxies 参数传递代理配置
This commit is contained in:
Debug Assistant
2026-02-20 00:05:03 +08:00
parent 91b187903c
commit 6798426c7b
6 changed files with 47 additions and 13 deletions

View File

@@ -6,7 +6,7 @@ from dotenv import load_dotenv
class EmailService:
def __init__(self):
def __init__(self, proxies=None):
load_dotenv()
self.worker_domain = os.getenv("WORKER_DOMAIN")
self.freemail_token = os.getenv("FREEMAIL_TOKEN")
@@ -14,6 +14,7 @@ class EmailService:
raise ValueError("Missing: WORKER_DOMAIN or FREEMAIL_TOKEN")
self.base_url = f"https://{self.worker_domain}"
self.headers = {"Authorization": f"Bearer {self.freemail_token}"}
self.proxies = proxies or {}
def create_email(self):
"""创建临时邮箱 GET /api/generate"""
@@ -21,6 +22,7 @@ class EmailService:
res = requests.get(
f"{self.base_url}/api/generate",
headers=self.headers,
proxies=self.proxies,
timeout=10
)
if res.status_code == 200:
@@ -44,6 +46,7 @@ class EmailService:
f"{self.base_url}/api/emails",
params={"mailbox": email},
headers=self.headers,
proxies=self.proxies,
timeout=10
)
if debug:
@@ -91,6 +94,7 @@ class EmailService:
f"{self.base_url}/api/mailboxes",
params={"address": address},
headers=self.headers,
proxies=self.proxies,
timeout=10
)
return res.status_code == 200 and res.json().get("success")