Ejemplo n.º 1
0
        public IActionResult RelayMessage(Guid id, [FromBody] MessageRelayOptions options)
        {
            var message     = GetDbMessage(id);
            var relayResult = server.TryRelayMessage(message,
                                                     options?.OverrideRecipientAddresses?.Length > 0
                    ? options?.OverrideRecipientAddresses.Select(a => MailboxAddress.Parse(a)).ToArray()
                    : null);

            if (relayResult.Exceptions.Any())
            {
                var relayErrorSummary = string.Join(". ", relayResult.Exceptions.Select(e => e.Key.Address + ": " + e.Value.Message));
                return(Problem("Failed to relay to recipients: " + relayErrorSummary));
            }
            if (relayResult.WasRelayed)
            {
                foreach (var relay in relayResult.RelayRecipients)
                {
                    message.AddRelay(new MessageRelay {
                        SendDate = relay.RelayDate, To = relay.Email
                    });
                }
                messagesRepository.DbContext.SaveChanges();
            }
            return(Ok());
        }
Ejemplo n.º 2
0
        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());
        }