/// <inheritdoc/>
        public override bool SendMessage(Message message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            if (string.IsNullOrEmpty(Client.Address))
            {
                Logger.LogError("Error sending email to client.", $"The client '{Client.Name ?? Client.ID}' not specified address to send messages.", message);
                return(false);
            }

            var mailMessage = new ForMailMessage()
            {
                MsgTypeID  = message.MessageType.ID,
                Body       = message.Body,
                Attachment = message.BinaryAttachment,
                ClientID   = message.Sender,
                Group      = message.Group,
                Tags       = ServiceHelper.GetTagDictionary(message),
            };

            return(ServiceHelper.TryWithExceptionLogging(
                       () => mailMessage.Send(Client.Address, ConfigurationManager.AppSettings["MailLogin"], ConfigurationManager.AppSettings["MailServer"]),
                       null,
                       $"Error sending a message to the client '{Client.Name ?? Client.ID}' by e-mail to the address '{Client.Address}'.",
                       Client,
                       message,
                       Logger));
        }
コード例 #2
0
        /// <summary>
        /// Отправить сообщение.
        /// </summary>
        /// <param name="message">Сообщение, которое нужно отправить.</param>
        /// <returns>Успешно ли было отправлено сообщение.</returns>
        public bool SendMessage(Message message)
        {
            if (string.IsNullOrEmpty(Client.Address))
            {
                _logger.LogError(
                    "Ошибка отправки сообщения клиенту по электронной почте",
                    $"У клиента '{Client.Name ?? Client.ID}' не указан адрес для отправки сообщений.",
                    message);
                return(false);
            }

            var mailMessage = new ForMailMessage()
            {
                Attachment = message.BinaryAttachment,
                Body       = message.Body,
                ClientID   = message.Sender,
                Group      = message.Group,
                MsgTypeID  = message.MessageType.ID,
                Tags       = ServiceHelper.GetTagDictionary(message)
            };

            return(ServiceHelper.TryWithExceptionLogging(
                       () => mailMessage.Send(Client.Address, ConfigurationManager.AppSettings["MailLogin"], ConfigurationManager.AppSettings["MailServer"]),
                       null,
                       "Ошибка отправки сообщения клиенту по электронной почте",
                       Client,
                       message,
                       _logger));
        }