예제 #1
0
        public async Task <bool> EnviarMensagemNotificacaoAsync(NotificacaoMensagemModel mensagem)
        {
            try
            {
                TwilioClient.Init(_twilioConfig.TwilioAccountSID,
                                  _twilioConfig.TwilioAuthToken);

                var msgResource = await MessageResource.CreateAsync(
                    from : new PhoneNumber($"whatsapp:{_twilioConfig.TwilioWhatsappNumber}"),
                    to : new PhoneNumber($"whatsapp:{TwilioHelper.FormatarNumeroNoPadraoDoTwilio(mensagem.Para)}"),
                    body : mensagem.Conteudo);

                if (msgResource.Status == MessageResource.StatusEnum.Failed)
                {
                    throw new Exception($"{msgResource.ErrorCode} - {msgResource.ErrorMessage}");
                }

                _logger.LogInformation($"Mensagem enviada para {msgResource.To} em {DateTime.Now}");
                return(true);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(false);
            }
        }
예제 #2
0
        public async Task EnviarMensagemNotificacaoAsync_ServicoNotificacaoSms_EnviarSmsParaUsuario()
        {
            var faker = new Faker("pt_BR");

            var messageModel = new NotificacaoMensagemModel
            {
                De       = _twilioSettings.TwilioPhoneNumber,
                Para     = _telefoneTeste,
                Assunto  = faker.Lorem.Sentence(),
                Conteudo = faker.Lorem.Paragraph(),
            };

            var result = await _smsServico
                         .EnviarMensagemNotificacaoAsync(messageModel);

            result.Should().BeTrue();
        }
예제 #3
0
        public async Task EnviarMensagemNotificacaoAsync_ServicoNotificacaoEmail_EnviarEmailParaUsuario()
        {
            var faker = new Faker("pt_BR");

            var messageModel = new NotificacaoMensagemModel
            {
                De       = _emailTeste,
                Para     = _emailTeste,
                Assunto  = faker.Lorem.Sentence(),
                Conteudo = $"Olá {faker.Person.FullName}, seja bem vindo!",
            };

            var result = await _emailServico
                         .EnviarMensagemNotificacaoAsync(messageModel);

            result.Should().BeTrue();
        }
        public async Task <bool> EnviarMensagemNotificacaoAsync(NotificacaoMensagemModel mensagem)
        {
            try
            {
                var msg = new MimeMessage();

                msg.From.Add(MailboxAddress.Parse(mensagem.De));
                msg.To.Add(MailboxAddress.Parse(mensagem.Para));
                msg.Subject = mensagem.Assunto;
                msg.Body    = new TextPart(TextFormat.Html)
                {
                    Text = mensagem.Conteudo
                };

                using var client = new SmtpClient
                      {
                          ServerCertificateValidationCallback = (s, c, h, e) => true
                      };

                client.Connect(_smtpConfig.SmtpAddress,
                               _smtpConfig.SmtpPort, _smtpConfig.UseSsl);

                client.Authenticate(_smtpConfig.SmtpUsername,
                                    _smtpConfig.SmtpPassword);

                await client.SendAsync(msg);

                await client.DisconnectAsync(true);

                _logger.LogInformation($"Mensagem enviada para {msg.To} em {DateTime.Now}");
                return(true);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(false);
            }
        }
예제 #5
0
 public async Task <bool> EnviarMensagemNotificacaoAsync(NotificacaoMensagemModel mensagem)
 {
     return(await _servicoNotificacao
            .EnviarMensagemNotificacaoAsync(mensagem));
 }