Hi Nguyen, Tien Lam,
You must stream email logs from your Communication Services resource into a Log Analytics workspace: https://learn.microsoft.com/en-us/azure/communication-services/concepts/analytics/logs/email-logs
- Follow these official steps: [Enable logging with Azure Monitor for Communication Services] (Log Analytics + selected categories) https://learn.microsoft.com/en-us/azure/communication-services/concepts/analytics/enable-logging
- Under “Diagnostic settings”, check: Email Service Send Mail logs, Email Service Delivery Status Update logs, Email Service User Engagement logs (optionally). Send them to your Log Analytics workspace.
The table ACSEmailStatusUpdateOperational contains per‑recipient delivery statuses: Includes fields like Timestamp
, Recipient
, Sender
, DeliveryStatus
(Delivered, Failed, etc.), and CorrelationId
. https://learn.microsoft.com/en-us/azure/azure-monitor/reference/tables/acsemailstatusupdateoperational
Use the Logs section in Log Analytics or Azure Monitor REST API. Sample KQL to get last 24 hours’ delivery statuses:
ACSEmailStatusUpdateOperational
| where Timestamp > ago(24h)
| project Timestamp, Sender, Recipient, DeliveryStatus, CorrelationId
You can easily extend this query for filtering, grouping, or suppression reasons.
Automate Data Retrieval:
- Azure Logic Apps / Power Automate
- Create a scheduled workflow to run the KQL query.
- Export results directly to CSV/JSON or storage.
- Script with REST or SDK: Use Azure Monitor Logs REST API Or use the Azure SDK (Python, .NET, Node, etc.) to query programmatically and export data. https://learn.microsoft.com/en-us/rest/api/loganalytics/query?view=rest-loganalytics-2022-10-27-preview
Alternatively Subscribe to Real-time Events via Event Grid, if you prefer push notifications rather than polling:
- Enable Event Grid event source on your Communication Services resource.
- Subscribe to events like
Microsoft.Communication.EmailDeliveryReportReceived
. - Set up an Event Grid subscription to an endpoint (Webhook, Azure Function, Logic App)
- The payload includes
messageId
,recipient
, and final delivery status.
This pushes status updates in near real-time and can also write JSON files to your system.
https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/email/handle-email-events
https://learn.microsoft.com/en-us/azure/event-grid/communication-services-email-events
Hope this helps, if you have any further concerns or queries, please feel free to reach out to us.