예제 #1
0
        public Task Enviar(MensagemEmail mensagem)
        {
            var email = new MailMessage();

            email.From       = new MailAddress(_remetente);
            email.Body       = mensagem.CorpoMensagem;
            email.Subject    = mensagem.Assunto;
            email.IsBodyHtml = true;

            if (mensagem.Anexo != null)
            {
                email.Attachments.Add(new Attachment(mensagem.Anexo.Endereco));
            }

            if (mensagem.Destinatarios != null)
            {
                foreach (var destinatario in mensagem.Destinatarios)
                {
                    email.To.Add(destinatario);
                }
            }

            if (mensagem.Copias != null)
            {
                foreach (var copia in mensagem.Copias)
                {
                    email.CC.Add(copia);
                }
            }

            _smtpClient.Send(email);
            return(Task.FromResult(0));
        }
예제 #2
0
        public ActionResult RecuperarSenha(string email)
        {
            if (email == "")
            {
                ViewBag.Erro = "Digite seu e-mail";
                return(View());
            }

            Usuario usuario = obterUsuarioPorEmail(email);

            if (usuario == null)
            {
                ViewBag.Erro = "O e-mail digitado não é válido";
                return(View());
            }

            MensagemEmail mensagem = new MensagemEmail();

            mensagem.Mensagem     = String.Format("Olá!\n Você solicitou a recuperação de senha. Sua senha é: {0}", usuario.senha);
            mensagem.Assunto      = "Recuperação da Senha do Projeto Loja";
            mensagem.Remetente    = "*****@*****.**";
            mensagem.Destinatario = email;

            try
            {
                SMTPHelper.EnviarEmail(mensagem);
            }
            catch (Exception ex)
            {
                ViewBag.Erro = ex.Message;
            }

            return(RedirectToAction("Login"));
        }
예제 #3
0
        public async Task EnviarEmailCandidaturaReprovada(Candidatura candidatura)
        {
            var mensagemEmail = new MensagemEmail()
                                .ComDestinatario(candidatura.Voluntario.Email)
                                .ComAssunto("Voluntarie-se: Sua candidatura foi reprovada")
                                .ComCorpoMensagem(TemplateEmailCandidaturaReprovada(candidatura));

            await _sender.Enviar(mensagemEmail);
        }
예제 #4
0
        public async Task EnviarEmailCandidatura(Candidatura candidatura)
        {
            var mensagemEmail = new MensagemEmail()
                                .ComDestinatario(candidatura.Instituicao.Email)
                                .ComAssunto($"Voluntarie-se: #{candidatura.IdOportunidade} Temos um voluntário para você!")
                                .ComCorpoMensagem(TemplateEmailCandidatura(candidatura));

            await _sender.Enviar(mensagemEmail);
        }
예제 #5
0
        public async Task EnviarEmailContato(string nome, string email, string telefone, string mensagem)
        {
            var mensagemEmail = new MensagemEmail()
                                .ComDestinatario(_emailContato)
                                .ComAssunto("Contato - E-commerce")
                                .ComCorpoMensagem(TemplateEmailContato(nome, email, telefone, mensagem));

            await _sender.Enviar(mensagemEmail);
        }
예제 #6
0
        public async Task EnviarEmailAtualizacaoSenha(Usuario usuario)
        {
            var email = new MensagemEmail()
                        .ComDestinatario(usuario.Email)
                        .ComAssunto("Atualizacão de senha")
                        .ComCorpoMensagem(TemplateEmailAtualizacaoSenha(usuario));

            await _sender.Enviar(email);
        }
