I would expect the ISmsSender/IEmailSender implementation that has nothing to do with a business concept like notifying volunteers.
The API/usage suggests an implementation that would use QueueStorageService directly, but instead, we send the NotifyVolunteersCommand to the NotifyVolunteersCommandHandler, which uses QueueStorageService.
This is confusing as the usage of the API in some cases has nothing to do with "notifying volunteers". For example, SendAccountApprovalEmailHandler uses IEmailSender like this:

Here we're sending an account approval email with this message:
"Your account has been approved by an administrator. Please <a href="{message.CallbackUrl}">Click here to Log in"
This has nothing to do with notifying volunteers.
I suggest we change ISmsSender/IEmailSender implementation to use QueuedSmsMessage directly (basically the code in NotifyVolunteersCommandHandler), where appropriate, we can send the NotifyVolunteersCommand and the NotifyVolunteersCommandHandler can take a dependency on
IEmailSender/ISmsSender in order to send that notification to volunteers.
I would expect the ISmsSender/IEmailSender implementation that has nothing to do with a business concept like notifying volunteers.
The API/usage suggests an implementation that would use QueueStorageService directly, but instead, we send the
NotifyVolunteersCommandto theNotifyVolunteersCommandHandler, which uses QueueStorageService.This is confusing as the usage of the API in some cases has nothing to do with "notifying volunteers". For example,

SendAccountApprovalEmailHandleruses IEmailSender like this:Here we're sending an account approval email with this message:
"Your account has been approved by an administrator. Please <a href="{message.CallbackUrl}">Click here to Log in"
This has nothing to do with notifying volunteers.
I suggest we change ISmsSender/IEmailSender implementation to use QueuedSmsMessage directly (basically the code in
NotifyVolunteersCommandHandler), where appropriate, we can send theNotifyVolunteersCommandand theNotifyVolunteersCommandHandlercan take a dependency onIEmailSender/ISmsSender in order to send that notification to volunteers.