De la API REST de Outlook y EWS a Microsoft Graph: la guía de migración para desarrolladores de 2026

Unipile - Tabla de Contenidos
Guía de migración 2026

En API REST de Outlook & EWS a Microsoft Graph

La API REST de Outlook v2.0 ha desaparecido (marzo de 2024). Exchange Web Services (EWS) llega a su fin de vida útil el 1 de octubre de 2026. Esta guía cubre todos los puntos finales, flujos de OAuth y pasos de migración que necesita implementar antes de la fecha límite.

Fecha límite estricta de EWS: 1 de octubre de 2026. Microsoft confirmó que no habrá período de gracia para Exchange Online. Inicie su migración ahora.

graph-mail.js
// API REST de Outlook a través de Microsoft Graph // Reemplazar EWS SOAP con una única llamada REST const response = esperará fetch( 'https://graph.microsoft.com/v1.0/me/messages', { cabeceras: { 'Authorization': "Portador ${accessToken}, 'Content-Type': aplicación/json } } ); const { value: mensajes } = await respuesta.json(); consola.log(`Se han recuperado ${messages.length} correos electrónicos`);
GET /me/messages - 200 OK - Se devolvieron 12 mensajes
¿Qué es?

¿Cuál es la API REST de Outlook en 2026?

El término "API de REST de Outlook" causa confusión en 2026 porque Microsoft lo ha utilizado para describir al menos tres cosas distintas en la última década. Aquí está el significado preciso actual, por qué sigue siendo importante para los desarrolladores y qué ha cambiado.

