public FileStreamResult DownloadMessage(Guid id)
        {
            Message result = GetDbMessage(id);

            return(new FileStreamResult(new MemoryStream(result.Data), "message/rfc822")
            {
                FileDownloadName = $"{id}.eml"
            });
        }
        public IActionResult RelayMessage(Guid id, [FromBody] MessageRelayOptions options)
        {
            Message message = GetDbMessage(id);
            Dictionary <MailboxAddress, Exception> relayErrors = server.TryRelayMessage(message, options?.OverrideRecipientAddresses?.Length > 0 ? options?.OverrideRecipientAddresses.Select(a => MailboxAddress.Parse(a)).ToArray() : null);

            if (relayErrors.Any())
            {
                string relayErrorSummary = string.Join(". ", relayErrors.Select(e => e.Key.Address + ": " + e.Value.Message));
                return(Problem("Failed to relay to recipients: " + relayErrorSummary));
            }

            return(Ok());
        }