Microsoft Graph API Email: Invia, Leggi e Sincronizza (Guida 2026)

API Microsoft Graph

Microsoft Graph API Email: Guida completa all'integrazione per Sviluppatori (2026)

18 min di lettura 17 aprile 2026 Python / Node.js / REST

L'API Microsoft Graph è l'endpoint REST unificato per accedere ai dati di posta elettronica di Outlook e Exchange: leggere, inviare, cercare e ricevere webhook per ogni evento della casella di posta. Questa guida ti accompagna nella configurazione di OAuth 2.0, esempi di codice live, limiti di frequenza e come unificare Microsoft Graph con Gmail e IMAP sotto un unico SDK.

API Microsoft Graph OAuth 2.0 Posta elettronica di Outlook MSAL Ganci web
leggi_email_outlook.py
import richieste # API Unificata per le Email di Unipile # Legge le email di Outlook tramite Microsoft Graph BASE = "https://api.unipile.com:13465/api/v1" INTÈSTAZIONI = { "X-API-KEY": "IL_TUO_TOKEN_DI_ACCESSO", "Accetta": "application/json" } def ottenere_email_outlook(id_account, limite=20): r = richieste.ottenere( {BASE}/email", headers=HEADERS, parametri={ "account_id": id_account, "limite"limite } ) return r.json()["email"] e-mail = ottenere_email_outlook("acc_outlook_123") per e in email: print(e["soggetto"], e["da"])
20 email recuperate da Outlook - tramite Microsoft Graph
Funziona con: Logo di Outlook Logo di Gmail Logo IMAP
Stai creando un'integrazione email?

Leggete la nostra Guida completa all'API Email - Flussi OAuth, sincronizzazione, invio e confronto dei provider.

Definizione

Cos'è l'API Microsoft Graph per le e-mail?

L'API Microsoft Graph è il gateway REST unificato per tutti i servizi Microsoft 365, tra cui e-mail, calendario, contatti e file. Nello specifico per le e-mail, espone l /v1.0/me/messaggi endpoint, offrendo agli sviluppatori un accesso programmatico a ogni casella di posta di Outlook ed Exchange. Ha sostituito i protocolli legacy (Basic Auth, EWS) ed è ora l'unico modo ufficialmente supportato per accedere programmaticamente alle e-mail di Outlook utilizzando OAuth 2.0.

Sviluppatore

Il Microsoft Graph API per email l'interfaccia RESTful espone i dati della cassetta postale di Microsoft 365 - inclusi messaggi, cartelle, allegati e impostazioni della cassetta postale - in base a https://graph.microsoft.com/v1.0/me/messages endpoint. Si autentica tramite Azure Active Directory OAuth 2.0, supporta le autorizzazioni delegate e di applicazione e abilita eventi in tempo reale tramite modifica iscrizioni alle notifiche (webhook). È la sostituzione raccomandata per tutti i flussi di autenticazione base deprecati.

Microsoft Graph API è la sostituzione consigliata Per l'autenticazione di base deprecata, tutto l'accesso alle e-mail di Outlook e Exchange richiede ora OAuth 2.0 tramite Graph. L'autenticazione di base è stata completamente ritirata nell'ottobre 2022.

Criterio API Microsoft Graph SMTP / IMAP diretto
Autenticazione OAuth 2.0 (MSAL) Nome utente + password (deprecato)
Limiti tariffari 10.000 richieste / 10 min per app Nessun limite standard (dipendente dal server)
Caratteristiche Completo: leggi, invia, cerca, webhook, cartelle Limitato: solo invio/ricezione di base
Complessità Flusso OAuth + Registrazione dell'app Azure Bassa configurazione, alta manutenzione
Supporto unipolare Nativo - nessun flusso OAuth necessario Nativo - Fallback IMAP
Vantaggi

Perché usare Microsoft Graph API per l'integrazione delle e-mail?

Costruire su Microsoft Graph offre alla tua applicazione un accesso sicuro basato su token al più grande ecosistema di posta elettronica aziendale del mondo: oltre 400 milioni di caselle di posta di Outlook ed Exchange. Ecco i quattro motivi principali per cui gli sviluppatori scelgono l'endpoint di posta elettronica dell'API Microsoft Graph.

Autenticazione OAuth 2.0 Unificata

Una singola Registrazione App di Azure copre tutte le cassette postali di Outlook, Exchange e Microsoft 365. Le autorizzazioni delegate consentono agli utenti di dare il consenso una sola volta; le autorizzazioni dell'applicazione consentono l'accesso lato server non presidiato senza alcuna interazione utente.

