示例#1
0
        public void enviarEmail(string servidor, int porta, bool SMTP, bool SSL, MailMessage conteudoEmail, string cred_Email, string cred_Password, bool DarkTheme)
        {
            SmtpClient cliente = new SmtpClient(servidor, porta);
            using (cliente)
            {
                cliente.Credentials = new System.Net.NetworkCredential(cred_Email, cred_Password);
                cliente.EnableSsl = true;

                if (SMTP)
                {
                    try
                    {
                        cliente.Send(conteudoEmail);
                        MessageBox.ShowMessageBoxOK("correct", "E-mail enviado com sucesso!", "Aviso", DarkTheme);
                        return;
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }

                if (servidor.Equals("smtp.gmail.com"))
                {
                    frmMenosSeguroGmail teste = new frmMenosSeguroGmail(DarkTheme);
                    teste.ShowDialog();
                    respostaGmail = teste.retornoString();
                    if (respostaGmail.Equals("sim"))
                    {
                        Process.Start("https://myaccount.google.com/lesssecureapps");
                        System.Threading.Thread.Sleep(1000);
                        retornoGmail = MessageBox.ShowMessageBoxYesNo("question", "A opção menos segura foi ativada?", "", DarkTheme);
                        if (retornoGmail.Equals("sim"))
                        {
                            try
                            {
                                cliente.Send(conteudoEmail);
                                MessageBox.ShowMessageBoxOK("correct", "E-mail enviado com sucesso!", "Aviso", DarkTheme);
                                return;
                            }
                            catch
                            {
                                throw;
                            }
                        }
                        else
                        {
                            MessageBox.ShowMessageBoxOK("information", "Não será possível enviar o e-mail", "", DarkTheme);
                            return;
                        }
                    }
                    else if (respostaGmail.Equals("nao"))
                    {
                        MessageBox.ShowMessageBoxOK("information", "Não será possível enviar o e-mail", "", DarkTheme);
                        return;
                    }
                    else if (respostaGmail.Equals("ativado"))
                    {
                        try
                        {
                            cliente.Send(conteudoEmail);
                            MessageBox.ShowMessageBoxOK("correct", "E-mail enviado com sucesso!", "Aviso", DarkTheme);
                            return;
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }
                }
                else
                {
                    try
                    {
                        cliente.Send(conteudoEmail);
                        MessageBox.ShowMessageBoxOK("correct", "E-mail enviado com sucesso!", "Aviso", DarkTheme);
                        return;
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }
        }
        private void btnEnviar_Click(object sender, EventArgs e)
        {
            try
            {
                if (validarCamposEmail())
                {
                    if (rbSMTP.Checked)
                    {
                        servidor = usuario.servidorSMTP.servidorSMTP;
                        porta    = usuario.servidorSMTP.portaSMTP;
                        goto enviarEmail;
                    }
                    enderecoEmail = txtEmail.Text.Split('@');
                    if (enderecoEmail[1].Equals("gmail.com"))
                    {
                        servidor = "smtp.gmail.com";
                        porta    = 587;
                    }
                    else if (enderecoEmail[1].Equals("hotmail.com") || enderecoEmail[1].Equals("outlook.com") || enderecoEmail[1].Equals("live.com"))
                    {
                        servidor = "smtp.live.com";
                        porta    = 587;
                    }
                    else
                    {
                        MessageBox.ShowMessageBoxOK("warning", "Não temos suporte para este tipo de servidor." +
                                                    "\nTente utilizar um email do google (gmail), hotmail, live.com ou" +
                                                    "\noutlook e confira se o e-mail está correto", "Servidor sem suporte", DarkTheme);
                        return;
                    }

enviarEmail:
                    MailMessage email = new MailMessage();
                    email.From        = new MailAddress(txtEmail.Text);
                    email.To.Add(new MailAddress(txtDestinatario.Text));
                    email.Subject = txtAssunto.Text;
                    email.Body    = txtMensagem.Text;
                    if (cboxMetodoEnvio.SelectedIndex == -1)
                    {
                        MessageBox.ShowMessageBoxOK("warning", "Um método de envio deve ser selecionado!", "Aviso", DarkTheme);
                        return;
                    }
                    if (cboxMetodoEnvio.SelectedIndex == 0)
                    {
                        if (cboxSalvarNovamente.Checked)
                        {
                            sfdSalvarChaves.FileName = tipoChave;
                            if (sfdSalvarChaves.ShowDialog().Equals(DialogResult.OK))
                            {
                                File.WriteAllText(sfdSalvarChaves.FileName, chaveExportar);
                            }
                            email.Attachments.Add(new Attachment(sfdSalvarChaves.FileName));
                        }
                        else
                        {
                            email.Attachments.Add(new Attachment(caminhoArquivo));
                        }
                    }
                    else
                    {
                        email.Body += "\n" +
                                      "\n" +
                                      "" + chaveExportar;
                    }



                    SmtpClient cliente = new SmtpClient(servidor, porta);
                    using (cliente)
                    {
                        cliente.Credentials = new System.Net.NetworkCredential(txtEmail.Text, txtSenha.Text);
                        cliente.EnableSsl   = true;

                        if (rbSMTP.Checked)
                        {
                            try
                            {
                                cliente.Send(email);
                                MessageBox.ShowMessageBoxOK("correct", "E-mail enviado com sucesso!", "Aviso", DarkTheme);
                                return;
                            }
                            catch (Exception)
                            {
                                throw;
                            }
                        }

                        if (enderecoEmail[1].Equals("gmail.com"))
                        {
                            frmMenosSeguroGmail teste = new frmMenosSeguroGmail(DarkTheme);
                            teste.ShowDialog();
                            respostaGmail = teste.retornoString();
                            if (respostaGmail.Equals("sim"))
                            {
                                Process.Start("https://myaccount.google.com/lesssecureapps");
                                System.Threading.Thread.Sleep(1000);
                                retornoGmail = MessageBox.ShowMessageBoxYesNo("question", "A opção menos segura foi ativada?", "", DarkTheme);
                                if (retornoGmail.Equals("sim"))
                                {
                                    try
                                    {
                                        cliente.Send(email);
                                        MessageBox.ShowMessageBoxOK("correct", "E-mail enviado com sucesso!", "Aviso", DarkTheme);
                                        return;
                                    }
                                    catch
                                    {
                                        throw;
                                    }
                                }
                                else
                                {
                                    MessageBox.ShowMessageBoxOK("information", "Não será possível enviar o e-mail", "", DarkTheme);
                                    return;
                                }
                            }
                            else if (respostaGmail.Equals("nao"))
                            {
                                MessageBox.ShowMessageBoxOK("information", "Não será possível enviar o e-mail", "", DarkTheme);
                                return;
                            }
                            else if (respostaGmail.Equals("ativado"))
                            {
                                try
                                {
                                    cliente.Send(email);
                                    MessageBox.ShowMessageBoxOK("correct", "E-mail enviado com sucesso!", "Aviso", DarkTheme);
                                    return;
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                            }
                        }
                        else
                        {
                            try
                            {
                                cliente.Send(email);
                                MessageBox.ShowMessageBoxOK("correct", "E-mail enviado com sucesso!", "Aviso", DarkTheme);
                                return;
                            }
                            catch (Exception)
                            {
                                throw;
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.ShowMessageBoxOK("error", "O envio falhou!" +
                                            "\n" +
                                            "\nCertifique que o e-mail está correto e é válido" +
                                            "\nCertifique que a senha está correta (Deve ser a senha do e-mail e não do iCrypto)" +
                                            "\nCaso seja gmail, certique que a opção 'Acesso a apps menos seguros' está ativada", "Ocorreu um erro", DarkTheme);
            }
        }