Definición En 2026, "API de REST de Outlook" es un término coloquial que se refiere a los puntos de conexión de correo de Microsoft Graph (https://graph.microsoft.com/v1.0/me/messages). La API REST original dedicada de Outlook v2.0 (outlook.office.com/api/v2.0fue desmantelada permanentemente el 31 de marzo de 2024, devolviendo HTTP 410 Gone para todas las solicitudes. Microsoft Graph es ahora la API única y unificada para correo, calendario y contactos en Microsoft 365, Exchange Online, Outlook.com y Teams.

Esto es importante en 2026 por dos razones: primero, cualquier aplicación que todavía haga referencia al antiguo outlook.office.com/api/ El dominio está roto. En segundo lugar, las aplicaciones que utilizan Exchange Web Services (EWS), el protocolo más antiguo basado en SOAP, se enfrentan a una fecha límite de aplicación estricta del 1 de octubre de 2026 para Exchange Online. Comprender la nomenclatura correcta es el primer paso para una migración exitosa.

Aclaración de nombres
Nombre Protocolo URL base Estado en 2026
API REST de Outlook v2.0 REST / JSON outlook.office.com/api/v2.0 Muerto (Mar 2024)
Servicios Web de Exchange (EWS) SOAP / XML outlook.office365.com/EWS/ Fin de vida oct 2026
API de Correo de Microsoft Graph REST / JSON graph.microsoft.com/v1.0/me/messages En vivo - Usa esto
MAPI / Outlook COM COM / Binario Solo escritorio Solo escritorio

Para una inmersión profunda en la integración de Microsoft Graph más allá del correo (webhooks, consultas delta, buzones compartidos), consulta la Guía de integración de correo electrónico con la API de Microsoft Graph. La guía de pilares que cubre todos los patrones de API de correo electrónico se encuentra en Guía del desarrollador de la API de correo electrónico.

¿Construyendo sobre Outlook en 2026? Unipile te ofrece una API de correo electrónico unificada que maneja Microsoft Graph, Gmail e IMAP con una sola integración, sin necesidad de migrar por proveedor.

Constrúyelo con Unipile
Cronología

De v2.0 a Microsoft Graph: Una breve historia

La depreciación de la API REST de Outlook v2.0 no fue repentina: Microsoft la anunció con años de antelación, con múltiples extensiones de plazo. Comprender esta historia te ayuda a anticipar lo que Microsoft hará con EWS y por qué el plazo de octubre de 2026 se considera final.

2015 - 2017
Outlook REST API v2.0 se lanza

Microsoft presenta una API basada en REST en outlook.office.com/api/v2.0 Como alternativa moderna a EWS. Los desarrolladores pueden leer correos, administrar eventos del calendario y acceder a contactos a través de JSON sobre HTTPS, una mejora significativa sobre SOAP/XML.

2019
Microsoft Graph Emerge como la API Unificada

Microsoft lanza Microsoft Graph como un único punto de acceso que cubre todos los servicios de Microsoft 365: correo electrónico, calendario, contactos, Teams, OneDrive, SharePoint y más. graph.microsoft.com el dominio se convierte en la forma canónica de acceder a los datos de Microsoft de forma programática.

Noviembre de 2020
Anuncio de obsolescencia para la API v2.0 de Outlook REST

Microsoft anuncia oficialmente la deprecación de la API REST de Outlook v2.0 (y v1.0 beta), citando Microsoft Graph como el reemplazo. El anuncio establece explícitamente que los puntos de conexión antiguos dejarán de funcionar, con una fecha límite de "finales de 2022" en ese momento.

2022 - 2023
Múltiples extensiones de plazo

Microsoft extiende la fecha límite dos veces, primero hasta noviembre de 2022, luego hasta marzo de 2023, y después hasta marzo de 2024. Cada extensión vino con una advertencia: "esta es la última extensión". Muchos desarrolladores tomaron estas extensiones como una señal de que las fechas límite eran flexibles. La fecha límite de EWS de octubre de 2026 se está aplicando de manera más estricta.

31 de marzo de 2024
Outlook REST API v2.0 Devuelto permanentemente

En outlook.office.com/api/v2.0 el endpoint devuelve HTTP 410 Gone para todas las solicitudes. No más extensiones. Cualquier aplicación que siga llamando a estas URL está rota. La "API REST de Outlook" ahora significa Microsoft Graph cuando se usa correctamente. Para la guía de integración completa de los endpoints de correo de Microsoft Graph, consulte Guía de integración de correo electrónico con la API de Microsoft Graph.

1 de octubre de 2026
Fin de vida útil de EWS para Exchange Online

Exchange Web Services dejará de funcionar para Exchange Online (nube de Microsoft 365). Microsoft ha confirmado que esta es una fecha de aplicación estricta. Los servidores Exchange locales no se ven afectados. Todas las aplicaciones basadas en la nube que utilizan llamadas a EWS de SOAP/XML deben haber migrado a Microsoft Graph antes de esta fecha.

Por qué esta migración fue inevitable

Seguridad moderna de OAuth 2.0

Las API más antiguas dependían de Basic Auth y formatos de token heredados. Microsoft Graph exige OAuth 2.0 con Azure Active Directory, alineándose con los modelos de seguridad de confianza cero y eliminando los riesgos de exposición de credenciales.

Plataforma de Identidad Unificada

Microsoft Graph consolida el acceso a todos los servicios de Microsoft 365 a través de una única plataforma de identidad. Un registro de aplicación, un token, un prefijo de punto de conexión, en lugar de mantener credenciales separadas por API heredadas.

Capacidades más ricas

Microsoft Graph expone características que EWS nunca tuvo: consultas delta para sincronización incremental, notificaciones de cambios (webhooks), búsqueda en todo el contenido, integración de Teams y análisis específicos de Graph, todo a través de REST/JSON limpios.

Unipile - Fin de vida útil de EWS
Fecha límite crítica

La fecha límite real de 2026: Fin de vida útil de EWS (1 de octubre de 2026)

Si bien la depreciación de la API REST de Outlook v2.0 afectó a un grupo relativamente pequeño de desarrolladores, la finalización de EWS para Exchange Online es un evento mucho mayor. Miles de aplicaciones empresariales, clientes de correo electrónico, herramientas de sincronización de calendarios y soluciones de copias de seguridad todavía dependen de Exchange Web Services. El 1 de octubre de 2026 es el cambio definitivo: esto es lo que necesita saber.

Fecha límite rígida de EWS: 1 de octubre de 2026 - Sin período de gracia

Ámbito: Exchange Online (nube de Microsoft 365) únicamente. Los servidores Exchange locales no se ven afectados. Aplicación: Microsoft confirmó que se trata de una interrupción total: las solicitudes de EWS a Exchange Online dejarán de procesarse. ¿Qué se rompe? todas las llamadas SOAP/XML a outlook.office365.com/EWS/Exchange.asmx, incluidas las aplicaciones que utilizan la biblioteca .NET EWS Managed API, flujos de autenticación Kerberos/NTLM y Autenticación básica sobre EWS.

¿A quién afecta?

  • Clientes de correo personalizados creados sobre EWS Managed API
  • Complementos de Outlook que utilizan llamadas EWS (no basadas en Graph)
  • Aplicaciones de sincronización de calendarios (reservas de salas, programación)
  • Herramientas de copia de seguridad y archivo de correo electrónico
  • Integraciones de sincronización de correo electrónico CRM / ATS
  • Cualquier aplicación que use ExchangeService .Clase de .NET

Qué deja de funcionar

  • Autenticación NTLM y Kerberos
  • Autenticación básica sobre EWS (ya obsoleto)
  • API administrada de EWSMicrosoft.Exchange.WebServices)
  • Notificaciones de transmisión a través de EWS
  • Impersonación de EWS (Impersonación de Exchange)
  • Operaciones SOAP: GetItem, FindItems, SyncFolderItems

Qué NO se ve afectado

  • Exchange 2016 / 2019 / SE EWS local
  • API de Microsoft Graph (este es el destino de la migración)
  • IMAP / SMTP para envío/recepción básicos
  • ActiveSync (obsoleto por separado)
  • la aplicación de escritorio Outlook propiamente dicha (usa MAPI propietario)

