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