none
Problemas com envio de email - Classe System.Net.Mail RRS feed

  • Pergunta

  • Quanto tento executar o código abaixo estou tendo o problema

    _innerException = {"Nenhuma conexão pôde ser feita porque a máquina de destino as recusou ativamente 74.125.47.109:25"}

    _message = "Impossível conectar-se ao servidor remoto"


    O ponto mais engraçado é que o problema acontece apenas na minha máquina pessoal, na do meu trabalho o código funciona normalmente. Acredito ser alguma configuração local que esteja dando conflito na hora da requisição.

    Estou utilizando o visual studio 2015 e windows 10

    Meu código:


     using (System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient())
                {
                    smtp.Host = "mail.xxxxx.com";
                    smtp.Port = 25;
                    smtp.EnableSsl = false;
                    smtp.UseDefaultCredentials = false;
                    smtp.Credentials = new System.Net.NetworkCredential(txtDe.Text, txtSenha.Text);

                    using (System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage())
                    {
                        mail.From = new System.Net.Mail.MailAddress(txtDe.Text);

                        if (!string.IsNullOrWhiteSpace(txtPara.Text))
                        {
                            string[] destinatarios = this.txtPara.Text.Trim().Split(';');
                            foreach (string dest in destinatarios)
                            {
                                if (dest.Trim() != "")
                                    mail.To.Add(new System.Net.Mail.MailAddress(dest));
                            }
                        }
                        else
                        {
                            MessageBox.Show("Campo 'para' é obrigatório.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                        if (!string.IsNullOrWhiteSpace(txtCc.Text))
                        {
                            string[] destinatarios = this.txtPara.Text.Trim().Split(';');
                            foreach (string dest in destinatarios)
                            {
                                if (dest.Trim() != "")
                                    mail.CC.Add(new System.Net.Mail.MailAddress(dest));
                            }
                        }
                        if (!string.IsNullOrWhiteSpace(txtCcO.Text))
                        {
                            string[] destinatarios = this.txtPara.Text.Trim().Split(';');
                            foreach (string dest in destinatarios)
                            {
                                if (dest.Trim() != "")
                                    mail.Bcc.Add(new System.Net.Mail.MailAddress(dest));
                            }
                        }
                        mail.Subject = txtAssunto.Text;
                        mail.Body = txtMsgem.Text.Trim();
                        mail.IsBodyHtml = true;
                        foreach (string file in lbxAnexos.Items)
                        {
                            var inlineLogo = new Attachment(file);
                            mail.Attachments.Add(inlineLogo);
                        }

                        try
                        {
                            smtp.Send(mail);
                            MessageBox.Show("E-mail enviado com sucesso!");
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Problemas durante o envio do e-mail. Erro: " + ex.Message);
                        }
                    }
                }

    Alguém já teve esse problema?


    Analista de Sistemas

    terça-feira, 27 de outubro de 2015 22:28

Todas as Respostas

  • Boa noite, o código acima está correto em sua montagem, mas para enviar e-mail, primeiramente você precisa saber se o servidor informado tem SSL ou não, segundo, a porta 25 foi descontinuada, atualmente é a 587 para envio sem SSL.

    Utilizo a mesma estrutura para enviar inclusive via GMail e Hotmail, a única diferença é que estes dois precisamos trocar a porta pois utilizam SSL e TLS.

    Abaixo segue o modelo de código que utilizo em minhas aplicações.

    SmtpClient ServidorEmail = new SmtpClient(mail.xxx.com.br, 587);
    ServidorEmail.Credentials = new NetworkCredential("usuario", "senha");
    ServidorEmail.EnableSsl = false
    
    Servidor.Send(Mensagem);


    Gilson Joanelo - Desenvolvedor Web

    • Marcado como Resposta Marcos SJ quarta-feira, 28 de outubro de 2015 12:16
    • Não Marcado como Resposta Carla Grasiele sexta-feira, 6 de novembro de 2015 10:23
    terça-feira, 27 de outubro de 2015 23:58