Cronología de la Migración: Realidad

  • Aplicación sencilla con 1-2 operaciones de EWS: 1-2 semanas
  • Aplicación de complejidad media (correo + calendario + contactos): 4-8 semanas
  • Aplicación empresarial con suplantación de EWS: 8-16 semanas
  • Dependencia del proveedor (esperando actualización de la biblioteca): no controlada
  • Pruebas + UAT (Pruebas de Aceptación de Usuario) + despliegue en producción: añadir 2-4 semanas

¿Tienes un plazo ajustado para la migración de EWS? La API unificada de correo electrónico de Unipile abstrae Microsoft Graph (y Gmail e IMAP) para que migre una vez y no vuelva a tocar código específico del proveedor. Ver Guía completa de la API de correo electrónico para patrones de arquitectura.

Comienza tu migración
Referencia API

Puntos finales de la API REST de Outlook en 2026 (a través de Microsoft Graph)

Toda la funcionalidad de la API REST de Outlook ahora se ofrece a través de Microsoft Graph en https://graph.microsoft.com/v1.0. A continuación, se muestran los puntos finales clave de correo, calendario y contactos con sus métodos HTTP y un ejemplo de código para cada categoría.

Puntos de conexión de correo

Método Punto final Descripción Alcance requerido
GET /yo/mensajes Mostrar los mensajes de la bandeja de entrada (admite $filter, $orderby, $top, $select) Mail.Read
GET /yo/mensajes/{id} Obtener un solo mensaje por ID con cuerpo y encabezados completos Mail.Read
POST /yo/enviarCorreo Enviar un correo electrónico nuevo inmediatamente (no se guardará como borrador) Mail.Enviar
POST /yo/mensajes Crear un borrador de mensaje (enviar por separado vía /send) Mail.ReadWrite
PATCH /yo/mensajes/{id} Actualizar un mensaje (marcar como leído, mover, cambiar categorías) Mail.ReadWrite
BORRAR /yo/mensajes/{id} Eliminar un mensaje permanentemente Mail.ReadWrite
GET /yo/carpetasDeCorreo Listar todas las carpetas de correo (Bandeja de entrada, Enviados, Borradores, personalizadas) Mail.Read
GET /yo/mensajes/delta Sincronización incremental - obtener solo los mensajes cambiados desde la última sincronización Mail.Read
send-mail.js
// POST /me/sendMail - Enviar a través de la API REST de Outlook (Microsoft Graph) const response = await fetch('https://graph.microsoft.com/v1.0/me/sendMail', { método: POST, cabeceras: { 'Authorization': "Portador ${accessToken}, 'Content-Type': aplicación/json }, cuerpo: JSON.stringify({ message: { tema: 'Hola desde Microsoft Graph', cuerpo: { tipoContenido: 'Texto', contenido: '¡Migración de EWS completada!' }, destinatarios: [{ dirección de correo electrónico: { dirección: 'user@example.com' } }] }, guardarEnElementosEnviados: true }) }); 202 Aceptado = enviado correctamente

Puntos finales del calendario

Método Punto final Descripción Alcance requerido
GET /yo/eventos Mostrar todos los eventos del calendario (admite el filtro $ por fecha de inicio/fin) Calendarios.Leer
GET /yo/vistaCalendario Obtener eventos en un rango de tiempo (parámetros startDateTime + endDateTime) Calendarios.Leer
POST /yo/eventos Crear un nuevo evento de calendario con asistentes y recurrencia Calendarios.LeerEscribir
GET /yo/calendarios Listar todos los calendarios de usuario (primario, compartido, de grupo) Calendarios.Leer

Puntos de contacto

Método Punto final Descripción Alcance requerido
GET /yo/contactos Listar todos los contactos en la carpeta de contactos predeterminada Contactos.Lectura
POST /yo/contactos Crear un nuevo contacto Contactos.LeerEscribir
GET /yo/carpetasDeContacto Listar carpetas de contacto Contactos.Lectura

¿Quieres una API única que admita Outlook REST (Microsoft Graph), Gmail e IMAP? Unipile integra los tres con un único punto final unificado. Compare proveedores en comparación de proveedores de API de correo electrónico.

Construye con API Unificada
Autenticación

Autenticación OAuth 2.0: La Única Vía a Seguir

NTLM, Kerberos y la autenticación básica ya no están disponibles para Microsoft 365. OAuth 2.0 es ahora el método de autenticación obligatorio para cada solicitud de la API de Microsoft Graph. No hay opción de respaldo, ni modo de compatibilidad, ni extensión de plazo. Si su aplicación todavía utiliza flujos de autenticación heredados, ya está bloqueada para los nuevos inquilinos y dejará de funcionar por completo para todos los inquilinos cuando se complete la aplicación de EWS en octubre de 2026.

Estado de autenticación heredado (mayo de 2026): NTLM y Kerberos están completamente deshabilitados para Exchange Online. La autenticación básica se retiró para Exchange Online en octubre de 2022. OAuth 2.0 a través de Azure AD es el único método de autenticación aceptado para Microsoft Graph.

Registro de aplicaciones de Azure AD: 5 pasos

