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); } }