Microsoft Graph API Correo electrónico: Enviar, Leer y Sincronizar (Guía 2026)

API Graph de Microsoft

Microsoft Graph API Correo electrónico: Guía Completa de Integración para Desarrolladores (2026)

18 min de lectura 17 abr 2026 Python / Node.js / REST

La API de Microsoft Graph es el punto final REST unificado para acceder a los datos de correo electrónico de Outlook y Exchange: leer, enviar, buscar y recibir webhooks para cada evento del buzón. Esta guía le guía a través de la configuración de OAuth 2.0, ejemplos de código en vivo, límites de frecuencia y cómo unificar Microsoft Graph con Gmail e IMAP bajo un único SDK.

API Graph de Microsoft OAuth 2.0 Correo de Outlook MSAL Webhooks
leer_correos_outlook.py
import solicita # API Unificada de Correo Electrónico de Unipile # Lee correos electrónicos de Outlook a través de Microsoft Graph BASE = "https://api.unipile.com:13465/api/v1" ENCABEZADOS = { "Clave API X": "TU_TOKEN_DE_ACCESO", "Aceptar": "application/json" } def obtener_correos_de_outlook(id_cuenta, límite=20): r = solicitudes.consiga( f"{BASE}/correos", headers=cabeceras, params={ "account_id": id_cuenta, "límite"límite } ) return r.json()["correos electrónicos"] correos electrónicos = obtener_correos_de_outlook("acc_outlook_123") para e en correos electrónicos print(e["Asunto"], e["de"])
20 correos electrónicos recuperados de Outlook - vía Microsoft Graph
Funciona con: Logotipo de Outlook Logo de Gmail Logo de IMAP
¿Integración de correo electrónico?

Lee nuestro Guía completa de la API de correo electrónico - Flujos OAuth, sincronización, envío y comparación de proveedores.

Definición

¿Qué es la API de Microsoft Graph para el correo electrónico?

La API de Microsoft Graph es la puerta de enlace REST unificada para todos los servicios de Microsoft 365, incluyendo correo electrónico, calendario, contactos y archivos. Específicamente para el correo electrónico, expone la /v1.0/yo/mensajes endpoint, otorgando a los desarrolladores acceso programático a todos los buzones de Outlook y Exchange. Reemplazó los protocolos heredados (autenticación básica, EWS) y ahora es la única forma oficialmente compatible de acceder al correo electrónico de Outlook de forma programática utilizando OAuth 2.0.

Definición de desarrollador

En Microsoft Graph API para correo electrónico ¿la interfaz RESTful expone los datos del buzón de Microsoft 365, incluidos mensajes, carpetas, archivos adjuntos y configuraciones del buzón, bajo el https://graph.microsoft.com/v1.0/me/messages endpoint. Se autentica a través de Azure Active Directory OAuth 2.0, soporta permisos delegados y de aplicación, y permite eventos en tiempo real a través de modificar suscripciones de notificación (webhooks). Es la forma recomendada de reemplazar todos los flujos de autenticación básica obsoletos.

Microsoft Graph API es la reemplazo recomendado para la Autenticación Básica obsoleta: todo el acceso al correo electrónico de Outlook y Exchange ahora requiere OAuth 2.0 a través de Graph. La autenticación básica se retiró por completo en octubre de 2022.

Criterio API Graph de Microsoft SMTP / IMAP directo
Autenticación OAuth 2.0 (MSAL) Nombre de usuario + contraseña (obsoleto)
Límites de tarifa 10.000 solicitudes / 10 min por aplicación Sin límite estándar (dependiente del servidor)
Características Leer, enviar, buscar, webhooks, carpetas Limitado: solo envío/recepción básico
Complejidad Flujo de OAuth + Registro de Aplicación de Azure Baja instalación, alto mantenimiento
Soporte Unipile Nativo - no se necesita flujo OAuth Nativo - Copia de seguridad IMAP
Ventajas

¿Por qué usar la API de Microsoft Graph para la integración de correo electrónico?

Desarrollar sobre Microsoft Graph te brinda acceso seguro y basado en tokens al ecosistema de correo electrónico empresarial más grande del mundo: más de 400 millones de buzones de Outlook y Exchange. Aquí están las cuatro razones principales por las que los desarrolladores eligen el punto final de correo electrónico de la API de Microsoft Graph.

Autenticación unificada OAuth 2.0

