public async Task Send(SenderRequest request, CancellationToken cancellationToken = default) { var configuration = await _senderConfigurationRepository.Retrieve(request.ConfigurationId) ?? throw new MissingConfigurationException(request.ConfigurationId); _senderRequestValidator.Validate(configuration, request); var from = request.FromEmail ?? configuration.DefaultFromEmail; var to = configuration.ToEmail; var messageBody = GetMessageBody(configuration, request); await Send(EmailMessage.Create(request, from, to, request.Subject, messageBody), cancellationToken); }