Accesso completo alla casella di posta

Leggi, invia, rispondi, sposta ed elimina messaggi. Gestisci cartelle, cerca nell'intera casella di posta, gestisci allegati e imposta regole di posta, tutto tramite la stessa interfaccia REST con uno schema di risposta JSON prevedibile.

Webhook in tempo reale

Abbonati alle notifiche di modifica della casella di posta e ricevi un POST HTTP al tuo endpoint ogni volta che arriva una nuova e-mail, un messaggio viene letto o una cartella viene modificata. Nessun polling, nessun ritardo: eventi consegnati quasi in tempo reale.

Supporto Exchange, Outlook e M365

Un singolo endpoint API copre account Outlook personali, tenant Microsoft 365 aziendali e server Exchange on-premises (tramite hybrid). Una singola integrazione gestisce l'intero ecosistema di posta elettronica Microsoft senza percorsi di codice separati.

Configurazione di Microsoft OAuth per le API di Outlook - Unipile

Configurazione di Microsoft OAuth per l'API di Outlook

Documentazione OAuth Microsoft

Per impostazione predefinita, la tua integrazione utilizza le credenziali OAuth di Unipile. Per ottenere un esperienza completamente personalizzabile quando gli utenti finali collegano il loro account Microsoft, crea la tua app in Microsoft Entra ID. Segui il 7 passi qui sotto per registrare la tua app, configurare i permessi e collegarla a Unipile.

1
2
3
4
5
6
7
01

Creare un account Microsoft Entra ID

Se non ne hai già uno, creane uno gratuito Microsoft Entra ID account (precedentemente Azure Active Directory). Questo è il portale di amministrazione dove registrerai la tua applicazione OAuth.

02

Registra una nuova app nel portale di Azure

Accedere a portal.azure.com, vai a Microsoft Entra ID, e clicca Nuova registrazione.

  • Dai il nome alla tua app: Questo nome sarà visibile ai tuoi utenti finali durante la schermata di consenso OAuth.
  • Tipi di account supportati: selezionare "Account in qualsiasi directory organizzativa (qualsiasi Microsoft Entra ID, multitenant) e account personali Microsoft" per supportare entrambi gli account Office 365 aziendali e personali.
Servizio Azure Active Directory
Nuova registrazione dell'app
03

Aggiungi URI di reindirizzamento

Vai al Autenticazione pannello e clicca Aggiungi URI sotto la sezione Web. Aggiungi 2 URI di reindirizzamento utilizzando il tuo DSN Unipile (disponibile nel Cruscotto Unipile, in alto a destra):

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

Configurare i permessi API

Vai a Autorizzazioni API > Aggiungi un'autorizzazione > Microsoft Graph, poi aggiungi quanto segue Permessi delegati:

Posta.Leggi
Mail.ReadWrite
Mail.Send

Per le funzionalità del calendario, aggiungi anche: Calendars.ReadWrite, Calendars.Read, Calendars.Read.Shared, Calendars.ReadWrite.Shared. Aggiungili anche nelle impostazioni degli ambiti del tuo Dashboard Unipile.

Aggiungi autorizzazione API
Scegli Microsoft Graph
Aggiungi autorizzazioni delegate
Schermata Autorizzazioni App
05

Crea un segreto per il client

Vai a Certificati e segreti, fare clic Nuovo segreto client. Nomina il segreto e imposta una scadenza 730 giorni (24 mesi), quindi fai clic su "Aggiungi".

Importante: Copia immediatamente il valore segreto. Non potrai più recuperarlo da questa pagina. Imposta un promemoria sul calendario prima della scadenza per evitare interruzioni del servizio.
Nuovo segreto client
Imposta data di scadenza
Copia Valore Segreto
06

Collegarsi al cruscotto Unipile

Vai al Cruscotto Unipile, naviga a Impostazioni > Microsoft OAuth.

  • Incolla il ID applicazione (client) dalla pagina Panoramica di Azure.
  • Incolla il valore segreto dalla pagina Certificati e segreti.
  • Fare clic Risparmiare.
Ora puoi iniziare a collegare gli account Microsoft a Unipile. I tuoi utenti finali vedranno il nome e il logo della tua app nella schermata di consenso OAuth.
07

Prova la connessione

