Beispiel #1
0
        /// <summary>
        ///     Отправка сообщения.
        /// </summary>
        /// <param name="message"> Сообщение в формате <see cref="MimeMessage" />. </param>
        /// <returns> Результат отправки. </returns>
        private async Task <SendMailResult> SendMailAsync(MimeMessage message)
        {
            if (_disposed)
            {
                throw new ObjectDisposedException(nameof(MailTransport),
                                                  "Для экземпляра сервиса Email-сообщений был вызвван метод Dispose()");
            }

            try
            {
                await MailTransport.ConnectAsync(
                    Options.Host,
                    Options.Port,
                    GetSecureSocketOptions(Options.EnableSsl));

                await MailTransport.AuthenticateAsync(
                    Options.Login,
                    Options.Password);

                await MailTransport.SendAsync(message);

                await MailTransport.DisconnectAsync(true);

                return(SendMailResult.CreateSuccessResult());
            }
            catch (Exception ex)
            {
                return(SendMailResult.CreateErrorResult(ex));
            }
        }