Una única Solicitud de Azure cubre todas las bandejas de entrada de Outlook, Exchange y Microsoft 365. Los permisos delegados permiten que los usuarios den su consentimiento una vez; los permisos de aplicación habilitan el acceso del lado del servidor sin supervisión y sin ninguna interacción del usuario.

Acceso completo al buzón

Lea, envíe, responda, mueva y elimine mensajes. Administre carpetas, busque en todo el buzón, maneje archivos adjuntos y configure reglas de correo, todo a través de la misma interfaz REST con un esquema de respuesta JSON predecible.

Webhooks en tiempo real

Suscríbase a las notificaciones de cambios en el buzón y reciba una solicitud HTTP POST en su endpoint cada vez que llegue un nuevo correo electrónico, se lea un mensaje o cambie una carpeta. Sin sondeos, sin demoras: eventos entregados en tiempo real.

Soporte de Exchange, Outlook y M365

Un único punto de conexión de API cubre cuentas personales de Outlook, inquilinos de Microsoft 365 empresariales y servidores Exchange locales (a través de híbrido). Una integración maneja todo el ecosistema de correo electrónico de Microsoft sin rutas de código separadas.

Configuración de Microsoft OAuth para la API de Outlook - Unipile

Configuración de Microsoft OAuth para la API de Outlook

Documentación de Microsoft OAuth

Por defecto, tu integración utiliza las credenciales OAuth de Unipile. Para obtener una experiencia totalmente marca blanca cuando los usuarios finales conecten sus cuentas de Microsoft, cree su propia aplicación en Microsoft Entra ID. Seguir la 7 pasos a continuación para registrar tu aplicación, configurar permisos y conectarla a Unipile.

1
2
3
4
5
6
7
01

Crear una cuenta de Microsoft Entra ID

Si aún no tienes uno, crea un Microsoft Entra ID cuenta (anteriormente Azure Active Directory). Este es el portal de administración donde registrará su aplicación OAuth.

02

Registrar una nueva aplicación en el portal de Azure

Iniciar sesión en portal.azure.com, ir a Microsoft Entra ID, y haz clic Nuevo registro.

  • Ponle nombre a tu aplicación: este nombre será visible para tus usuarios finales durante la pantalla de consentimiento de OAuth.
  • Tipos de cuenta admitidos: seleccione "Cuentas en cualquier directorio de organización (cualquier Microsoft Entra ID, multitenant) y cuentas personales de Microsoft" para admitir tanto cuentas de Office 365 empresariales como personales.
Servicio de Azure Active Directory
Registro de Nueva Aplicación
03

Agregar URI de redireccionamiento

Ve a la Autenticación panel y clic Añadir URI en la sección Web. Agregar 2 URI de redireccionamiento usando tu DSN de Unipile (disponible en Cuadro de mandos de Unipile, arriba a la derecha):

https://{{YOUR_DSN}}/api/v1/hosted/microsoft_auth_request_callback
https://{{YOUR_DSN_less_port}}/api/v1/hosted/microsoft_auth_request_callback/port{{YOUR_PORT}}
04

Configurar los permisos de la API

Ir a Permisos de API > Agregar un permiso > Microsoft Graph, luego añade lo siguiente Permisos delegados:

Mail.Read
Mail.ReadWrite
Mail.Enviar

Para las funciones de calendario, añade también: Calendars.ReadWrite, Calendars.Read, Calendars.Read.Shared, Calendars.ReadWrite.Shared. Añádelas también en la configuración de ámbitos de tu Panel de Unipile.

Agregar Permiso de API
Elige Microsoft Graph
Añadir permisos delegados
Pantalla de permisos de la aplicación
05

Crear un secreto de cliente

Ir a Certificados y secretos, haga clic Nuevo secreto del cliente. Nombra el secreto y establece una fecha de caducidad de 730 días (24 meses), luego haz clic en "Añadir".

Importante: Copia el valor secreto inmediatamente. No podrás recuperarlo de esta página después. Configura un recordatorio en tu calendario antes de que expire para evitar interrupciones del servicio.
Nuevo Secreto del Cliente
Establecer fecha de vencimiento
Copiar valor secreto
06

Conectarse a Unipile Dashboard

Ve a la Cuadro de mandos de Unipile, navega a Configuración > Microsoft OAuth.

  • Copia y pega el ID de la aplicación (cliente) de la página Resumen de Azure.
  • Pega el valor secreto de la página Certificados y secretos.
  • Clic Guardar.
Ya está listo para empezar a conectar cuentas de Microsoft en Unipile. Sus usuarios finales verán el nombre y el logotipo de su aplicación en la pantalla de consentimiento de OAuth.
07

