none
Erro ao enviar email com anexo muito grande RRS feed

  • Pergunta

  • Pessoal eu criei um aplicativo windows em c# para mandar Email com anexos. Ele funciona normalmente quando os anexos são pequenos, mas quando são maiores do que 2 megabytes ele exibe o seguinte erro:

    System.Net.SmtpException: O tempo limite da operação foi atingido.

    O meu código esta abaixo:

    public void EnviarEmail(string De, string Para, string Assunto, string Remetente,
               string Destinatario, string Menssagem, string[] Anexos) {
                SmtpClient Cliente = new SmtpClient("smtp.mail.yahoo.com", 587);
                Cliente.EnableSsl = false;
                //Define o remetente e destinatário no qual a menssagem será encaminhada
                MailMessage Menssagens = new MailMessage();
                Menssagens.From = new MailAddress(De, Remetente);
                Menssagens.Priority = MailPriority.Normal;
                Destinatarios = Destinatario.Split(',');
                for (int Contador = 0; Contador < Destinatarios.Length; Contador++) {
                    Destinatarios[Contador] = Destinatarios[Contador].Trim();
                    Menssagens.To.Add(Destinatarios[Contador] + "<" + EnderecoPara[Contador] + ">");
                }
                //Define o titulo e o corpo do email
                Menssagens.Subject = Assunto;
                Menssagens.Body = Menssagem + "\r\n\r\n" + DateTime.Now.ToLongDateString() + "\t\t" +
                    DateTime.Now.ToLongTimeString();
                //Acessa a conta da qual o email será enviado
                Cliente.Credentials = new NetworkCredential("meuemail", "senha");
                //Anexa os arquivos ao email
                foreach (string Anexo in Anexos) {
                    Attachment ArquivoAnexado = new Attachment(Anexo, MediaTypeNames.Application.Octet);
                    Menssagens.Attachments.Add(ArquivoAnexado);
                }
                try {
                    Cliente.Send(Menssagens);
                    MessageBox.Show("Enviado");
                }
                catch (Exception erro) {
                    MessageBox.Show(erro.ToString());
                }
            }//End EnviarEmail()
    

    Outro problema ocorre se eu configurar  Cliente.EnableSsl com true, eu não consigo enviar o Email. Como faço para habilitar este comando?

    quarta-feira, 1 de fevereiro de 2012 19:52

Respostas

  • Ssl é um certificado que você tem que ter instalado para dizer que seu e-mail foi "verificado".

    Na questão do erro faltou configurar o timeout do smtp para ver quanto tempo ele vai aguardar até que exiba a mensagem de erro.

    Cliente.Timeout = 100000;
    


    quinta-feira, 2 de fevereiro de 2012 02:02