feat(v1.1.0): add send mail support via Graph API and SMTP

This commit is contained in:
juanjuanjuanidea
2026-07-24 13:58:44 +08:00
parent 015a63043d
commit e5e1ef3a2d
4 changed files with 102 additions and 2 deletions
+29
View File
@@ -420,3 +420,32 @@ def delete_emails_graph(
)
return result
def send_mail_graph(access_token: str, to_email: str, subject: str, body_text: str, proxy_url: str = None) -> bool:
"""使用 Microsoft Graph API 发送邮件"""
url = "https://graph.microsoft.com/v1.0/me/sendMail"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
payload = {
"message": {
"subject": subject,
"body": {
"contentType": "Text",
"content": body_text
},
"toRecipients": [
{
"emailAddress": {
"address": to_email
}
}
]
},
"saveToSentItems": "true"
}
proxies = build_proxies(proxy_url) if "build_proxies" in globals() else ({"http": proxy_url, "https": proxy_url} if proxy_url else None)
res = requests.post(url, json=payload, headers=headers, proxies=proxies, timeout=30)
return res.status_code in (200, 202)