Ejemplo n.º 1
0
        /// <summary>
        /// Envia uma mensagem para um determinado email.
        /// </summary>
        /// <param name="emailDestino">Email para o qual enviar a mensagem.</param>
        /// <param name="mensagemConteudo">Mensagem a ser enviada.</param>
        public async Task EnviarEmail(string emailDestino, string assunto, string mensagemConteudo, AttachmentCollection attachments)
        {
            //Dados Acesso.
            string emailEnvio = await ObterEmailEnvio();

            string senha = await ObterSenhaEmailEnvio();

            //Criar Mensagem.
            MimeMessage mensagem = new MimeMessage();

            mensagem.From.Add(new MailboxAddress("", emailEnvio));
            mensagem.To.Add(new MailboxAddress("", emailDestino));
            mensagem.Subject = assunto;

            byte[] imagemBytes = await DependencyService.Get <IScreenshotService>().TirarScreenshotAsync();

            BodyBuilder bodyBuilder = new BodyBuilder()
            {
                TextBody = mensagemConteudo
            };

            attachments.ForEach(p => bodyBuilder.Attachments.Add(p));

            mensagem.Body = bodyBuilder.ToMessageBody();

            using (var client = new SmtpClient())
            {
                client.ServerCertificateValidationCallback = (s, c, h, e) => true;
                client.Connect("smtp.gmail.com", 25);
                await client.AuthenticateAsync(emailEnvio, senha);

                await client.SendAsync(mensagem);

                client.Disconnect(true);
            }
        }