01
Crear un registro de aplicación en Azure AD
Ir a portal.azure.com - Azure Active Directory - Registros de aplicaciones - Nueva inscripción. Elija un nombre, establezca el tipo de cuenta admitida (un solo inquilino, multiinquilino o cuentas personales) y configure una URI de redireccionamiento.
02
Configurar permisos de API
Debajo Permisos de API, agrega permisos de Microsoft Graph. Elige permisos Delegados (contexto de usuario) o de Aplicación (demonio) según tu caso de uso. La mayoría de las integraciones de correo electrónico/calendario usan permisos Delegados.
03
Crear un secreto de cliente (o certificado)
Debajo Certificados y secretos, crea un nuevo secreto de cliente. Copia el valor inmediatamente, solo se muestra una vez. Para aplicaciones en producción, un certificado es más seguro que un secreto de cliente.
04
Implementar el flujo de código de autorización
Redirige a los usuarios a https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize con client_id, alcance, uri_redireccionamientoy tipo_respuesta=código. Después de obtener el consentimiento, intercambie el código por tokens en el punto final de tokens.
05
Solicitar el consentimiento del administrador si es necesario
Algunos ámbitos (como Mail.ReadWrite.All) requieren consentimiento del administrador del inquilino antes de que cualquier usuario pueda autorizar. Para estos, use el punto final de consentimiento del administrador: /consentimientoadmin fluir con una cuenta de administrador de inquilino.

Alcances de OAuth requeridos para la API de Graph

Desplazarse horizontalmente para ver la tabla completa
Alcance Tipo Caso práctico
Mail.Read Delegado Leer mensajes del buzón del usuario
Mail.ReadWrite Delegado Leer y modificar mensajes del buzón
Mail.Enviar Delegado Enviar correo electrónico en nombre del usuario
Calendarios.LeerEscribir Delegado Leer y modificar eventos del calendario
Contactos.Lectura Delegado Leer contactos del usuario
Mail.ReadWrite.All Aplicación Leer/escribir todos los buzones (aplicaciones de demonio, requiere consentimiento de administrador)
Calendarios.LeerEscribir.Todos Aplicación Leer/escribir todos los calendarios (aplicaciones de demonio, requiere consentimiento de administrador)
acceso_sin_conexión Delegado Se requiere recibir un token de actualización para acceso a largo plazo

Flujo de Código de Autorización - Ejemplo de Node.js

JavaScript (Node.js)
// Paso 1: Construir la URL de autorización
const urlDeAutenticación = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize?`
  + new URLSearchParams})({
    client_id: ID_CLIENTE,
    response_type: 'código',
    redirect_uri: URI_DE_REDİRİCCİON,
    ámbito: 'Mail.Read Mail.Send Calendars.ReadWrite offline_access',
    modo_de_respuesta: 'consulta'
  });

// Paso 2: Intercambiar código por tokens
const tokenRes = await fetch(
  `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,
  método: POST,
    cuerpo: new URLSearchParamsclient_id: ID_CLIENTE,
      client_secret: SECRETO_CLIENTE,
      código: authCode,
      redirect_uri: URI_DE_REDİRİCCİON,
      grant_type: 'código_autorización'
    })
  }
);
const { access_token, refresh_token } = await tokenRes.json();

// Paso 3: Actualizar cuando el token de acceso expire (normalmente 1 hora)
const refrescaRes = await fetchtokenEndpoint, {
  método: POST,
  body: new URLSearchParams})({
    client_id: ID_CLIENTE,
    client_secret: SECRETO_CLIENTE,
    token_de_actualización: tokenDeActualizaciónAlmacenado,
    grant_type: 'token_de_actualización'
  })
});
Manejo del token de actualización: Los tokens de acceso de Microsoft Graph expiran después de 1 hora. Almacena el token de actualización de forma segura en tu base de datos y utilizarlo para solicitar nuevos tokens de acceso sin necesidad de que el usuario se reautentique. Los tokens de actualización pueden caducar después de 90 días de inactividad. Solicita siempre el acceso_sin_conexión alcance para recibir un token de actualización.
Plan de acción

Lista de verificación de migración: EWS a Microsoft Graph en 10 pasos

Microsoft ha confirmado la aplicación estricta de la deprecación de EWS para Exchange Online el 1 de octubre de 2026. No habrá período de gracia, opción de reversión ni puente de compatibilidad. Todas las aplicaciones que sigan utilizando Exchange Web Services para Microsoft 365 dejarán de funcionar en esa fecha.