Probar la conexión

Desde el Panel de Unipile, active un nuevo enlace de cuenta de Microsoft para verificar que sus credenciales OAuth personalizadas funcionan correctamente. Debería ver su nombre de la aplicación y marca en el aviso de consentimiento de Microsoft en lugar de los predeterminados de Unipile.

Microsoft Consent Prompt con Publicador Verificado
Opcional, Para aplicaciones de producción
8
Conviértete en un Editor Verificado
Recomendado para producción, elimina la advertencia "no verificado" en la pantalla de consentimiento.

Con la verificación, aparece una marca azul en el aviso de consentimiento. Sin ella, las cuentas profesionales pueden ver una advertencia de "publisher no verificado".

Paso 1: Únete a la Red de Socios de Microsoft

Paso 2: Verifica tu dominio

Crear un archivo llamado microsoft-identity-association.json y alojarlo en:

https://yourdomain.com/.well-known/microsoft-identity-association.json

Paso 3: Vincula tu ID de Cuenta Global de Partner (PGA)

  • Encuentra tu ID de PGA a través de Centro de partners.
  • En el Portal de Azure, ve a Registros de aplicaciones > Tu aplicación > Marca y propiedades, introduce el ID de la PGA y guarda.

Para más detalles, consulta el Documentación de verificación de Microsoft Publisher.

9
Gestionar "Se requiere aprobación del administrador"
Cuando los usuarios finales ven un bloque de consentimiento de su administrador de TI

Si un usuario ve "Se requiere la aprobación del administrador", el consentimiento requerido no ha sido otorgado a nivel de inquilino. Dos métodos para resolver esto:

Método 1: Solicitud de consentimiento del administrador en Microsoft Entra

Un administrador de Microsoft debe revisar y aprobar la solicitud de consentimiento de administrador pendiente. Ver Documentación de Microsoft sobre la revisión de solicitudes de consentimiento de administrador.

Método 2: Inicio de sesión con OAuth como administrador con consentimiento en todo el tenant

  • El administrador inicia el flujo de inicio de sesión OAuth desde tu aplicación.
  • Durante la autorización de Microsoft, el administrador debe marcar: "Consentimiento en nombre de su organización".
  • Esto otorga el consentimiento para todos los usuarios de la organización y evita la solicitud para usuarios futuros.

Detalles completos en el Guía de solución de problemas de consentimiento de Microsoft.

Casos prácticos

Casos de uso de correo electrónico de la API de Microsoft Graph

La API de Microsoft Graph para el correo electrónico potencia una amplia gama de aplicaciones SaaS que dependen de buzones de Outlook y Exchange. Estos son los tres patrones de integración más comunes utilizados por los equipos que desarrollan en la Graph API en la actualidad.

CRM - Sincronización de Contactos y Correos Electrónicos

Sincroniza hilos de correo electrónico y contactos de Outlook directamente en tu CRM. Empareja remitentes con registros de operaciones existentes, registra cada conversación automáticamente y muestra el historial de relaciones sin copiar y pegar manualmente desde Outlook.

Guía de la API de correo electrónico
ATS - Seguimiento de Solicitudes

Rastrea hilos de correo electrónico de candidatos en buzones de Outlook. Analiza correos electrónicos de solicitud entrantes, extrae archivos adjuntos y dirígelos al canal de trabajo correcto, todo a través del punto final de correo electrónico de la API de Microsoft Graph sin intervención manual.

Enviar correo electrónico API
Herramientas de Soporte - Enrutamiento de Tickets

Convierte los correos electrónicos entrantes de Outlook en tickets de soporte. Usa webhooks de Graph para recibir eventos de nuevos correos electrónicos en tiempo real, clasifica por asunto o dominio del remitente y enruta a la cola del equipo correcto, reemplazando la clasificación manual con lógica automatizada.

API unificada de correo electrónico
Características

Características clave de la API de correo electrónico de Microsoft Graph

La API de Microsoft Graph para correo electrónico expone un conjunto completo de funcionalidades que van mucho más allá del envío y la recepción básicos. Aquí están las seis características más importantes que todo desarrollador debe conocer antes de crear sobre la pila de correo electrónico de la API de Microsoft Graph.

Leer, Enviar y Responder

Recupera mensajes individuales o listas paginadas. Envía correos electrónicos nuevos o responde en línea. Mueve mensajes entre carpetas o márcalos como leídos/no leídos.

