初始化提交,包含完整的邮件系统代码
This commit is contained in:
103
check_emails.py
Normal file
103
check_emails.py
Normal file
@@ -0,0 +1,103 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import requests
|
||||
import json
|
||||
import os
|
||||
|
||||
# 基础URL
|
||||
BASE_URL = "http://localhost:5000/api"
|
||||
|
||||
def check_emails():
|
||||
"""检查系统中的邮件"""
|
||||
try:
|
||||
# 获取域名列表
|
||||
print("获取域名列表...")
|
||||
domains_response = requests.get(f"{BASE_URL}/domains")
|
||||
domains_data = domains_response.json()
|
||||
|
||||
# 从响应中提取domains列表
|
||||
domains = domains_data.get('domains', [])
|
||||
print(f"系统中的域名: {len(domains)}")
|
||||
for domain in domains:
|
||||
print(f"- {domain.get('name', '未知')} (ID: {domain.get('id', '未知')})")
|
||||
|
||||
# 获取邮箱列表
|
||||
print("\n获取邮箱列表...")
|
||||
mailboxes_response = requests.get(f"{BASE_URL}/mailboxes")
|
||||
mailboxes_data = mailboxes_response.json()
|
||||
|
||||
# 从响应中提取mailboxes列表
|
||||
mailboxes = mailboxes_data.get('mailboxes', [])
|
||||
print(f"系统中的邮箱: {len(mailboxes)}")
|
||||
|
||||
if len(mailboxes) == 0:
|
||||
print("还没有创建邮箱,创建一个新邮箱...")
|
||||
|
||||
# 获取第一个域名的ID
|
||||
if domains:
|
||||
domain_id = domains[0].get('id')
|
||||
print(f"使用域名ID: {domain_id}")
|
||||
|
||||
# 创建一个新邮箱
|
||||
create_data = {
|
||||
"domain_id": domain_id,
|
||||
"address": "user",
|
||||
"password": "password123",
|
||||
"description": "测试用户"
|
||||
}
|
||||
|
||||
create_response = requests.post(f"{BASE_URL}/mailboxes", json=create_data)
|
||||
print(f"创建邮箱响应状态: {create_response.status_code}")
|
||||
print(f"创建邮箱响应内容: {create_response.text}")
|
||||
|
||||
# 再次获取邮箱列表
|
||||
mailboxes_response = requests.get(f"{BASE_URL}/mailboxes")
|
||||
mailboxes_data = mailboxes_response.json()
|
||||
mailboxes = mailboxes_data.get('mailboxes', [])
|
||||
|
||||
# 遍历邮箱列表
|
||||
for mailbox in mailboxes:
|
||||
print(f"- {mailbox.get('address', '未知')}@{mailbox.get('domain_name', '?')} (ID: {mailbox.get('id', '未知')})")
|
||||
|
||||
# 获取该邮箱的邮件
|
||||
mailbox_id = mailbox.get('id')
|
||||
if mailbox_id:
|
||||
print(f" 获取邮箱ID={mailbox_id}的邮件...")
|
||||
emails_response = requests.get(f"{BASE_URL}/mailboxes/{mailbox_id}/emails")
|
||||
emails_data = emails_response.json()
|
||||
|
||||
# 从响应中提取emails列表
|
||||
emails = emails_data.get('emails', [])
|
||||
print(f" 邮件数量: {len(emails)}")
|
||||
|
||||
for email in emails:
|
||||
print(f" - 主题: {email.get('subject', '无主题')}")
|
||||
print(f" 从: {email.get('from_addr', '未知')}")
|
||||
print(f" 发送时间: {email.get('created_at', '未知')}")
|
||||
print(f" ID: {email.get('id', '未知')}")
|
||||
|
||||
if not emails:
|
||||
print(" 无邮件")
|
||||
|
||||
# 检查存储目录
|
||||
email_data_dir = os.path.join(os.getcwd(), 'email_data')
|
||||
if os.path.exists(email_data_dir):
|
||||
print(f"\n检查存储目录: {email_data_dir}")
|
||||
file_count = 0
|
||||
for root, dirs, files in os.walk(email_data_dir):
|
||||
for file in files:
|
||||
if file.endswith('.eml'):
|
||||
print(f"- 发现邮件文件: {os.path.join(root, file)}")
|
||||
file_count += 1
|
||||
|
||||
if file_count == 0:
|
||||
print("存储目录中没有找到.eml文件")
|
||||
else:
|
||||
print(f"\n存储目录不存在: {email_data_dir}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"检查失败: {str(e)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
check_emails()
|
||||
Reference in New Issue
Block a user