예제 #7
0
        public async Task EnviarEmailSolicitacaoRecuperacaoSenha(TokenRecuperacaoSenha tokenRecuperacaoSenha)
        {
            var email = new MensagemEmail()
                        .ComDestinatario(tokenRecuperacaoSenha.Usuario.Email)
                        .ComAssunto("Recuperação de senha")
                        .ComCorpoMensagem(TemplateEmailSolicitacaoRecuperacaoSenha(tokenRecuperacaoSenha));

            await _sender.Enviar(email);
        }
        //Persistir o objecto e salvar na base de dados
        private bool inserir(MensagemEmail OMensagemEmail)
        {
            OMensagemEmail.setDefaultInsertValues();

            db.MensagemEmail.Add(OMensagemEmail);

            db.SaveChanges();

            return(OMensagemEmail.id > 0);
        }
예제 #9
0
        public ActionResult Mensagem(MensagemEmail obj)
        {
            if (ModelState.IsValid)
            {
                MensagemEmailBO service = new MensagemEmailBO();
                service.EnviarMsg(obj);
            }



            return(View("Index"));
        }
예제 #10
0
        public ActionResult Mensagem(MensagemEmail obj) //ainda em construção
        {
            if (ModelState.IsValid)
            {
                MensagemEmailBO service = new MensagemEmailBO();
                service.EnviarMsg(obj);
            }



            return(RedirectToAction("Curriculo"));
        }
        /// <summary>
        /// Retornar lista de e-mails que devem receber cópia da mensagem
        /// </summary>
        public static bool temConfiguracao(this MensagemEmail OMensagemEmail)
        {
            if (OMensagemEmail == null)
            {
                return(false);
            }


            if (OMensagemEmail.titulo.isEmpty() || OMensagemEmail.corpoEmail.isEmpty())
            {
                return(false);
            }

            return(true);
        }
        /// <summary>
        /// Retornar lista de e-mails que devem receber cópia da mensagem
        /// </summary>
        public static List <string> listaCopias(this MensagemEmail OMensagemEmail)
        {
            var listaEmails = new List <string>();

            if (OMensagemEmail == null || OMensagemEmail.emailsCopia.isEmpty())
            {
                return(listaEmails);
            }

            listaEmails = OMensagemEmail.emailsCopia.Split(';')
                          .Where(UtilValidation.isEmail)
                          .ToList();

            return(listaEmails);
        }
        /// <summary>
        /// Persistir e salvar os dados
        /// </summary>
        public bool salvar(MensagemEmail OMensagemEmail)
        {
            OMensagemEmail.emailsCopia = OMensagemEmail.emailsCopia.abreviar(255);

            OMensagemEmail.titulo = OMensagemEmail.titulo.abreviar(255);

            OMensagemEmail.corpoEmail = OMensagemEmail.corpoEmail.abreviar(8000);

            int idOrganizao = User.idOrganizacao();

            if (this.existe(OMensagemEmail.codigoIdentificacao, idOrganizao))
            {
                this.OMensagemEmailExclusaoBL.excluir(OMensagemEmail.id);
            }

            return(this.inserir(OMensagemEmail));
        }
예제 #14
0
        public void EnviarMsg(MensagemEmail obj)
        {
            try
            {
                MailMessage   msg  = new MailMessage();
                SmtpClient    smtp = new SmtpClient();
                MailAddress   from = new MailAddress(obj.Email.ToString());
                StringBuilder sb   = new StringBuilder();
                msg.To.Add("*****@*****.**");
                msg.From            = from;
                msg.Subject         = "Teste de Envio";
                msg.IsBodyHtml      = false;
                smtp.Host           = "smtp.gmail.com";
                smtp.Port           = 465;
                smtp.EnableSsl      = true;
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtp.Credentials    = new NetworkCredential("*****@*****.**", "gabrielgts250nv");
                sb.Append("Nome: " + obj.Nome);
                sb.Append(Environment.NewLine);
                sb.Append("Fone: " + obj.Fone);
                sb.Append(Environment.NewLine);
                sb.Append("Email: " + obj.Email);
                sb.Append(Environment.NewLine);
                sb.Append("Mensagem: " + obj.Msg);

                msg.Body = sb.ToString();


                var tEmail = new Thread(() => smtp.Send(msg));
                tEmail.Start();

                msg.Dispose();
            }
            catch
            {
                throw;
            }
        }
