BitzOrcas does not yet include a dedicated email/mailing infrastructure. Notification delivery is handled through the INotificationDeliveryAdapter abstraction in the Notifications platform module, with a NullNotificationDeliveryAdapter as the default (no-op).
Current notification architecture
The Notifications module provides a multi-channel notification framework:
NotificationService │ ▼INotificationPreferenceStore ←── Channel preferences (email, in-app, etc.) │ ▼INotificationDeliveryAdapter ←── Currently Null, future: SMTP/SendGrid │ ▼INotificationRepository ←── Inbox persistence (SqlSugar)Notification types
| Channel | Status | Description |
|---|---|---|
| In-app inbox | ✅ Implemented | NotificationEntity persisted in database |
| 📋 Planned | SMTP or cloud email provider adapter | |
| SMS | 📋 Planned | Future expansion |
| Push | 📋 Planned | Future expansion |
INotificationDeliveryAdapter port
public interface INotificationDeliveryAdapter{ Task DeliverAsync(NotificationTemplate template, NotificationPreference preference, CancellationToken ct = default);}- Default:
NullNotificationDeliveryAdapter— no-op - Planned: SMTP adapter, SendGrid adapter, AWS SES adapter
Adding email delivery
To add email support, implement INotificationDeliveryAdapter:
- Create a package reference for your email provider (e.g.,
MailKit) - Implement the interface with SMTP configuration
- Register in DI to replace the Null default
- Configure SMTP settings
Planned configuration
{ "Mail": { "Provider": "Smtp", // or "SendGrid", "SES" "Smtp": { "Host": "smtp.example.com", "Port": 587, "Username": "noreply@example.com", "Password": "..." }, "FromAddress": "noreply@bitzorcas.com", "FromName": "BitzOrcas Platform" }}See also
- Notifications module — In-app notification inbox implementation