import requests import json # API接口地址(假设API服务运行在本地5000端口) API_URL = "http://localhost:5000" client_id = '9e5f94bc-e8a4-4e73-b8be-63364c29d753' email = 'eedbbfdd186@outlook.com' refresh_token ='M.C544_BL2.0.U.-CmrNXHVufVZdj1*CaDuSw4WSQYVfF7ILMi4XYHeVQ!YJm56uJO5HPG9I2bOJIRrS3c5FgP9sDKB*HjA3O6wVY4Cr7hzNGWjujT*xZ5k4gOjRDVXx9ocaY1bf5J2HZgAoBJYjFq76*3h2xddMEGqp7iFjYDo3B9rcfRGh!G6rJ38vkWBSGw!7hcj21IWdZD!eIZqCx1o2tDrzeH*fRnuf*DoTQEFCDnFpCoulmQHDUBEFiBT8H*TzupejEgWTmXewN9tpcQwFituIbGScsDWdRuB5pcF63p7jazZdeZ8Bpa7pQb5Fc4mYUSwQS4Qx9CNNMYnwYuhiAVEXPcoppWCA7WXF!bgOxa7IuZASnWMiC!jqUu77KnwrHWZD14SDrFfwBQ$$' def get_emails(): """获取最新的邮件""" url = f"{API_URL}/api/emails" payload = { "email": email, "client_id": client_id, "refresh_token": refresh_token, "folder": "INBOX", # 可以改为其他文件夹 "limit": 10 # 获取最新的10封邮件 } headers = { "Content-Type": "application/json" } try: response = requests.post(url, json=payload, headers=headers) response.raise_for_status() # 如果请求失败,抛出异常 result = response.json() # 保存新的refresh_token(如果有) if "refresh_token" in result and result["refresh_token"] != refresh_token: print(f"新的refresh_token: {result['refresh_token']}") # 在实际应用中,你应该将新的refresh_token保存到安全的地方 # 显示邮件 print(f"找到 {len(result['emails'])} 封邮件:") for i, email_data in enumerate(result["emails"], 1): print(f"\n--- 邮件 {i} ---") print(f"主题: {email_data.get('subject', 'N/A')}") print(f"发件人: {email_data.get('from', 'N/A')}") print(f"日期: {email_data.get('date', 'N/A')}") # 如果邮件有附件 if "attachments" in email_data: print(f"附件: {', '.join(email_data['attachments'])}") # 显示邮件正文(截取前100个字符) if "body" in email_data: body_preview = email_data["body"][:100] + "..." if len(email_data["body"]) > 100 else email_data["body"] print(f"内容预览: {body_preview}") return result except requests.exceptions.RequestException as e: print(f"请求失败: {e}") return None def get_folders(): """获取邮箱文件夹列表""" url = f"{API_URL}/api/folders" payload = { "email": email, "client_id": client_id, "refresh_token": refresh_token } headers = { "Content-Type": "application/json" } try: response = requests.post(url, json=payload, headers=headers) response.raise_for_status() result = response.json() # 保存新的refresh_token(如果有) if "refresh_token" in result and result["refresh_token"] != refresh_token: print(f"新的refresh_token: {result['refresh_token']}") # 显示文件夹 print("邮箱文件夹列表:") for folder in result["folders"]: print(f"- {folder}") return result except requests.exceptions.RequestException as e: print(f"请求失败: {e}") return None if __name__ == "__main__": print("1. 获取邮箱文件夹列表") print("2. 获取最新邮件") choice = input("请选择操作 (1/2): ") if choice == "1": get_folders() elif choice == "2": get_emails() else: print("无效的选择")