예제 #15
0
        public async Task <IActionResult> OnPostAsync()
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var user = await _userManager.FindByEmailAsync(Input.Email);

                    if (user == null || !(await _userManager.IsEmailConfirmedAsync(user)))
                    {
                        _logger.LogWarning("Nenhum usuário encontrado!");
                        // Don't reveal that the user does not exist or is not confirmed
                        return(RedirectToPage("./ForgotPasswordConfirmation"));
                    }

                    _logger.LogInformation("Criando corpo de e-mail");

                    var pathToFile = _env.WebRootPath
                                     + Path.DirectorySeparatorChar.ToString()
                                     + "templates"
                                     + Path.DirectorySeparatorChar.ToString()
                                     + "PasswordRecoveryEmail.html";

                    var builder = new BodyBuilder();

                    using (StreamReader sourceReader = System.IO.File.OpenText(pathToFile))
                    {
                        builder.HtmlBody = sourceReader.ReadToEnd();
                    }
                    // For more information on how to enable account confirmation and password reset please
                    // visit https://go.microsoft.com/fwlink/?LinkID=532713
                    var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                    var callbackUrl = Url.Page(
                        "/Account/ResetPassword",
                        pageHandler: null,
                        values: new { code },
                        protocol: Request.Scheme);


                    string messageBody = string.Format(builder.HtmlBody, callbackUrl);

                    _logger.LogInformation("Criando Email");
                    var mail = new MensagemEmail()
                    {
                        Assunto  = "Email de Recuperação de senha",
                        Conteudo = messageBody
                    };

                    mail.DeEndereco.Add(new EnderecoEmail()
                    {
                        Nome = "FalzoGamer", Endereco = "*****@*****.**"
                    });
                    mail.ParaEndereco.Add(new EnderecoEmail()
                    {
                        Nome = user.FirstName + " " + user.LastName, Endereco = Input.Email
                    });

                    _logger.LogInformation("Enviando Email");
                    await _emailServico.SendAsync(mail);

                    return(RedirectToPage("./ForgotPasswordConfirmation"));
                }

                return(Page());
            }
            catch (Exception ex)
            {
                _logger.LogError("Ocorreu o seguinte erro: " + ex.Message);
                return(Page());
            }
        }
예제 #16
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = Input.Email, Email = Input.Email
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("Usuário criado com sucesso!");

                    _logger.LogInformation("Criando corpo de e-mail");

                    var pathToFile = _env.WebRootPath
                                     + Path.DirectorySeparatorChar.ToString()
                                     + "templates"
                                     + Path.DirectorySeparatorChar.ToString()
                                     + "EmailConfirmation.html";

                    var builder = new BodyBuilder();

                    using (StreamReader sourceReader = System.IO.File.OpenText(pathToFile))
                    {
                        builder.HtmlBody = sourceReader.ReadToEnd();
                    }

                    var codigo = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { userId = user.Id, code = codigo },
                        protocol: Request.Scheme);

                    string messageBody = string.Format(builder.HtmlBody, callbackUrl);

                    _logger.LogInformation("Criando Email");
                    var mail = new MensagemEmail()
                    {
                        Assunto  = "Confirmação de Email",
                        Conteudo = messageBody
                    };

                    mail.DeEndereco.Add(new EnderecoEmail()
                    {
                        Nome = "FalzoGamer", Endereco = "*****@*****.**"
                    });
                    mail.ParaEndereco.Add(new EnderecoEmail()
                    {
                        Nome = user.FirstName + " " + user.LastName, Endereco = Input.Email
                    });

                    _logger.LogInformation("Enviando Email");
                    await _emailServico.SendAsync(mail);

                    await _signInManager.SignInAsync(user, isPersistent : false);

                    return(LocalRedirect(returnUrl));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }