none
Envio de Email com Anexo e Proxy RRS feed

  • Pergunta

  • Tenho um método que envia email, normalmente, porém a rede que utilizo, tem autenticação de proxy, se eu envio um email sem anexo, ele envia para todos os destinatários sem nenhum problema, porém quando coloco pra enviar anexo ele não envia, não sei se o problema pode ser no proxy que possa estar barrando o anexo. Ele não me retorna erro, ele simplesmente para na autenticação do proxy e mesmo eu confirmando ele não envia. Segue o código da classe:

    mail.From = new MailAddress(emailAdm);
                    foreach (var address in destinatario.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        if (EmailValido(address))
                        {
                            email.Bcc.Add(address);
                        }
                        else { }
                    }
                    //email.To.Add(emailDestinatario);
                    email.Subject = assunto;
                    email.Body = mensagem;
                    email.SubjectEncoding = System.Text.Encoding.UTF8;
                    if (anexo != null)
                    {
                        email.Attachments.Add((anexo));
                    }
                    SmtpClient smtp = new SmtpClient("192.168.0.1", 3128);
                   
                    if (servidor == "gmail.com")
                    {
                        smtp.Host = "smtp.gmail.com";
                        smtp.Port = 587;
                        smtp.EnableSsl = true;
                    }
    
                    if (servidor == "yahoo.com.br")
                    {
                        smtp.Host = "smtp.mail.yahoo.br";
                        smtp.Port = 587;
                    }
    
                    if (servidor == "hotmail.com")
                    {
                        smtp.Host = "smtp.live.com";
                        smtp.Port = 25;
                        smtp.EnableSsl = true;
                    }
                    if (servidor == "live.com")
                    {
                        smtp.Host = "smtp.live.com";
                        smtp.Port = 25;
                        smtp.EnableSsl = true;
                    }
                    if (servidor == "masterponto.com.br")
                    {
                        smtp.Host = "smtp.masterponto.com.br";
                        smtp.Port = 587;
                    }
                    smtp.Credentials = new System.Net.NetworkCredential(emailAdm, senha);
                    smtp.Send(email);

    E aqui quando chama a classe para passar os dados:

      clsEnviarEmail email = new clsEnviarEmail();
                    email.destinatario = destinatario;
                    email.assunto = txtassunto.Text;
                    email.mensagem = txtMensagem.InnerText;
                    if (Anexo.HasFile)
                    {
                        MemoryStream ms = new MemoryStream(Anexo.FileBytes);
                        Attachment anexo = new Attachment(ms, Anexo.FileName);
                        email.anexo = anexo;
                    }
                    email.Email();
                    ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('E-mails enviado com sucesso!');", true);
                    txtassunto.Text = null;
                    txtMensagem.InnerText = null;
                    Anexo = null;


    terça-feira, 11 de julho de 2017 14:26

Respostas

Todas as Respostas