Python conexion con outlook

Roberto Gomez 0 Puntos de reputación
2025-05-22T17:47:36+00:00

Estimados, estoy iniciandome en python, trato de hacer una conexion para ingresar a mi correo, pero me indica problemas de imap, la otra opcion es atravez de azure pero me sale el siguiente error: AADSTS900023: Specified tenant identifier 'tu_tenant_id' is neither a valid DNS name, nor a valid external domain.

si me pudieran orientar, para poder solucionar

gracias

Control de acceso basado en rol de Azure
Control de acceso basado en rol de Azure
Un servicio de Azure que proporciona administración de acceso específico para los recursos de Azure, lo que permite conceder a los usuarios solo los derechos necesarios para realizar sus trabajos.
121 preguntas
{count} votos

1 respuesta

Ordenar por: Muy útil
  1. Mallikarjuna Vardham 435 Puntos de reputación Personal externo de Microsoft Moderador
    2025-05-26T14:31:51.95+00:00

    Hola Roberto Gomez,

    Conectar Python con Outlook en Azure. Usando Microsoft Graph API, se puede hacer.

    Asegúrate de invitar a un usuario externo a Azure Entra ID e ingresar el correo electrónico y otra información necesaria al invitar, y otorgar las aprobaciones requeridas en la cuenta personal de Outlook.
    Imagen del usuario

    He hecho esto en mi laboratorio de pruebas. Inicialmente, creé un registro de aplicación y seleccioné el tipo de cuenta compatible como Cuentas en cualquier directorio organizativo (Cualquier inquilino de Microsoft Entra ID - Multitenant) y cuentas personales de Microsoft (por ejemplo, Skype, Xbox), y también habilité "Permitir flujos de cliente público" en , dando el URI de redirección http://localhost para pruebas.

    Imagen del usuario

    Y también proporcioné permisos de API como Delegado Mail.Read, Mail.ReadWrite, Mail.Send y otorgué el consentimiento de administrador.

    Imagen del usuario

    Después de eso, utilicé el siguiente script de Python en VS Code. Usé "common" en lugar del ID del inquilino en la URL de autoridad para conectar una cuenta personal de Microsoft Outlook.

    Se mostrará un aviso de inicio de sesión, ingrese las credenciales de Microsoft Outlook.
    Imagen del usuario

    
    import requests
    
    from msal import PublicClientApplication
    
    print(">>> Script started")
    
    CLIENT_ID = "<Enter App ID>"
    
    AUTHORITY = "https://login.microsoftonline.com/common"
    
    SCOPES = ["Mail.Read"]
    
    app = PublicClientApplication(
    
        client_id=CLIENT_ID,
    
        authority=AUTHORITY
    
    )
    
    result = app.acquire_token_interactive(scopes=SCOPES)
    
    if "access_token" in result:
    
        print(">>> Access token acquired")
    
        access_token = result["access_token"]
    
        graph_endpoint = "https://graph.microsoft.com/v1.0/me/messages"
    
        headers = {"Authorization": f"Bearer {access_token}"}
    
        response = requests.get(graph_endpoint, headers=headers)
    
        emails = response.json()
    
        print(">>> Emails received:")
    
        for message in emails.get("value", []):
    
            subject = message.get("subject", "No subject")
    
            sender = message.get("from", {}).get("emailAddress", {}).get("address", "Unknown sender")
    
            print("Subject:", subject)
    
            print("From:", sender)
    
            print("-" * 40)
    
    else:
    
        print(" Authentication failed.")
    
        print("Details:")
    
        print(result)
    
    

    Salida: Me he conectado correctamente y he recuperado los mensajes de la cuenta personal de Microsoft.
    Imagen del usuario

    0 comentarios No hay comentarios

Su respuesta

Las respuestas se pueden marcar como respuestas aceptadas por el autor de la pregunta, lo que ayuda a los usuarios a conocer la respuesta que resolvió el problema del autor.