Dalla Dashboard Unipile, attiva un nuovo collegamento all'account Microsoft per verificare che le tue credenziali OAuth personalizzate funzionino correttamente. Dovresti vedere il tuo nome dell'app e del branding nel prompt di consenso di Microsoft anziché quelli predefiniti di Unipile.

Richiesta di consenso Microsoft con editore verificato
Opzionale, per app di produzione
8
Diventa un Editore Verificato
Consigliato per la produzione, rimuove l'avviso "non verificato" nella schermata di consenso

Con la verifica, appare un segno di spunta blu nel prompt di consenso. Senza di essa, gli account professionali potrebbero visualizzare un avviso "editore non verificato".

Passaggio 1: Unisciti alla Microsoft Partner Network

Passaggio 2: Verifica il tuo dominio

Crea un file chiamato microsoft-identity-association.json e ospitarlo su:

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

Passaggio 3: Collega il tuo ID Partner Global Account (PGA)

  • Trova il tuo ID PGA tramite Partner Center.
  • Nel portale di Azure, vai a Registrazioni app > La tua app > Branding e proprietà, inserisci l'ID PGA e salva.

Per maggiori dettagli, vedere Documentazione di verifica di Microsoft Publisher.

9
Gestione di "Approvazione dell'amministratore richiesta"
Quando gli utenti finali vedono un blocco di consenso dal loro amministratore IT

Se un utente vede "Approvazione dell'amministratore richiesta", il consenso richiesto non è stato concesso a livello di tenant. Due metodi per risolvere questo problema:

Metodo 1: Richiesta di consenso amministratore in Microsoft Entra

Un amministratore Microsoft deve rivedere e approvare la richiesta di consenso amministrativo in sospeso. Vedi la Documentazione Microsoft sulla revisione delle richieste di consenso dell'amministratore.

Metodo 2: accesso OAuth come amministratore con consenso a livello di tenant

  • L'amministratore avvia il flusso di accesso OAuth dalla tua app.
  • Durante l'autorizzazione di Microsoft, l'amministratore deve selezionare: "Consenso per conto della tua organizzazione".
  • Ciò concede il consenso a tutti gli utenti dell'organizzazione e impedisce la richiesta di conferma per gli utenti futuri.

Completa i dettagli in Guida alla risoluzione dei problemi di consenso Microsoft.

Casi d'uso

Casi d'uso dell'API Microsoft Graph per le e-mail

L'endpoint email di Microsoft Graph API supporta una vasta gamma di applicazioni SaaS che si basano sulle caselle di posta di Outlook e Exchange. Questi sono i tre modelli di integrazione più comuni utilizzati oggi dai team che sviluppano su Graph API.

CRM - Sincronizzazione Contatti ed Email

Sincronizza le conversazioni e i contatti di Outlook direttamente nel tuo CRM. Abbina i mittenti ai record delle trattative esistenti, registra automaticamente ogni conversazione e visualizza la cronologia delle relazioni senza dover copiare e incollare manualmente da Outlook.

Guida alle API per le e-mail
ATS - Sistema di Tracciamento delle Candidature

Traccia le conversazioni via email dei candidati tra le caselle di posta di Outlook. Analizza le email di candidatura in arrivo, estrai gli allegati e indirizzali alla giusta pipeline di lavoro, tutto tramite l'endpoint email delle API di Microsoft Graph, senza alcun intervento manuale.

Invio di e-mail API
Support Tools - Smistamento Ticket

Converti le email in arrivo di Outlook in ticket di supporto. Utilizza i webhook di Graph per ricevere eventi di nuove email in tempo reale, classificare per oggetto o dominio del mittente e instradare alla coda del team giusto, sostituendo il triage manuale con logica automatizzata.

API unificata per e-mail
Caratteristiche

Funzionalità chiave dell'API Microsoft Graph per le e-mail

La Microsoft Graph API per le e-mail espone un set completo di funzionalità che vanno ben oltre le funzionalità di base di invio e ricezione. Ecco le sei funzionalità più importanti che ogni sviluppatore dovrebbe conoscere prima di creare sulla Microsoft Graph API per le e-mail.

Leggere, Inviare, e Rispondere

Recupera messaggi individuali o elenchi paginati. Invia nuove email o rispondi in linea. Sposta messaggi tra cartelle o contrassegnali come letti/non letti.

GET /v1.0/me/messaggi
Allegati

Caricare, scaricare ed elencare allegati di file su qualsiasi messaggio. Supporta allegati inline (incorporati) e caricamenti di file di grandi dimensioni tramite sessioni di caricamento per file superiori a 3 MB.