Fecha límite estricta: 1 de octubre de 2026. Sin extensiones. Sin modo de compatibilidad. Planifique su migración ahora: una aplicación EWS compleja puede tardar de 4 a 8 semanas en migrar completamente a Microsoft Graph.
01
Audita tu uso actual de EWS
Inventaría todas las llamadas de EWS en su código base: operaciones de correo, sincronización de calendario, consultas de contactos, notificaciones push/pull/streaming. Esto determinará el alcance y la estimación del esfuerzo de su migración.
02
Registrar una aplicación de Azure AD y definir alcances
Registra tu aplicación en Azure portal. Define los ámbitos mínimos requeridos de Microsoft Graph para tu caso de uso. Solicita solo lo que necesites: evita permisos excesivos.
03
Mapear operaciones de EWS a puntos de conexión de Graph
Tabla de traducción: FindItem se convierte en GET /me/messages CreateItem se convierte en POST /me/sendMail FindAppointments se convierte en GET /me/events Microsoft proporciona una guía oficial de mapeo de EWS a Graph.
04
Reemplazar llamadas WCF/SOAP con llamadas HTTP REST
EWS usa SOAP sobre HTTP. Microsoft Graph usa REST estándar con JSON. Elimina todas las clases proxy de WCF, la serialización XML de SOAP y las dependencias de la API administrada de EWS de tu código base.
05
Migrar la autenticación de protocolos heredados a OAuth 2.0
Reemplace NTLM, Kerberos o Basic Auth con el flujo de código de autorización OAuth 2.0. Implemente la lógica de actualización de tokens utilizando el alcance offline_access para mantener el acceso a largo plazo.
06
Prueba en el inquilino de desarrollo con el Explorador de Microsoft Graph
Usa Graph Explorer (developer.microsoft.com/graph/graph-explorer) para prototipar y probar llamadas a la API antes de escribir código. Configura un tenant de desarrollo separado para evitar probar contra buzones de correo de producción.
07
Implementa consultas delta para sincronización incremental
Reemplace EWS SyncFolderItems con consultas delta de Graph (GET /me/messages/delta). Almacene el token deltaLink para permitir una sincronización incremental eficiente; solo se devuelven los cambios desde la última consulta.
08
Manejar el estrangulamiento: HTTP 429 y Retry-After
Microsoft Graph aplica estrictos límites de frecuencia. Implemente retroceso exponencial: cuando reciba HTTP 429, lea la cabecera Retry-After y haga una pausa durante exactamente esa duración antes de reintentar.
09
Actualizar el manejo de errores para el formato de error de Graph
Los errores de Graph utilizan un formato diferente al de las fallas SOAP de EWS. Analiza el objeto de error JSON: { "error": { "code": "...", "message": "..." } }. Actualiza todo tu manejo de errores y registro en consecuencia.
Plazo
10
Corte de producción antes del 1 de octubre de 2026
Planifique su transición de producción al menos 4 semanas antes de la fecha límite. Ejecute EWS y Graph en paralelo durante un período de transición para validar la corrección antes de desmantelar completamente la capa EWS.
Migra a Unipile y saltar 8 de 10 pasos - No registro de aplicaciones en Azure, no flujos de OAuth, no lógica de limitación para administrar.
Construir
Ejemplos de código

Ejemplos de Migración de Código: EWS vs Microsoft Graph

A continuación se comparan lado a lado 4 operaciones comunes: el enfoque heredado SOAP de EWS en la izquierda, el equivalente REST de Microsoft Graph en la derecha. El cambio de XML verboso a JSON limpio es inmediatamente aparente.

1 Leer mensajes de la bandeja de entrada
EWS - FindItem SOAP Obsoleto
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  
    <EncontrarElemento Recorrido="Superficial"
      xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      
        Por defecto
      
      <IndexedPageItemView
        MaxEntriesReturned="10"
        Desfase="0"
        PuntoBase="Comienzo"/>
      
        <t:DistinguishedFolderId Yo="bandeja de entrada"/>
      
    
  
Microsoft Graph REST Actual
GET /yo/mensajes
  ?$select=asunto,de,receivedDateTime,bodyPreview
  &$top=10
  &$derbi=receivedDateTime descendente

Autorización: Portador {access_token}

// Respuesta (JSON):
{
  "valor": [
    {
      "id": "AAMkAGI...",
      "Asunto": "Hola",
      "de": {
        "dirección de correo electrónico": {
          "dirección": "sender@example.com"
        }
      },
      "fechaYHoraDeRecepción": "2026-05-27T..."
    }
  ],
  "@odata.nextLink": "https://..."
}
2 Enviar un correo electrónico
EWS - CrearItem SOAP Obsoleto
CrearArtículo MensajeDisposición="EnviarYGuardarCopia"
  xmlns="http://schemas.microsoft.com/.../mensajes">
  
    
      Hola desde EWS
      <t:Cuerpo Tipo de Cuerpo="HTML">
        

Cuerpo del mensaje

to@example.com
Microsoft Graph REST Actual
POST /yo/enviarCorreo
Autorización: Portador {access_token}
Content-Type: application/json