GET /v1.0/yo/mensajes
Archivos adjuntos

Cargar, descargar y listar archivos adjuntos en cualquier mensaje. Soporta archivos adjuntos en línea (incrustados) y cargas de archivos grandes a través de sesiones de carga para archivos de más de 3 MB.

GET /v1.0/me/messages/{id}/adjuntos
Carpetas y Etiquetas

Crear, renombrar y eliminar carpetas de correo. Listar todas las carpetas de correo, mover mensajes entre ellas y administrar jerarquías de carpetas secundarias, idéntico a lo que los usuarios ven en Outlook.

GET /v1.0/yo/carpetasDeCorreo
Buscar y filtrar

Utilice parámetros de consulta OData ($filter,$search, $orderby) para buscar correos electrónicos por remitente, asunto, rango de fechas o palabra clave. Admite KQL para búsquedas avanzadas de texto completo.

GET /yo/mensajes?$buscar="proyecto"
Suscripciones de Webhook

Suscríbete para recibir notificaciones de cambios en eventos del buzón. Recibe devoluciones de llamada HTTP POST casi en tiempo real cuando lleguen nuevos correos electrónicos, se lean mensajes o cambien las carpetas.

POST /v1.0/suscripciones
Solicitudes por lotes

Combina hasta 20 solicitudes individuales de la Graph API en una única llamada HTTP usando el $punto final de lotes. Reduce drásticamente los viajes de ida y vuelta para operaciones como lecturas masivas de correo electrónico.

POST /v1.0/$lote
Ejemplos de código

Cómo enviar, leer y sincronizar correos electrónicos con la API de Microsoft Graph

Tres patrones listos para producción que cubren las operaciones clave que todo desarrollador necesita: envío de correo electrónico, lectura de mensajes con filtros y sincronización delta incremental para monitoreo de buzón en tiempo real.

POST /v1.0/me/sendMail — Python vía Unipile
send_outlook_email.py
import solicita # API Unificada de Correo Electrónico de Unipile # Envía a través de Microsoft Graph — no se requiere OAuth directo BASE = "https://api.unipile.com:13465/api/v1" ENCABEZADOS = { "Clave API X": "TU_TOKEN_DE_ACCESO", "Tipo-Contenido": "application/json" } def enviar_correo_outlook(id_cuenta, para, asunto, cuerpo): carga útil = { "account_id": id_cuenta, "a": [{"identificador": a}], "Asunto": asunto, "cuerpo"cuerpo } r = solicitudes.Correo electrónico:(f"{BASE}/correos", encabezados=ENCABEZADOS, json=carga útil return r.json() # Ejemplo de uso enviar_correo_outlook( "acc_outlook_123", a="recipient@company.com", tema="Seguimiento de la reunión", cuerpo="Hola, dando seguimiento a nuestra llamada..." )
Correo enviado a través de Microsoft Graph — cuenta de Outlook acc_outlook_123
API Directa de Grafos: POST https://graph.microsoft.com/v1.0/me/sendMail con mensaje.destinatarios, mensaje.asuntoy mensaje.cuerpo.contenido. Unipile abstrae el refresco del token OAuth y el manejo MIME. Véase Guía de la API de envío de correos electrónicos para soporte de archivos adjuntos y encadenamiento de respuestas.
GET /v1.0/me/messages — filtrar, seleccionar, paginar
leer_correos_outlook.py
import solicita # Leer correos de Outlook con filtros a través de Unipile BASE = "https://api.unipile.com:13465/api/v1" ENCABEZADOS = {"Clave API X": "TU_TOKEN_DE_ACCESO"} def list_correos_outlook(id_cuenta, remitente_filtro=Ninguno, límite=20): parámetros = { "account_id": id_cuenta, "límite"límite } si filtro_remitente: # Mapea a $filtro=de/emailAddress/address eq '...' parámetros["de"] = filtro_remitente r = solicitudes.consiga(f"{BASE}/correos", encabezados=ENCABEZADOS, params=parámetros) return r.json().obtener("artículos", []) # Recuperar los últimos 20 correos electrónicos de un remitente específico correos electrónicos = list_correos_outlook("acc_outlook_123", filtro_remitente="hr@acme.com") para e en correos electrónicos print(e["Asunto"], e["de"], e["fecha"])
20 mensajes recuperados de Outlook: filtrados por dominio del remitente
Filtros OData compatibles de forma nativa: $filtro, $buscar, $seleccionar, $ordenar por, $superior. Usa $buscar="asunto:factura" Para la búsqueda de texto completo en KQL. Los archivos adjuntos de más de 3 MB requieren un subir sesión (POST /crearSesionDeCarga) — ni una sola solicitud de varias partes.
GET /v1.0/me/mailFolders/inbox/messages/delta — sincronización incremental
delta_sync_outlook.py
import solicita # Delta Sync — solo obtener correos electrónicos NUEVOS desde la última sincronización # Unipile maneja el ciclo de vida de deltaToken automáticamente BASE = "https://api.unipile.com:13465/api/v1" ENCABEZADOS = {"Clave API X": "TU_TOKEN_DE_ACCESO"} def sincronizar_correos_nuevos(id_cuenta, cursor=Ninguno): """ Devuelve solo correos electrónicos recibidos desde la última llamada. cursor = token de paginación opaco (almacenar entre llamadas). """ parámetros = {"account_id": id_cuenta} si cursor parámetros["cursor"] = cursor r = solicitudes.consiga(f"{BASE}/correos/sincronizar", encabezados=ENCABEZADOS, params=parámetros) datos = r.json() return datos.obtener("artículos", []), data.get("cursor") # Primera sincronización: sin cursor correos, siguiente_cursor = sincronizar_correos_nuevos("acc_outlook_123") # Almacene next_cursor en su base de datos, úselo para llamadas posteriores print(f"{len(emails)} correos nuevos — se guardó el último cursor")
Sincronización Delta completa — 0 llamadas de API desperdiciadas en mensajes ya vistos
Cómo funciona delta de forma nativa en Graph: GET /me/mailFolders/inbox/messages/delta devuelve un @odata.deltaLink en la primera llamada. Guárdalo y úsalo la próxima vez — Graph solo devuelve la diferencia. No hay sondeos en todos los buzones. = 10 veces menos llamadas de API que el estándar GET /mensajes. Unipile's /correos/sincronizar el punto final envuelve este patrón con gestión automática de tokens.
En tiempo real

