如何使用Microsoft Graph Python SDK发送MIME消息?
使用Microsoft Graph Python SDK发送MIME消息
前置准备
- 安装Microsoft Graph Python SDK:
pip install msgraph-core - 完成身份验证流程,获取可用的
GraphServiceClient实例(支持客户端凭据、用户名密码等多种认证方式)
具体实现步骤
生成符合标准的MIME内容
借助Python内置的email模块构建MIME格式的邮件,示例代码:from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText # 创建多部分MIME消息 mime_msg = MIMEMultipart() mime_msg['Subject'] = "测试MIME格式邮件" mime_msg['From'] = "发送者邮箱@example.com" mime_msg['To'] = "接收者邮箱@example.com" # 添加纯文本正文 text_body = MIMEText("这是通过SDK发送的MIME邮件正文内容", 'plain') mime_msg.attach(text_body) # 将MIME消息转为字符串格式 mime_content = mime_msg.as_string()调用SDK接口发送邮件
通过GraphServiceClient调用发送邮件的接口,传入MIME内容:from msgraph import GraphServiceClient from msgraph.generated.users.item.send_mail.send_mail_post_request_body import SendMailPostRequestBody from msgraph.generated.models.message import Message # 假设已完成graph_client的初始化 # graph_client = GraphServiceClient(认证凭据, 权限范围) # 构建请求体 request_body = SendMailPostRequestBody( message=Message( mime_content=mime_content ), save_to_sent_items=True ) # 执行发送操作,"me"代表当前登录用户,也可替换为具体用户ID await graph_client.me.send_mail.post(request_body)
关键注意点
- MIME内容必须包含完整的邮件头信息(Subject、From、To等),否则可能发送失败
- 认证时需申请
Mail.Send权限 - 使用异步客户端时需添加
await关键字,同步客户端则无需添加
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

