Example #1
0
        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);
        }