GET /v1.0/me/messages/{id}/allegati
Cartelle ed Etichette

Crea, rinomina ed elimina cartelle di posta elettronica. Elenca tutte le cartelle di posta elettronica, sposta i messaggi tra di esse e gestisci le gerarchie delle sottocartelle, identiche a quelle che gli utenti vedono in Outlook.

GET /v1.0/me/cartellePosta
Ricerca e Filtra

Utilizza i parametri di query OData ($filter,$search, $orderby) per trovare email per mittente, oggetto, intervallo di date o parola chiave. Supporta KQL per la ricerca full-text avanzata.

GET /me/messages?$cerca="progetto"
Iscrizioni webhook

Abbonati per ricevere notifiche di modifica degli eventi della casella di posta. Ricevi callback HTTP POST quasi in tempo reale quando arrivano nuove email, i messaggi vengono letti o le cartelle cambiano.

POSTA /v1.0/abbonamenti
Richieste batch

Unisci fino a 20 richieste API di Graph individuali in una singola chiamata HTTP utilizzando l'endpoint batch $. Riduce drasticamente i round-trip per operazioni come la lettura di email in blocco.

POSTA /v1.0/$batch
Esempi di codice

Come Inviare, Leggere e Sincronizzare le Email con Microsoft Graph API

Tre pattern pronti per la produzione che coprono le operazioni fondamentali di cui ogni sviluppatore ha bisogno: invio di email, lettura di messaggi con filtri e sincronizzazione delta incrementale per il monitoraggio della casella di posta in tempo reale.

POST /v1.0/me/sendMail — Python tramite Unipile
invia_email_outlook.py
import richieste # API Unificata per le Email di Unipile # Invia tramite Microsoft Graph — nessuna OAuth diretta richiesta BASE = "https://api.unipile.com:13465/api/v1" INTÈSTAZIONI = { "X-API-KEY": "IL_TUO_TOKEN_DI_ACCESSO", "Content-Type": "application/json" } def inviare_email_outlook(id_account, a, oggetto, corpo) carico utile = { "account_id": id_account, "a": [{"identificatore": a}], "soggetto"soggetto, "corpo"corpo } r = richieste.posta(f"{BASE}/email", intestazioni=HEADERS, json=payload) return r.json() # Esempio di utilizzo inviare_email_outlook( "acc_outlook_123", a="recipient@company.com", soggetto="Seguito della riunione", corpo="Ciao, in seguito alla nostra chiamata..." )
Email inviata tramite Microsoft Graph — account Outlook acc_outlook_123
API diretta di Grafi: POST https://graph.microsoft.com/v1.0/me/sendMail con messaggio.aiDestinatari, Oggetto del messaggio, e messaggio.corpo.contenuto. Unipile astrae il rinnovo del token OAuth e la gestione MIME. Vedi la Guida all'API per l'invio di email per il supporto degli allegati e la visualizzazione delle risposte in thread.
GET /v1.0/me/messages — filtra, seleziona, impagina
leggi_email_outlook.py
import richieste # Leggi le email di Outlook con filtri tramite Unipile BASE = "https://api.unipile.com:13465/api/v1" INTÈSTAZIONI = {"X-API-KEY": "IL_TUO_TOKEN_DI_ACCESSO"} def elenca_email_outlook(id_account, filtro_mittente=Nessuno, limite=20): parametri = { "account_id": id_account, "limite"limite } se filtro_mittente: # Mappa a $filter=from/emailAddress/address eq '...' parametri["da"] = filtro mittente r = richieste.ottenere(f"{BASE}/email", intestazioni=Intestazioni, parametri=parametri) return r.json().prendi("articoli", []) # Recupera le ultime 20 email da un mittente specifico e-mail = elenca_email_outlook("acc_outlook_123", filtro mittente="hr@acme.com") per e in email: print(e["soggetto"], e["da"], e["data"])
20 messaggi recuperati da Outlook — filtrati per dominio del mittente
Filtri OData supportati nativamente: $filtro, $ricerca, $seleziona, $ordina per, $sopra. Usa $ricerca="oggetto:fattura" per la ricerca full-text KQL. Gli allegati superiori a 3 MB richiedono un caricare sessione (POST /createUploadSession) — nessuna richiesta multimarparte singola.
GET /v1.0/me/mailFolders/inbox/messages/delta — sincronizzazione incrementale
delta_sync_outlook.py
import richieste # Delta Sync — scarica solo le email NUOVE dall'ultima sincronizzazione # Unipile gestisce il ciclo di vita di deltaToken automaticamente BASE = "https://api.unipile.com:13465/api/v1" INTÈSTAZIONI = {"X-API-KEY": "IL_TUO_TOKEN_DI_ACCESSO"} def sincronizza_nuove_email(id_account, cursore=Nessuno): """ Restituisce solo le email ricevute dall'ultima chiamata. cursore = token di paginazione opaco (conservare tra le chiamate). """ parametri = {"account_id": id_account se cursore parametri["cursore"] = cursore r = richieste.ottenere(f"{BASE}/email/sincronizzazione", intestazioni=Intestazioni, parametri=parametri) dati = r.json() return data.ottenere("articoli", []), dati.get("cursore") # Prima sincronizzazione — nessun cursore email, cursore_successivo = sincronizza_nuove_email("acc_outlook_123") # Memorizza next_cursor nel tuo DB, usalo per chiamate successive print(f"{len(emails)} nuove email — cursore successivo salvato")
Sincronizzazione delta completata — 0 chiamate API sprecate su messaggi già visti
Come funziona il delta nativamente su Graph: GET /me/cartellePosta/postaInArrivo/messaggi/delta restituisce un @odata.deltaLink alla prima chiamata. Salvalo e usalo la prossima volta — Il grafo restituisce solo la differenza. Nessun sondaggio completa piena la casella di posta = 10 volte meno chiamate API rispetto allo standard GET /messaggi. Unipile's /email/sincronizzazione endpoint incapsula questo pattern con gestione automatica dei token.
In tempo reale

