Forum Discussion
Architecture question - Email send functionality - Pattern
Hello fabricpribeiro,
I agree with the shared services pattern. Email is a cross-cutting capability, so keeping it separate from the Raw, Bronze, Silver, and Gold ownership model makes sense.
For an internal-only scenario, Microsoft Graph with app-only permissions is also a reasonable fit. Graph documents Mail.Send as the least-privileged application permission for sendMail, while Exchange Online RBAC for Applications allows that application access to be scoped to specific mailboxes.
https://learn.microsoft.com/en-us/graph/api/user-sendmail
https://learn.microsoft.com/en-us/exchange/permissions-exo/application-rbac
I also like the idea of centralising the email logic rather than having each workload implement its own approach. Microsoft now documents a reusable email-pipeline pattern for the Office 365 Outlook activity, which is quite close to that principle.
https://learn.microsoft.com/en-us/fabric/data-factory/outlook-activity
Shared Services - Notifications is also a clear naming choice for a cross-cutting capability.