{
  "mensaje": {
    "Asunto": "Hola desde Graph",
    "cuerpo": {
      "tipoDeContenido": "HTML",
      "contenido": "

Cuerpo del mensaje

"
}, "destinatarios": [ { "dirección de correo electrónico": { "dirección": "to@example.com" } } ] }, "guardarEnEnviados": true } Respuesta: HTTP 202 Aceptado (sin cuerpo)
3 Obtener eventos del calendario
EWS - Buscar Citas SOAP Obsoleto
<EncontrarElemento Recorrido="Superficial">
  
    Todas las propiedades
  
  <VistaCalendario
    MaxEntriesReturned="50"
    Fecha de inicio="2026-05-01T00:00:00Z"
    Fecha de finalización="31/05/2026 23:59:59"
  />
  
    <t:DistinguishedFolderId
      Yo="calendario"/>
  
Microsoft Graph REST Actual
GET /mis/eventos
  ?$select=asunto,inicio,fin,ubicación,organizador
  &$filter=inicio/fechaHora ge '2026-05-01T00:00:00Z'
    y fin/dateTime el '2026-05-31T23:59:59Z'
  &$top=50
  &$derbi=inicio/fechaHora asc

Autorización: Portador {access_token}

// Devuelve una matriz JSON limpia de
objetos de evento del calendario - sin análisis XML
4 Suscríbete a cambios en tiempo real
EWS - Notificaciones de transmisión Obsoleto

  
    
      <t:DistinguishedFolderId
        Yo="bandeja de entrada"/>
    
    
      EventoNuevoCorreo
      EventoEliminado
    
  
Suscribirse



Webhooks de Microsoft Graph Actual
POST /suscripciones
Autorización: Portador {access_token}
Content-Type: application/json

{
  "tipo de cambio": "creado,actualizado,eliminado",
  "urlDeNotificación": "https://miaplicacion.com/webhook",
  "recurso": "/yo/mensajes",
  "fechaDeExpiracion": "2026-06-03T18:00:00Z",
  "estadoCliente": "tu-estado-secreto"
}

// Gráfica las publicaciones a tu URL en cada cambio.
Renovar suscripción antes de que expire.
// No se requiere conexión persistente.
Cuidado

Puntos débiles comunes: Permisos, Límites de frecuencia, Estrangulamiento

Incluso los desarrolladores con experiencia en Exchange Web Services encuentran los mismos obstáculos al migrar a Microsoft Graph. Estas 6 trampas son responsables de la mayoría de los incidentes de producción durante la migración. Comprenderlas ahora le ahorra días de depuración más adelante. Para una perspectiva más amplia sobre cómo se comparan estos desafíos entre proveedores, consulte nuestro comparación de proveedores de API de correo electrónico.

Permisos de aplicación vs. permisos delegados
Esta es la confusión más común. Delegado Los permisos actúan en nombre de un usuario que ha iniciado sesión. Aplicación los permisos actúan como un servicio sin contexto de usuario y requieren consentimiento de administrador.
TipoContextoConsentimiento del administrador
DelegadoUsuario conectadoA veces
AplicaciónNo usuario / demonioSiempre
Límites de estrangulamiento: HTTP 429 y Retry-After
Microsoft Graph impone un límite de aproximadamente 10,000 solicitudes cada 10 minutos por aplicación y por tenant. Cuando se limita, recibes HTTP 429 with a Reintentar después encabezado que especifica el tiempo de espera en segundos. Ignorar este encabezado y reintentar inmediatamente resulta en una prohibición extendida. Siempre implemente el retroceso exponencial con el valor exacto de Retry-After.
Paginación vía @odata.nextLink
Graph pagina los resultados con un tamaño de página predeterminado (típicamente 10 mensajes). Si no comprueba @odata.nextLink En la respuesta, se omiten datos silenciosamente. Siempre bucle: si @odata.nextLink si está presente, haz otra solicitud GET a esa URL (incluye el token de omisión) hasta que el campo esté ausente.
Consentimiento del administrador para ámbitos sensibles
Alcances como Mail.ReadWrite.All, Calendarios.LeerEscribir.Todosy Usuario.Leer.Todos requiere que un administrador de inquilinos otorgue el consentimiento antes de que cualquier usuario pueda autorizar su aplicación. Sin el consentimiento del administrador, el flujo de OAuth devuelve un AADSTS65001 error. Utiliza el /consentimientoadmin punto de conexión durante la incorporación de aplicaciones para clientes empresariales.
Estado de consulta delta: gestionando deltaLink
Las consultas Delta devuelven los cambios desde tu última sincronización, identificados por un deltaLink token en la página final. Almacena este token de forma persistente; es tu cursor de sincronización. Si lo pierdes, deberás realizar una resincronización completa. Nunca codifiques un rango de tiempo fijo; utiliza el deltaLink para evitar procesar duplicados o cambios faltantes.
Manejo de archivos adjuntos: límite de tamaño de 3 MB
Los archivos adjuntos de menos de 3 MB se pueden incluir en línea en una sola llamada a la API. Para archivos de más de 3 MB, primero debes crear una sesión de carga (POST /yo/mensajes/{id}/archivos adjuntos/crearSesiónDeCarga) y subir en fragmentos. Intentar incrustar un archivo adjunto grande resulta en un 413 Entidad de solicitud demasiado grande error.
Enfoque de API Unificado

