Send Email from an Application using Microsoft Graph and Microsoft 365 shared mailbox without an logged in user.
Log into Exchange Admin center and create a shared mailbox.
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-53-1024x382.png)
Create an Enterprise Application
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-54-1024x307.png)
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-55.png)
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-56-1024x590.png)
Choose Microsoft Graph
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-57-1024x361.png)
Choose Application
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-58-1024x329.png)
Add Mail.Send Permission
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-59-1024x322.png)
Grant Admin Consent
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-60-1024x547.png)
Grant Admin Consent Confirmation
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-61-1024x518.png)
Grant is successful
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-62-1024x458.png)
Create a Secret
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-63-1024x564.png)
Copy the secret and keep in a notepad
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-64-1024x447.png)
Collect your Client ID – Application (Client) ID
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-74-1024x525.png)
There are two steps – Take Token – then use the token to send email.
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-66-1024x368.png)
Use Postman to get Token.
grant_type | client_credentials |
client_id | 538cfed0-656d-4195-ae15-700467d946dc |
client_secret | Cns8Q~M3WdNSgesDxrfb0i4_rBd0iCPrJg_kodjY |
scope | https://graph.microsoft.com/.default |
Download Postman 64 Bit and install on Windows or Mac
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-67-1024x477.png)
Copy the Access Token – Take it without double quotes
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-68.png)
Now lets POST on graph url to send some test emails. Put this as Headers
Authorization | Bearer REPLACE-WITH-TOKEN-VALUE-WITHOUT-QUOTES |
Content-Type | application/json |
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-71-1024x243.png)
{ "message": { "subject": "Sending from Graph", "body": { "contentType": "Text", "content": "Sending from Graph using PostMan" }, "toRecipients": [ { "emailAddress": { "address": "sathesh@azure365prox.com" } } ], "ccRecipients": [ { "emailAddress": { "address": "info@azure365pro.com" } } ] }, "saveToSentItems": "false" }
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-70-1024x420.png)
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-72-1024x414.png)
Email is generated
![](https://www.azure365pro.com/wp-content/uploads/2023/05/image-73.png)
If the scope of permission is wide. In Enterprise scenario you can harden it using New-ApplicationAccessPolicy which i have explained in this article to reach attachments using Graph. Access Specific Office 365 Mailbox using Microsoft Graph – Azure365Pro.com