Files
emailsystem/check_emails.py
2025-02-25 19:50:00 +08:00

103 lines
4.0 KiB
Python

#!/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()