You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无Outlook客户端的远程服务器Python发Outlook邮件方案(SMTP禁用)

使用Microsoft Graph API发送Outlook邮件(非SMTP方案)

前置准备

  • 联系管理员在Azure Active Directory中完成应用注册:
    • 创建新应用,账户类型选择「组织目录中的账户」
    • 生成客户端ID和客户端密钥(客户端凭据流,适配无交互服务器场景)
    • 给应用添加**Mail.Send应用权限**(注意不是委托权限),并让管理员完成权限同意
  • 安装依赖库:执行pip install requests

完整代码实现

import requests
import json

# 替换为你的实际配置信息
TENANT_ID = "你的租户ID"
CLIENT_ID = "应用注册的客户端ID"
CLIENT_SECRET = "应用注册生成的客户端密钥"
SENDER_EMAIL = "发件人邮箱@你的组织域名.com"
RECIPIENT_EMAIL = "收件人邮箱@目标域名.com"

# 1. 获取Graph API访问令牌
token_url = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token"
token_data = {
    "grant_type": "client_credentials",
    "client_id": CLIENT_ID,
    "client_secret": CLIENT_SECRET,
    "scope": "https://graph.microsoft.com/.default"
}

token_res = requests.post(token_url, data=token_data)
token_res.raise_for_status()
access_token = token_res.json()["access_token"]

# 2. 构造邮件并发送
send_mail_url = f"https://graph.microsoft.com/v1.0/users/{SENDER_EMAIL}/sendMail"
mail_headers = {
    "Authorization": f"Bearer {access_token}",
    "Content-Type": "application/json"
}

mail_content = {
    "message": {
        "subject": "Graph API测试邮件",
        "body": {
            "contentType": "Text",
            "content": "这是无需SMTP服务,通过Microsoft Graph API发送的邮件。"
        },
        "toRecipients": [
            {
                "emailAddress": {"address": RECIPIENT_EMAIL}
            }
        ]
        # 可选:添加抄送/附件,格式参考Graph API官方定义
    },
    "saveToSentItems": "true"
}

mail_res = requests.post(send_mail_url, headers=mail_headers, data=json.dumps(mail_content))
mail_res.raise_for_status()

print("邮件发送成功")

关键说明

  • 客户端凭据流适配无交互的远程服务器场景,无需用户登录,应用本身拥有发件权限
  • 必须确保Mail.Send权限是应用权限,委托权限无法满足服务器无交互需求
  • 租户ID可在Azure AD「概述」页面获取,客户端ID/密钥在应用注册的「证书和密码」页生成
  • 如需发送HTML邮件,将contentType改为HTML,content填写HTML代码即可

常见问题排查

  • 权限错误:检查权限类型是否为应用权限、管理员是否已同意、配置信息是否正确
  • 404错误:确认发件人邮箱是租户内有效账号,应用已被授权访问该账号的邮件功能

内容的提问来源于stack exchange,提问作者karthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 03:40:03