xx
This commit is contained in:
109
example.py
Normal file
109
example.py
Normal file
@@ -0,0 +1,109 @@
|
||||
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("无效的选择")
|
||||
Reference in New Issue
Block a user