初始化提交,包含完整的邮件系统代码

This commit is contained in:
huangzhenpc
2025-02-25 19:50:00 +08:00
commit aeffc4f8b8
52 changed files with 6673 additions and 0 deletions

149
basic_test.py Normal file
View File

@@ -0,0 +1,149 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import traceback
import time
import sys
# API配置
API_BASE_URL = "http://localhost:5000/api"
def print_separator(title):
"""打印分隔线"""
print("\n" + "=" * 80)
print(title.center(80))
print("=" * 80 + "\n")
def create_domain(name, description=""):
"""创建域名"""
print(f"创建域名: {name}")
try:
data = {
"name": name,
"description": description
}
response = requests.post(f"{API_BASE_URL}/domains", json=data)
print(f"响应状态码: {response.status_code}")
if response.status_code in (200, 201):
result = response.json()
print("响应内容:")
print(result)
return result.get("domain")
else:
print(f"创建域名失败: {response.text}")
return None
except Exception as e:
print(f"创建域名时出错: {str(e)}")
traceback.print_exc()
return None
def create_mailbox(domain_id, address):
"""创建邮箱"""
print(f"创建邮箱: {address} (域名ID: {domain_id})")
try:
data = {
"domain_id": domain_id,
"address": address
}
response = requests.post(f"{API_BASE_URL}/mailboxes", json=data)
print(f"响应状态码: {response.status_code}")
if response.status_code in (200, 201):
result = response.json()
print("响应内容:")
print(result)
return result.get("mailbox")
else:
print(f"创建邮箱失败: {response.text}")
return None
except Exception as e:
print(f"创建邮箱时出错: {str(e)}")
traceback.print_exc()
return None
def get_all_domains():
"""获取所有域名"""
print("获取所有域名")
try:
response = requests.get(f"{API_BASE_URL}/domains")
print(f"响应状态码: {response.status_code}")
if response.status_code == 200:
result = response.json()
domains = result.get("domains", [])
print(f"找到 {len(domains)} 个域名:")
for domain in domains:
print(f" - {domain.get('name')} (ID: {domain.get('id')})")
return domains
else:
print(f"获取域名失败: {response.text}")
return []
except Exception as e:
print(f"获取域名时出错: {str(e)}")
traceback.print_exc()
return []
def get_all_mailboxes():
"""获取所有邮箱"""
print("获取所有邮箱")
try:
response = requests.get(f"{API_BASE_URL}/mailboxes")
print(f"响应状态码: {response.status_code}")
if response.status_code == 200:
result = response.json()
mailboxes = result.get("mailboxes", [])
print(f"找到 {len(mailboxes)} 个邮箱:")
for mailbox in mailboxes:
print(f" - {mailbox.get('full_address')} (ID: {mailbox.get('id')})")
return mailboxes
else:
print(f"获取邮箱失败: {response.text}")
return []
except Exception as e:
print(f"获取邮箱时出错: {str(e)}")
traceback.print_exc()
return []
def main():
try:
print_separator("基础功能测试")
# 测试获取所有域名
print_separator("测试获取域名")
domains = get_all_domains()
# 测试创建新域名
print_separator("测试创建域名")
test_domain = create_domain("test-domain.com", "测试域名")
if test_domain:
print(f"成功创建域名: {test_domain.get('name')} (ID: {test_domain.get('id')})")
# 测试获取所有邮箱
print_separator("测试获取邮箱")
mailboxes = get_all_mailboxes()
# 测试创建新邮箱
print_separator("测试创建邮箱")
test_mailbox = create_mailbox(test_domain.get('id'), "testuser")
if test_mailbox:
print(f"成功创建邮箱: {test_mailbox.get('full_address')} (ID: {test_mailbox.get('id')})")
else:
print("创建邮箱失败")
else:
print("创建域名失败")
print_separator("测试完成")
return 0
except Exception as e:
print(f"测试过程中发生错误: {str(e)}")
traceback.print_exc()
return 1
if __name__ == "__main__":
sys.exit(main())