Webhook di Microsoft Graph API per eventi di posta elettronica

Gli abbonamenti a Microsoft Graph (webhook) consentono al tuo server di ricevere notifiche POST HTTP nel momento in cui una e-mail viene ricevuta, letta, spostata o eliminata. Di seguito è riportato un esempio Python completo per l'iscrizione agli eventi della Posta in arrivo, oltre ai dettagli sulla gestione del ciclo di vita.

Una sottoscrizione webhook di Graph ha due campi obbligatori: cambiaTipo (quali eventi guardare) e URL di notifica (il tuo endpoint HTTPS). Microsoft invia un token di convalida parametro di query alla prima sottoscrizione. Il tuo endpoint deve restituirlo come testo semplice entro 10 secondi per confermare la proprietà.

Le sottoscrizioni del grafo scadono dopo un massimo di 4230 minuti (~3 giorni) per risorse di posta. Il tuo server deve rinnovare prima della scadenza tramite PATCH /v1.0/abbonamenti/{id} o smetterai di ricevere notifiche in silenzio.

1 Notifiche del ciclo di vita
Microsoft Graph invia notifiche sul ciclo di vita a un separato URL notifica ciclo di vita quando una sottoscrizione sta per scadere o è stata revocata. Il tuo server deve rispondere con HTTP 202 per confermare. Il mancato invio di una risposta causa la terminazione della sottoscrizione.
2 Token di validazione Handshake
Quando esegui una POST su /v1.0/subscriptions, Microsoft chiama immediatamente il tuo notificationUrl con una richiesta GET contenente ?tokenDiValidazione=XXX. Devi restituire il token come testo semplice (Content-Type: text/plain) con HTTP 200 entro 10 secondi. Il timeout comporterà il mancato completamento della creazione della sottoscrizione.
3 Scadenza abbonamento
Le iscrizioni via email scadono dopo un massimo di 4230 minuti. Utilizza un processo in background o cron per applicare la patch dataOraScadenza prima che scada. Puoi anche ricreare un abbonamento da zero. Microsoft non addebita costi aggiuntivi per i rinnovi.
create_subscription.py
import richieste, data e ora TOKEN_DI_ACCESSO = "TOKEN_GRAFICO_TUO" PUNTO DI ESTREMO = "https://graph.microsoft.com/v1.0/subscriptions" # Scadenza: massimo 4230 min da ora per le risorse di posta scadenza = ( datetime.datetime.l'ora universale coordinata() + datetime.timedelta(minuti=4200) ).isoformat() + "Z" carico utile = { "tipoDiCambio": "creato", "urlNotifica": "https://tuodominio.com/webhook", "risorsa": "me/cartellePosta/('Posta in arrivo')/messaggi", "dataOraScadenza": scadenza, "statoCliente": "ilMioStatoSegreto" } r = richieste.posta( PUNTO FINALE, json=carico utile, intestazioni={ "Autorizzazione": Bearer {TOKEN_DI_ACCESSO}", "Content-Type": "application/json" } ) print(r.json()["id"]) # sub_xxxxxxxx-xxxx-xxxx-xxxx
201 Creato, abbonamento attivo per eventi di Posta in arrivo
Unipile

