Skip to content
bitzorcas
EN

Reference

Mailing building block

Planned email/notification delivery infrastructure — currently handled through the INotificationDeliveryAdapter port with a Null default.

Last updated

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

ChannelStatusDescription
In-app inbox✅ ImplementedNotificationEntity persisted in database
Email📋 PlannedSMTP or cloud email provider adapter
SMS📋 PlannedFuture expansion
Push📋 PlannedFuture 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:

  1. Create a package reference for your email provider (e.g., MailKit)
  2. Implement the interface with SMTP configuration
  3. Register in DI to replace the Null default
  4. 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