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

68 lines
2.4 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from app.models import get_session, Domain, Mailbox, Email
def check_database():
"""直接从数据库获取邮件信息"""
session = get_session()
try:
# 获取所有域名
print("获取所有域名...")
domains = session.query(Domain).all()
print(f"找到 {len(domains)} 个域名:")
for domain in domains:
print(f" - {domain.name} (ID: {domain.id})")
# 获取所有邮箱
print("\n获取所有邮箱...")
mailboxes = session.query(Mailbox).all()
print(f"找到 {len(mailboxes)} 个邮箱:")
for mailbox in mailboxes:
print(f" - {mailbox.full_address} (ID: {mailbox.id})")
# 获取所有邮件
print("\n获取所有邮件...")
emails = session.query(Email).all()
print(f"找到 {len(emails)} 封邮件:")
for i, email in enumerate(emails, 1):
print(f"\n--- 邮件 {i} ---")
print(f"ID: {email.id}")
print(f"邮箱ID: {email.mailbox_id}")
# 获取邮箱信息
mailbox = session.query(Mailbox).filter_by(id=email.mailbox_id).first()
mailbox_address = mailbox.full_address if mailbox else "未知"
print(f"收件人: {mailbox_address}")
print(f"发件人: {email.sender}")
print(f"主题: {email.subject}")
print(f"接收时间: {email.received_at}")
print(f"是否已读: {email.read}")
# 打印邮件内容
print("\n邮件文本内容摘要:")
if email.body_text:
print(email.body_text[:200] + "..." if len(email.body_text) > 200 else email.body_text)
else:
print("<无文本内容>")
print("\n邮件HTML内容摘要:")
if email.body_html:
print(email.body_html[:200] + "..." if len(email.body_html) > 200 else email.body_html)
else:
print("<无HTML内容>")
# 提取验证码
if hasattr(email, 'verification_code') and email.verification_code:
print(f"\n验证码: {email.verification_code}")
print("-" * 50)
finally:
session.close()
if __name__ == "__main__":
check_database()