Webhooks de la API de Microsoft Graph para eventos de correo electrónico

Las suscripciones de Microsoft Graph (webhooks) permiten que tu servidor reciba notificaciones HTTP POST en el instante en que llega, se lee, se mueve o se elimina un correo electrónico. A continuación, se incluye un ejemplo completo en Python para suscribirse a eventos de la bandeja de entrada, además de detalles sobre la gestión del ciclo de vida.

Una suscripción de webhook de Graph tiene dos campos requeridos: cambiarTipo (qué eventos ver) y notificationUrl (tu punto de conexión HTTPS). Microsoft envía una token de validación parámetro de consulta en la primera suscripción. Tu endpoint debe devolverlo en texto plano en menos de 10 segundos para confirmar la propiedad.

Las suscripciones de graph expiran después de un máximo de 4230 minutos (~3 días) para recursos de correo. Su servidor debe renovarse antes de que expire a través de PATCH /v1.0/subscriptions/{id} o dejarás de recibir notificaciones de forma silenciosa.

1 Notificaciones del ciclo de vida
Microsoft Graph envía notificaciones de ciclo de vida a un separado URL de notificación del ciclo de vida cuando una suscripción está a punto de expirar o ha sido revocada. Tu servidor debe responder con HTTP 202 para acusar recibo. El no responder provoca la terminación de la suscripción.
2 Token de validación Handshake
Cuando realiza un POST a /v1.0/subscriptions, Microsoft llama inmediatamente a su notificationUrl con una solicitud GET que contiene ?tokenDeValidación=XXX. Debes devolver el token como texto plano (Content-Type: text/plain) con HTTP 200 en menos de 10 segundos. El tiempo de espera significa que falla la creación de la suscripción.
3 Expiración de la suscripción
Las suscripciones de correo expiran después de un máximo de 4230 minutos. Usa un trabajo en segundo plano o cron para parchear el fechaHoraExpiracion antes de que expire. También puedes volver a crear una suscripción desde cero. Microsoft no cobra extra por las renovaciones.
create_subscription.py
import solicita, fecha y hora TOKEN_DE_ACCESO = "TU_TOKEN_DE_GRAFICO" PUNTO FINAL = "https://graph.microsoft.com/v1.0/subscriptions" # Expiración: máximo 4230 min a partir de ahora para recursos de correo caducidad = ( datetime.datetime.ahora() + datetime.timedelta(minutos=4200) ).isoformat() + "Z" carga útil = { "tipo de cambio": "creado", "urlDeNotificación": "https://tudominio.com/webhook", "recurso": "mis/carpetasDeCorreo('Bandeja de entrada')/mensajes", "fechaDeExpiracion": caducidad, "estadoCliente": "miEstadoSecreto" } r = solicitudes.Correo electrónico:( PUNTO FINAL, json=carga útil, cabeceras={ "Autorización": "Bearer " + ACCESS_TOKEN", "Tipo-Contenido": "application/json" } ) print(r.json()["id"]) # sub_xxxxxxxx-xxxx-xxxx-xxxx
201 Creado, suscripción activa para eventos de Bandeja de entrada
Unipile