Salta la Complessità - Usa l'API Unificata di Unipile per le Email

Collega Microsoft Graph, Gmail e IMAP con un unico SDK. Nessun flusso OAuth per provider, nessuna logica di refresh dei token, nessuna infrastruttura webhook da mantenere. Il tuo team rilascia funzionalità email in giorni, non settimane.

Iniziare gratis

Nessuna carta di credito richiesta. Conforme a SOC 2 Type II.

Limiti

Limiti di frequenza e gestione degli errori dell'API Microsoft Graph

L'endpoint e-mail dell'API Microsoft Graph applica il throttling a più livelli: per utente, per applicazione e per tenant. Comprendere questi limiti prima di andare in produzione evita errori silenziosi e una minore affidabilità nella tua integrazione.

Quando viene limitato, Microsoft Graph restituisce 429 Troppe Richieste with a Ritenta dopo intestazione che specifica i secondi da attendere. Leggi sempre questa intestazione e attieniti di conseguenza: sovraccaricare dopo un 429 estenderà la finestra di throttling, non la accorcerà.

Codice HTTP Nome errore Causa Risolvi
429 TroppeRichieste Sostituita la frequenza dei tentativi (10.000 richieste / 10 minuti per app o 1.000 richieste / 1 minuto per utente) Leggi l'header Retry-After. Implementa il backoff esponenziale. Usa il batch $per combinare le richieste.
401 Non autorizzato Token di accesso scaduto o intestazione di autorizzazione mancante Rinnova il token tramite MSAL. Controlla la scadenza del token prima di ogni richiesta. Utilizza la cache del token.
403 Proibito Permesso mancante Mail.Read o Mail.Send nella registrazione dell'app di Azure Aggiungere le autorizzazioni Graph richieste nel portale di Azure e concedere nuovamente il consenso (o il consenso dell'amministratore per le autorizzazioni dell'app).
404 RisorsaNonTrovata ID del messaggio o ID della cartella non esiste (eliminato o tenant errato) Verifica gli ID tramite GET prima di agire su di essi. Gestisci il 404 con grazia come segnale di eliminazione logica.
500 Errore interno del server Errore transitorio del server Microsoft Riprova con backoff esponenziale (1s, 2s, 4s). Registra l'header request-id per il supporto Microsoft.
Multi-Provider

Oltre Microsoft Graph: API unificata per email di Gmail, Outlook e IMAP

La gestione dell'integrazione delle email di Microsoft Graph API è solo l'inizio. La maggior parte dei prodotti SaaS deve supportare contemporaneamente Gmail, Outlook e IMAP, il che significa tre flussi OAuth separati, tre cicli di refresh dei token e tre sistemi di webhook. Unipile's API email unificata astratta tutti e tre i provider dietro un singolo endpoint.

Logo di GmailAPI Gmail Logo di OutlookMicrosoft Graph Logo IMAPIMAP / SMTP

Con Unipile's Integrazione API email unificata, scrivi un'integrazione e supporti istantaneamente tutti e tre i tipi di provider. Gli account collegati sono gestiti da Unipile: il tuo backend parla solo con un endpoint REST, indipendentemente dal fatto che la casella di posta dell'utente utilizzi Microsoft Graph, Gmail o IMAP.

Nessun flusso OAuth da gestire Unipile gestisce l'acquisizione, il rinnovo e la revoca dei token per Microsoft Graph e Gmail per tuo conto.

Eventi webhook unificati - un notificationUrl riceve eventi via email da tutti i provider con uno schema JSON normalizzato. Nessuna gestione degli abbonamenti per provider.

Conforme a SOC 2 di tipo II - tutti i dati delle e-mail in transito sono crittografati. Unipile non memorizza il contenuto delle e-mail oltre quanto richiesto dalla tua integrazione.

Provider di posta elettronica supportati
Outlook / Microsoft 365
tramite l'API Microsoft Graph
Attivo
Gmail
via Gmail API (Google)
Attivo
IMAP / SMTP
Fallback email universale
Attivo
Iniziare

Inizia a integrare l'email di Microsoft Graph in pochi minuti