Evita el Dolor de Cabeza de la Migración: Enfoque de API Unificada de Correo Electrónico

Una migración completa de EWS a Graph para una aplicación compleja lleva de 4 a 8 semanas de tiempo de ingeniería. Necesitas registrar aplicaciones de Azure, implementar flujos OAuth, manejar la actualización de tokens, gestionar la limitación de velocidad, reescribir cada llamada SOAP, actualizar el manejo de errores y probar en todos los entornos. Luego, hazlo de nuevo cuando Microsoft cambie algo.

Unipile abstrae Microsoft Graph, Gmail e IMAP bajo una única API unificada. Autenticas a tus usuarios una vez a través de Unipile y lees/envías correos electrónicos, sincronizas calendarios y administras contactos en los tres proveedores con los mismos endpoints: sin registro de aplicaciones de Azure, sin flujos de OAuth por proveedor, sin lógica de limitación que mantener. Ver nuestro Guía completa de la API de correo electrónico y comparativa de proveedores de API de correo electrónico para entender el panorama.

50 líneas de Microsoft Graph vs 5 líneas de Unipile

Microsoft Graph - Leer bandeja de entrada (nativo) ~50 líneas
// 1. Registro de aplicaciones de Azure (portal.azure.com)
// 2. Flujo de código de autorización OAuth
const authUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize?`
  + new URLSearchParamsclient_id: CLIENT_ID,
      response_type: 'código',
      redirect_uri: REDIRECT_URI,
      scope: 'Mail.Read offline_access',
      modo_respuesta: 'consulta'
    });
// 3. Manejar redirección, intercambiar código por tokens
const tokenRes = await fetch(`https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`, {
  método: POST,
  body: new URLSearchParams({
    client_id: ID_CLIENTE, client_secret: SECRETO_CLIENTE,
    code: codigoAuth, redirect_uri: URI_REDireccion,
    grant_type: 'código_autorización'
  })
});
const { access_token, refresh_token } = await tokenRes.json();
// 4. Almacenar tokens de acceso y actualización al caducar (cada hora)
// 5. Llamada gráfica con token de portador
const res = await fetch('https://graph.microsoft.com/v1.0/me/messages?$pagina=10', {
  encabezados: { Autorización: `Bearer ${access_token}` }
});
// 6. Manejar limitaciones (HTTP 429 + Reintentar-Después)
si (res.status === 429) {
  const retryAfter = res.headers.consiga('Reintentar después de');
  await dormir(retryAfter * 1000);
  // reintentar...
}
// 7. Paginación a través de @odata.nextLink
const datos = await res.json();
dejar mensajes = datos.valor;
mientras (datos['@odata.nextLink']) { /* ... */ }
Unipile - Leer bandeja de entrada (API unificada) 5 líneas
// Sin aplicación de Azure, sin flujos de OAuth que implementar,
// sin lógica de limitación, sin actualización de tokens.
// Funciona para Outlook Y Gmail Y IMAP.

const cliente = new UnipileClient(CLAVE_API);

const mensajes = await cliente.email.listaMensajes({
  account_id: userAccountId, cuenta vinculada
  carpeta: 'BANDEJA DE ENTRADA',
  limit: 10
});

// Mismo código, mismo formato de respuesta
// para Outlook, Gmail e IMAP.
// Unipile maneja OAuth, limitación de peticiones,
// paginación y actualización de tokens.
SOC 2 Tipo II
Conformidad con el GDPR
CASA Nivel 2
Acuerdo de nivel de servicio (SLA) con un tiempo de actividad del 99,991 %
Outlook + Gmail + IMAP
Deja de reconstruir la misma plomería de OAuth
Lea correos electrónicos, envíe mensajes, sincronice calendarios entre Outlook, Gmail e IMAP con una sola API. Unipile maneja la complejidad de la migración de EWS a Graph para que su equipo implemente funciones en lugar de flujos de autenticación.
Empieza a construir con Unipile
Unipile - Preguntas frecuentes sobre Outlook REST API y EWS

API REST de Outlook y EWS - Preguntas frecuentes

Preguntas frecuentes sobre la jubilación de la API REST de Outlook, la depreciación de EWS y la migración a Microsoft Graph

No. La API REST de Outlook (v2.0 y beta) fue retirada por Microsoft. Todas las solicitudes a los puntos de conexión REST heredados de Outlook ahora fallan. El reemplazo oficial es Microsoft Graph, lo que cubre todas las mismas operaciones de correo electrónico y calendario, además de mucho más. Si tu aplicación todavía utiliza puntos de conexión de Outlook REST, la migración a Graph no es opcional.

La API REST de Outlook era una API REST dedicada que cubría únicamente las operaciones del buzón de correo de Outlook. Microsoft Graph es la API unificada para todo el ecosistema de Microsoft 365: correo de Outlook, calendario, contactos, Teams, SharePoint, OneDrive y más. Ambas utilizan la autenticación OAuth 2.0, pero Graph utiliza la URL base única. https://graph.microsoft.com/v1.0 y ofrece una interfaz más consistente y rica en funciones que los puntos finales específicos de Outlook retirados.

Microsoft ha establecido 1 de octubre de 2026 como la fecha de aplicación estricta para la desaprobación de EWS en Exchange Online (Microsoft 365). Después de esta fecha, EWS dejará de funcionar para los buzones de Microsoft 365. No hay período de gracia ni extensión anunciada. EWS seguirá funcionando para las instalaciones de Exchange Server locales, que no se ven afectadas por esta fecha límite.

Microsoft Graph es el reemplazo oficial de EWS. Cada operación de EWS tiene un equivalente en Graph: BuscarArtículo se convierte GET /yo/mensajes, CrearArtículo (enviar correo electrónico) POST /yo/enviarCorreo, las notificaciones de transmisión se convierten en webhooks de Graph a través de POST /suscripciones. Los cambios de autenticación de NTLM/Kerberos/Basic Auth a OAuth 2.0 a través de Azure AD. Para los equipos que necesitan un camino más simple, una API de correo electrónico unificada como Unipile abstrae a los tres proveedores bajo un único SDK.

No. La API REST de Outlook v2.0 está obsoleta. Las solicitudes a esos puntos de enlace fallarán con errores. Microsoft Graph es la única vía admitida para la integración de correo electrónico y calendario de Outlook. Todas las integraciones nuevas deben dirigirse a https://graph.microsoft.com/v1.0 y utilizar autenticación OAuth 2.0.

El esfuerzo depende de la complejidad de la implementación de su EWS. Una integración simple con unas pocas operaciones de lectura/escritura suele llevar de 1 a 2 semanas. Una aplicación compleja con notificaciones de streaming, sincronización delta, operaciones en varias carpetas y un manejo de errores extenso puede llevar de 4 a 8 semanas. La migración requiere: registro de la aplicación en Azure AD, implementación de OAuth 2.0, reemplazo de endpoint por endpoint, lógica de limitación, actualizaciones de paginación y cambios en el formato de error. Una alternativa es utilizar Abstracción de Microsoft Graph de Unipile, lo que maneja la mayor parte de esta complejidad automáticamente.

El plazo de octubre de 2026 se aplica específicamente a Servicios Web de Exchange (EWS) uso en Exchange Online. Los complementos de Outlook que utilizan la API Office.js siguen una línea de tiempo separada. Sin embargo, Microsoft ha estado eliminando gradualmente los complementos heredados COM y VSTO en favor de los complementos de Office basados en web. Si su complemento realiza llamadas EWS internamente, esas llamadas dejarán de funcionar en octubre de 2026 independientemente del marco del complemento. Consulte la hoja de ruta de Microsoft 365 para obtener la guía más reciente específica para su tipo de complemento.

Dado que la API REST de Outlook está obsoleta, los ámbitos relevantes son para Microsoft Graph. Alcances principales del correo electrónico: Mail.Read (leer mensajes), Mail.Enviar (enviar correo electrónico), Mail.ReadWrite (leer y modificar mensajes), Calendarios.LeerEscribir (acceso al calendario), Contactos.Lectura (contactos). Incluir siempre acceso_sin_conexión para recibir un token de actualización. Alcances de nivel de aplicación como Mail.ReadWrite.All requiere el consentimiento del administrador del inquilino y solo debe usarse para escenarios de demonio sin contexto de usuario. Ver nuestro Guía OAuth de Microsoft Graph para un recorrido completo de configuración.

Microsoft Graph aplica límites de frecuencia de aproximadamente 10,000 solicitudes por cada 10 minutos por aplicación por inquilino. Cuando se limita, la API devuelve HTTP 429 Demasiadas solicitudes with a Reintentar después encabezado que especifica el número exacto de segundos a esperar. La regla crítica: siempre respete la Reintentar después valor exacto. Reintentar antes de que se cierre esa ventana extiende el período de limitación. Para aplicaciones SaaS multitenant donde cada inquilino tiene límites separados, la limitación en un inquilino no afecta a otros. Compare también IMAP como alternativa si la limitación de escala es una preocupación.

Unipile es una API de correo electrónico unificada que envuelve Microsoft Graph, Gmail e IMAP bajo un único SDK. En lugar de implementar los flujos OAuth de Microsoft Graph, gestionar tokens de acceso, manejar límites de velocidad y escribir código por proveedor, conectas las cuentas de tus usuarios a través de Unipile y utilizas una API consistente para los tres proveedores. Esto es particularmente efectivo para aplicaciones SaaS que necesitan soportar Outlook y Gmail simultáneamente sin mantener código de integración separado para cada uno. Unipile opera como un intermediario técnico independiente, actuando en nombre de cada usuario autenticado, y no está afiliado ni respaldado por Microsoft.

Omita la migración de EWS por completo. Nuestro equipo está aquí para ayudar.

Construir
es_ESES