Omite la complejidad - Usa la API unificada de correo electrónico de Unipile

Conecta Microsoft Graph, Gmail e IMAP con un solo SDK. Sin flujos OAuth por proveedor, sin lógica de actualización de tokens, sin infraestructura de webhook que mantener. Tu equipo lanza funcionalidades de correo electrónico en días, no en semanas.

Empezar gratis

No se requiere tarjeta de crédito. Cumple con SOC 2 Tipo II.

Límites

Límites de frecuencia y manejo de errores de Microsoft Graph API

El punto final de correo electrónico de la API de Microsoft Graph aplica limitaciones en varios niveles: por usuario, por aplicación y por inquilino. Comprender estos límites antes de pasar a producción evita fallos silenciosos y degrada la fiabilidad de su integración.

Cuando Microsoft Graph se limita, devuelve HTTP 429 Demasiadas solicitudes with a Reintentar después encabezado que especifica los segundos a esperar. Siempre lea este encabezado y espere según corresponda: generar solicitudes en exceso después de un 429 extenderá la ventana de limitación, no la acortará.

Código HTTP Nombre del error Causa Arregla
429 Demasiadas solicitudes Límite de velocidad excedido (10000 req / 10 min por aplicación o 1000 req / 1 min por usuario) Leer la cabecera Retry-After. Implementar retroceso exponencial. Usar el lote $para combinar solicitudes.
401 No autorizado Token de acceso expirado o falta el encabezado de autorización Renovar token con MSAL. Comprobar caducidad del token antes de cada solicitud. Usar caché de tokens.
403 Prohibido Permiso Faltante Mail.Read o Mail.Send en el Registro de Aplicaciones de Azure Agrega los permisos de Graph requeridos en el Portal de Azure y vuelve a consentir (o consentimiento de administrador para permisos de aplicación).
404 RecursoNoEncontrado El ID del mensaje o de la carpeta no existe (eliminado o en el inquilino equivocado) Verifica las IDs mediante GET antes de actuar sobre ellas. Maneja el 404 cortésmente como una señal de eliminación suave.
500 Error interno del servidor Error transitorio del servidor de Microsoft Reintentar con retroceso exponencial (1s, 2s, 4s). Registrar la cabecera request-id para soporte de Microsoft.
Multiprovedor

Más allá de Microsoft Graph: API unificada de correo electrónico para Gmail, Outlook e IMAP

La gestión de la integración de correo electrónico de la API de Microsoft Graph es solo el comienzo. La mayoría de los productos SaaS deben admitir Gmail, Outlook e IMAP simultáneamente, lo que significa tres flujos de OAuth separados, tres bucles de actualización de tokens y tres sistemas de webhook. Unipile's API de correo electrónico unificada abstrae a los tres proveedores detrás de un solo punto de acceso.

Logo de GmailAPI de Gmail Logotipo de OutlookMicrosoft Graph Logo de IMAPIMAP / SMTP

Con Unipile's integración unificada de API de correo electrónico, escribes una integración y soportas instantáneamente los tres tipos de proveedores. Unipile gestiona las cuentas vinculadas: tu backend solo habla con un endpoint REST independientemente de si el buzón del usuario funciona con Microsoft Graph, Gmail o IMAP.

No hay flujos de OAuth para gestionar Unipile se encarga de la adquisición, actualización y revocación de tokens para Microsoft Graph y Gmail en tu nombre.

Eventos unificados de webhook - notificationUrl recibe eventos de correo electrónico de todos los proveedores con un esquema JSON normalizado. Sin gestión de suscripciones por proveedor.

Cumple con SOC 2 Tipo II - todos los datos de correo electrónico en tránsito están cifrados. Unipile no almacena contenido de correo electrónico más allá de lo que requiere su integración.

