public void SendFromTemplate(string toEmail, string subject, TextTemplate template, TextReplacements replacements)
        {
            // Setup replacements.
            if (string.IsNullOrEmpty(replacements.RecipientEmail))
            {
                replacements.RecipientEmail = toEmail;
            }
            replacements.BaseUrl = ConfigUtil.BaseAppUrl;

            // Compile email body and subject.
            var emailBody    = _templateManager.Compile(template, replacements);
            var emailSubject = _templateManager.Compile(subject, replacements);

            var categories = GetEmailCategories(template);

            // Prepare the email message and queue it.
            var mailMessage = CreateEmailMessage(toEmail, toEmail, emailSubject, emailBody, categories);

            Task.Run(() => QueueEmail(mailMessage));
        }