Condividi tramite

Errore 401 Graph API

Luca Soldi 25 Punti di reputazione
2025-11-24T14:40:37.9833333+00:00

Buongiorno, ho un problema con le microsoft Graph API, sto cercando di utilizzarle per inviare email tramite application permission
-Ho quindi registrato l'app su Entra Admin Center.
-Creato certificate & secrets
-Assegnato le API mail.send in Application permission e gli ho garantito i permessi admin
-Richiedo il token tramite

POST https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token


'client_id' => $clientId,
'scope' => 'https://graph.microsoft.com/.default',
'client_secret' => $clientSecret,
'grant_type' => 'client_credentials'

E lo ricevo in modo corretto
-Provo poi ad inviare la mail tramite

POST https://graph.microsoft.com/v1.0/users/$userId/sendMail

Con header "Authorization: Bearer {token}" e "content-type: application/json"
Ma al momento dell'invio ricevo sempre errore 401

App Web statiche di Azure
{count} voti

Risposta accettata dall'autore della domanda
  1. Rukmini 9,005 Punti di reputazione Personale Esterno Microsoft Moderatore
    2025-11-24T16:25:10.49+00:00

    Ciao Luca Soldi,

    L'errore si verifica solitamente se l'utente da cui si sta tentando di inviare l'e-mail non ha una casella di posta.

    Una cassetta postale viene creata solo se l'utente dispone di una licenza Microsoft 365 che include Exchange Online, ad esempio E1, E3 o E5. Senza questa licenza, la cassetta postale non esiste e la chiamata API non andrà a buon fine.

    To resolve the error, assign a Microsoft 365 business license that includes Exchange Online to the user.

    Autorizzazione API per il tipo di applicazione Mail.Send concessa:

    Immagine dell'utente

    Token di accesso generato:

    Immagine dell'utente

    Assicurati che l'UPN dell'utente che stai passando per inviare la posta abbia una licenza M365/O365 attiva assegnata:

    Immagine dell'utente

    L'API /sendmail funziona correttamente:

    Immagine dell'utente


    Vi prego di scusarmi se ci sono errori grammaticali, sto traducendo dall'inglese.

    If the resolution was helpful, kindly take a moment to accept the answer and upvote it 👍 it as a token of appreciation.

    1 persona ha trovato utile questa risposta.

0 risposte aggiuntive

Ordina per: Più utili

Risposta

Le risposte possono essere contrassegnate come "Accettata" dall'autore della domanda e "Consigliata" dai moderatori, in modo da consentire agli utenti di sapere che la risposta ha risolto il problema dell'autore.