Proveedores de correo electrónico compatibles
Outlook / Microsoft 365
vía la API de Microsoft Graph
Activo
Gmail
vía API de Gmail (Google)
Activo
IMAP / SMTP
Correo electrónico universal de respaldo
Activo
Comenzar

Empieza a integrar el correo electrónico de Microsoft Graph en minutos

Únete a más de 200 equipos de SaaS que usan Unipile para conectar Outlook, Gmail e IMAP bajo una sola API. Sin dependencia del proveedor. Cumple con SOC 2.

PREGUNTAS FRECUENTES

Preguntas frecuentes

Todo lo que los desarrolladores preguntan antes de crear en el punto final de correo electrónico de la API de Microsoft Graph: desde la autenticación hasta los límites de frecuencia y la cobertura del proveedor.

01
¿Qué es la API de Microsoft Graph para correos electrónicos?
En Microsoft Graph API para correo electrónico es el punto de conexión REST oficial proporcionado por Microsoft para acceder a los datos del buzón de Outlook y Exchange. Se encuentra en https://graph.microsoft.com/v1.0/me/messages y utiliza autenticación OAuth 2.0 a través de Azure Active Directory. Admite la lectura, el envío, la búsqueda y la gestión de correos electrónicos, así como la recepción de notificaciones de cambios en tiempo real a través de suscripciones de webhook.
02
OAuth 2.0 funciona con Microsoft Graph como un protocolo de autorización. Permite que aplicaciones externas obtengan acceso a recursos protegidos de Microsoft Graph en nombre de un usuario, en lugar de que el usuario proporcione sus credenciales directamente a la aplicación. Aquí hay un desglose de cómo funciona: 1. **Registro de la aplicación y consentimiento:** * **Registro de la aplicación:** Un desarrollador registra su aplicación en el portal de Microsoft Azure AD (ahora Microsoft Entra ID). Durante este proceso, la aplicación recibe un `client ID` (ID de cliente) y necesita configurar un `redirect URI` (URI de redirección). La aplicación también declara los `scopes` (alcances) que necesita, que son los permisos específicos para acceder a los datos de Microsoft Graph (por ejemplo, `User.Read`, `Mail.Send`). * **Consentimiento del usuario/administrador:** Cuando un usuario o un administrador intenta usar la aplicación por primera vez, se le presenta una pantalla de consentimiento. Esta pantalla enumera los permisos (alcances) que la aplicación solicita. El usuario o administrador debe consentir explícitamente el acceso. 2. **Flujo de autorización (ejemplo con Authorization Code Flow):** * **Redirección para obtener el código de autorización:** Cuando la aplicación necesita acceder a los datos de Microsoft Graph, redirige al usuario al punto final de autorización de Microsoft identity platform. Esta solicitud incluye el `client ID` de la aplicación, los `scopes` solicitados y el `redirect URI` configurado. * **Inicio de sesión y consentimiento:** El usuario inicia sesión en su cuenta de Microsoft. Si es la primera vez que la aplicación solicita esos permisos, se le muestra la pantalla de consentimiento. * **Devolución del código de autorización:** Una vez que el usuario otorga el consentimiento, Microsoft identity platform redirige al usuario de vuelta al `redirect URI` de la aplicación, incluyendo un `authorization code` (código de autorización) en la URL. * **Intercambio del código por un token de acceso:** La aplicación, en su servidor backend (para mayor seguridad), usa este `authorization code`, junto con su `client ID` y `client secret` (secreto del cliente, un secreto para autenticar la aplicación), para hacer una solicitud al punto final del token de Microsoft identity platform. * **Emisión del token de acceso y token de actualización:** Si la solicitud es válida, Microsoft identity platform devuelve un `access token` (token de acceso) y, a menudo, un `refresh token` (token de actualización). 3. **Uso del token de acceso para llamar a Microsoft Graph:** * **Acceso a Microsoft Graph:** La aplicación incluye el `access token` en la cabecera `Authorization` de las solicitudes HTTP que realiza a la API de Microsoft Graph: `Authorization: Bearer `. * **Validación por Microsoft Graph:** Microsoft Graph valida el `access token`. Si es válido y tiene los permisos necesarios (definidos por los `scopes`) para la solicitud específica, Microsoft Graph devuelve los datos solicitados. 4. **Renovación del token de acceso (usando el token de actualización):** * Los `access tokens` tienen una vida útil limitada y caducan. Para evitar que el usuario tenga que iniciar sesión y dar consentimiento repetidamente, la aplicación puede usar el `refresh token` para obtener un nuevo `access token` sin intervención del usuario. * La aplicación hace una solicitud al punto final del token con el `refresh token` para obtener un nuevo `access token`. **En resumen:** OAuth 2.0 proporciona un marco para la autorización delegada. En el contexto de Microsoft Graph: * **Microsoft identity platform** actúa como el servidor de autorización y el proveedor de identidad. * **Microsoft Graph** es el recurso protegido (la API) al que la aplicación desea acceder. * La **aplicación** actúa como el cliente OAuth 2.0, solicitando acceso a los datos del usuario. * Los **tokens** (de acceso y actualización) son la clave para la comunicación segura y autorizada. Este modelo garantiza que las aplicaciones solo tengan acceso a los datos a los que el usuario ha otorgado permiso explícito, mejorando la seguridad y la privacidad.
Microsoft Graph utiliza Azure Active Directory (Entra ID) para la autenticación. Registra una aplicación en el portal de Azure, configura los permisos necesarios de la API de Graph (como Mail.Read y Mail.Enviar), y utilizar la Biblioteca de autenticación de Microsoft (MSAL) para adquirir tokens de acceso. Hay dos flujos principales: delegado (el usuario inicia sesión interactivamente) y aplicación (servidor a servidor, sin interacción del usuario). Los tokens expiran después de 1 hora y deben actualizarse automáticamente.
03
¿La API de Microsoft Graph admite IMAP?
La API de Microsoft Graph no utiliza IMAP internamente; es una API REST que abstrae el protocolo de correo subyacente. Sin embargo, las cuentas de Outlook aún se pueden acceder a través de IMAP (con OAuth 2.0, ya que la autenticación básica fue descontinuada). Para la integración de correo electrónico de Outlook, Microsoft recomienda encarecidamente el uso de la API de Graph sobre IMAP porque ofrece más funciones, mejor rendimiento y soporte completo para webhooks. Para buzones que no son de Microsoft, IMAP sigue siendo la opción de respaldo universal.
04
¿Cuáles son los límites de frecuencia para la API de correo electrónico de Microsoft Graph?
Microsoft Graph aplica la limitación en varios niveles. El límite general es 10,000 solicitudes por cada 10 minutos por aplicación. Los límites por usuario pueden ser menores dependiendo del tipo de operación. Cuando se limita la velocidad, la API devuelve un HTTP 429 con un Reintentar después header. Mejores prácticas: implementa retroceso exponencial, usa lotes ($) para combinar hasta 20 solicitudes en una sola llamada HTTP y almacena en caché los datos a los que se accede con frecuencia para minimizar las llamadas redundantes.
05
¿Cómo configuro webhooks con la API de Microsoft Graph?
PUBLICAR a /v1.0/suscripciones with a cambiarTipo (por ejemplo, "creado"), un notificationUrl apuntando a tu punto de conexión HTTPS, y un recurso (por ejemplo, "me/mailFolders('Inbox')/messages"). Microsoft envía inmediatamente una solicitud GET con un token de validación - su servidor debe reflejarlo como texto plano en 10 segundos. Las suscripciones expiran después de un máximo de 4230 minutos y deben renovarse mediante PATCH antes de su vencimiento.
06
¿Puedo enviar correos electrónicos en nombre de un usuario con Microsoft Graph?
Sí. Con permisos delegados (Mail.Send), puedes enviar correos electrónicos en nombre del usuario que ha iniciado sesión desde su propio buzón. Con permisos de aplicación (Mail.Send), puedes enviar en nombre de cualquier usuario en el inquilino sin que haya iniciado sesión, lo cual es útil para notificaciones automatizadas o integraciones de CRM. Ver también: Guía de la API para enviar correos electrónicos en nombre del usuario.
07
¿Cuál es la diferencia entre Microsoft Graph API y EWS?
Exchange Web Services (EWS) es una API basada en SOAP que Microsoft creó para Exchange local. La API de Microsoft Graph es el reemplazo REST moderno y es el único enfoque recomendado para nuevas integraciones. EWS está en modo de mantenimiento; no se agregarán nuevas características y Microsoft ha anunciado planes para retirarlo para Exchange Online. Si aún utiliza EWS, migre a Graph API ahora. Para Exchange local heredado (2013/2016), EWS aún puede ser su única opción, pero la de Unipile API de correo electrónico puede ayudar a cerrar la brecha.
¿Aún tiene preguntas? Nuestro equipo está aquí para ayudarte a integrar el punto final de correo electrónico de la API de Microsoft Graph en tu producto.
Hable con un experto
es_ESES