Unisciti a oltre 200 team SaaS che utilizzano Unipile per collegare Outlook, Gmail e IMAP sotto un'unica API. Nessun vendor lock-in. Conforme a SOC 2.

FAQ

Domande frequenti

Tutto ciò che gli sviluppatori chiedono prima di costruire sull'endpoint e-mail dell'API Microsoft Graph: dall'autenticazione ai limiti di frequenza alla copertura dei provider.

01
Che cos'è l'API Microsoft Graph per le e-mail?
Il Microsoft Graph API per email è l'endpoint REST ufficiale fornito da Microsoft per accedere ai dati della cassetta postale di Outlook e Exchange. Si trova all'indirizzo https://graph.microsoft.com/v1.0/me/messages e utilizza l'autenticazione OAuth 2.0 tramite Azure Active Directory. Supporta la lettura, l'invio, la ricerca e la gestione delle email, oltre a ricevere notifiche di modifiche in tempo reale tramite sottoscrizioni webhook.
02
OAuth 2.0 funziona con Microsoft Graph consentendo alle applicazioni di accedere alle risorse di Microsoft Graph per conto di un utente, senza che l'applicazione debba conoscere le credenziali dell'utente. Ecco una panoramica di come funziona: 1. **Registrazione dell'applicazione:** * Prima che un'applicazione possa utilizzare OAuth 2.0 per accedere a Microsoft Graph, deve essere registrata in Azure Active Directory (ora Microsoft Entra ID). * Durante la registrazione, viene assegnato un ID client univoco all'applicazione e viene definita una o più URI di reindirizzamento (dove Azure AD rimanderà l'utente dopo l'autenticazione). * L'applicazione specifica anche i "permessi" (o ambiti) di Microsoft Graph di cui ha bisogno. Questi permessi definiscono quali dati l'applicazione può accedere (ad es., `User.Read` per leggere le informazioni di base dell'utente, `Mail.Send` per inviare e-mail, ecc.). 2. **Richiesta di autorizzazione:** * Quando un utente interagisce con la tua applicazione e questa necessita di accedere a dati protetti da Microsoft Graph, l'applicazione reindirizza l'utente al "punto di unione" di autorizzazione di Azure AD. * Questa richiesta include: * Il `client_id` della tua applicazione. * Il `redirect_uri` dove l'utente deve essere reindirizzato dopo l'autorizzazione. * Lo `scope` (i permessi richiesti). * Il `response_type` (tipicamente `code` per un flusso di autorizzazione). * Opzionalmente, un `state` (un valore casuale per prevenire attacchi CSRF). 3. **Consenso dell'utente:** * Azure AD autentica l'utente (se non è già connesso). * Successivamente, Azure AD presenta all'utente una richiesta di consenso che elenca i permessi che l'applicazione sta richiedendo. * L'utente può accettare o rifiutare questa richiesta. Se accetta, Azure AD genera un `authorization_code` univoco. 4. **Scambio del codice di autorizzazione per un token di accesso:** * Azure AD reindirizza l'utente all' `redirect_uri` specificato dall'applicazione, includendo l'`authorization_code` e il valore dello `state` nella query string dell'URL. * L'applicazione riceve questo codice e procede a scambiarlo con un token di accesso. Questo scambio avviene direttamente tra il server dell'applicazione e il punto di unione token di Azure AD (è un segreto che non viene esposto al browser dell'utente). * La richiesta di scambio include: * Il `client_id` e il `client_secret` dell'applicazione (che autenticano l'applicazione). * Il `grant_type` impostato su `authorization_code`. * L'`authorization_code` ricevuto. * Il `redirect_uri` utilizzato. 5. **Ricezione dei token:** * Se lo scambio ha successo, Azure AD restituisce all'applicazione: * Un **token di accesso (Access Token)**: Questo è il token che l'applicazione utilizzerà per autenticarsi con Microsoft Graph. Il token di accesso è un token JWT (JSON Web Token) firmato che contiene informazioni sull'utente e i permessi concessi. È di breve durata. * Un **Refresh Token (Token di Aggiornamento)**: Questo token viene utilizzato per ottenere nuovi token di accesso quando il token di accesso corrente scade, senza dover chiedere nuovamente il consenso all'utente. Ha una durata più lunga. * Un **ID Token (ID Token)**: Questo è un token JWT che contiene informazioni sull'utente autenticato (ad es. nome, e-mail, ecc.). 6. **Accesso a Microsoft Graph:** * L'applicazione ora può effettuare chiamate all'API di Microsoft Graph. Per farlo, include il token di accesso nella richiesta HTTP nell'intestazione `Authorization`, con il valore `Bearer [access_token]`. * Microsoft Graph valida il token di accesso. Se il token è valido e contiene i permessi necessari per la risorsa richiesta, la chiamata API viene elaborata e i dati vengono restituiti all'applicazione. 7. **Rinnovo del token di accesso:** * Quando un token di accesso scade, l'applicazione utilizza il refresh token per ottenere un nuovo token di accesso da Azure AD, senza richiedere l'intervento dell'utente. Questo meccanismo basato su OAuth 2.0 garantisce che le applicazioni ottengano solo i permessi strettamente necessari e che l'utente mantenga il controllo su quali dati vengono condivisi.
Microsoft Graph utilizza Azure Active Directory (Entra ID) per l'autenticazione. Registri un'applicazione nel portale di Azure, configuri le autorizzazioni Graph API richieste (come Posta.Leggi e Mail.Send), e utilizzare la Microsoft Authentication Library (MSAL) per acquisire token di accesso. Ci sono due flussi principali: delegato (l'utente accede interattivamente) e applicazione (server-to-server, nessuna interazione utente). I token scadono dopo 1 ora e devono essere aggiornati automaticamente.
03
Microsoft Graph API supporta IMAP?
Microsoft Graph API non utilizza IMAP internamente: è un'API REST che astrae il protocollo di posta sottostante. Tuttavia, gli account Outlook possono ancora essere accessi tramite IMAP (con OAuth 2.0, poiché l'autenticazione di base è stata ritirata). Per l'integrazione delle e-mail di Outlook, Microsoft raccomanda vivamente di utilizzare Graph API rispetto a IMAP perché offre più funzionalità, prestazioni migliori e supporto completo per i webhook. Per caselle di posta non Microsoft, IMAP rimane il fallback universale.
04
Quali sono i limiti di frequenza per l'API di posta elettronica di Microsoft Graph?
Microsoft Graph impone il throttling a più livelli. Il limite generale è 10.000 richieste ogni 10 minuti per applicazione. i limiti per utente possono essere inferiori a seconda del tipo di operazione. Quando viene limitata, l'API restituisce HTTP 429 con un Ritenta dopo header. Migliori pratiche: implementa il backoff esponenziale, usa il batch $per combinare fino a 20 richieste in una singola chiamata HTTP e memorizza nella cache i dati a cui si accede frequentemente per ridurre al minimo le chiamate ridondanti.
05
Come imposto i webhook con l'API Microsoft Graph?
POST a /v1.0/abbonamenti with a cambiaTipo (ad esempio, "creato"), un URL di notifica indicando il tuo endpoint HTTPS, e un risorsa (ad esempio, "me/mailFolders('Inbox')/messages"). Microsoft invia immediatamente una richiesta GET con un token di convalida - il tuo server deve ripeterlo come testo normale entro 10 secondi. Gli abbonamenti scadono entro un massimo di 4230 minuti e devono essere rinnovati tramite PATCH prima della scadenza.
06
Posso inviare email per conto di un utente con Microsoft Graph?
Sì. Con permessi delegati (Mail.Send), puoi inviare email per conto dell'utente connesso dalla sua casella di posta. Con permessi dell'applicazione (Mail.Send), puoi inviare per conto di qualsiasi utente nel tenant senza che questi sia connesso - utile per notifiche automatiche o integrazioni CRM. Vedi anche: Guida API per inviare email per conto dell'utente.
07
Qual è la differenza tra Microsoft Graph API ed EWS?
Exchange Web Services (EWS) è un'API basata su SOAP creata da Microsoft per Exchange on-premises. Microsoft Graph API è il sostituto REST moderno ed è l'unico approccio consigliato per nuove integrazioni. EWS è in modalità di manutenzione: non vengono aggiunte nuove funzionalità e Microsoft ha annunciato piani per dismetterlo per Exchange Online. Se utilizzi ancora EWS, migra ora a Graph API. Per Exchange on-premises legacy (2013/2016), EWS potrebbe comunque essere la tua unica opzione, ma Unipile's API email può aiutare a colmare il divario.
Avete ancora domande? Il nostro team è qui per aiutarti a integrare l'endpoint delle email di Microsoft Graph API nel tuo prodotto.
Parlare con un esperto
it_ITIT