none
Enviar Email com Anexo RRS feed

  • Pergunta

  • Boa Tarde, estou tentando enviar um email com anexo, sem anexo o email envia rapidamente, sem nenhum tipo de problema, porém quando coloco o anexo, ele demora muito, questão de minutos, e trava, e não envia.

    Gostaria de saber se tem alguma forma que eu consigo enviar rápido, ou se é o meu código que está mal estruturado. Lembrando que utilizo o tinyMCE para configurações HTML. Creio que não tem problema, já que ele envia normalmente sem anexo.

    Segue como estou fazendo. 

    Aqui é a classe:

    public Attachment anexo;
    
    email.IsBodyHtml = true;
                    email.From = new MailAddress(emailAdm);
                    foreach (var address in destinatario.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        if (EmailValido(address))
                        {
                            email.Bcc.Add(address);
                        }
                        else { }
                    }
                    email.Subject = assunto;
                    email.Body = mensagem;
                    email.SubjectEncoding = System.Text.Encoding.UTF8;
                    if (anexo != null)
                    {
                        email.Attachments.Add(anexo);
                    }

    E aqui é o código do form:

     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.PostedFile.FileName);
                        email.anexo = anexo;
                    }
                    email.Email();
                    ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('E-mails enviado com sucesso!');", true);

    Agradeço.


    quarta-feira, 12 de julho de 2017 15:54

Respostas

  • Consegui resolver com proxy colocando o endereço do site em opções avançadas do proxy em "Não usar servidor proxy para endereços iniciados por". 

    Obrigado.

    • Marcado como Resposta Mariana C. Costa quinta-feira, 13 de julho de 2017 18:27
    quinta-feira, 13 de julho de 2017 18:27

Todas as Respostas

  • Boa tarde, Você depurando ele travou em qual linha? deu alguma exceção?  Temos que levar em consideração o servidor de email também, por algum motivo quando chega o anexo lá e tem antivírus que os verificam e aqueles processos todos. Sua internet também. Fazer teste com outro servidor de e-mail. Altere essa linha para fazer um teste

    //MemoryStream ms = new MemoryStream(Anexo.FileBytes);
    Attachment anexo = new Attachment(Anexo.PostedFile.InputStream,Anexo.PostedFile.FileName);

    quarta-feira, 12 de julho de 2017 17:02
    Moderador
  • Boa Tarde Welington, continua com o mesmo problema, na verdade ele demora demais, acaba que depois de uns 4/5 minutos, pede a autenticação do proxy, o arquivo que estou mandando tem 90 KB, já tentei com arquivos bem menores e acontece a mesma coisa, já tentei também em outros emails, acontece a mesma coisa. O estranho é que sem anexo, envia para uma lista enorme, e sem nenhuma demora, estou fazendo o teste somente para um destinatário com o anexo. 
    quarta-feira, 12 de julho de 2017 17:42
  • Fiz o teste verificando e me retornou o seguinte erro:  [Violation] 'setTimeout' handler took 100ms.
    quinta-feira, 13 de julho de 2017 15:30
  • Mas este erro foi uma exceção? ou foi alguma mensagem de erro navegador?, por que aqui não achei nada relacionado esse "erro" e o .net na documentação dele. vai depurando com f11. mesmo que o navegador da alguma mensagem e fechar, o código continua em execução.



    quinta-feira, 13 de julho de 2017 17:14
    Moderador
  • Welington, descobri que o proxy bloqueia, tirei o proxy e enviou certinho sem nenhum problema. Sabe como posso configurar dentro do código para autorizar o email ou então para pegar as configurações de proxy automática?
    quinta-feira, 13 de julho de 2017 17:22
  • Certo, mas o proxy que você removeu foi de http ali no IE? ate onde sei nunca vi usando proxy para smtp. Poderia estar olhando com o administrador de rede essa questão ai, ou deixando a máquina fora do proxy, no ambiente de produção também.


    quinta-feira, 13 de julho de 2017 18:15
    Moderador
  • Então porque eu removi o proxy e deu certo, não tive nenhum problema, antes de postar no fórum havia dado uma pesquisada sobre proxy no envio de email, e vi que não havia nenhuma interferência, porém fiz o teste, fora da rede, e também sem o proxy, funcionou rápido, e sem demora. Só que isso só acontece quando tem anexo, quando não tem anexo, tanto com proxy, ou sem proxy não tenho problemas.
    quinta-feira, 13 de julho de 2017 18:20
  • Consegui resolver com proxy colocando o endereço do site em opções avançadas do proxy em "Não usar servidor proxy para endereços iniciados por". 

    Obrigado.

    • Marcado como Resposta Mariana C. Costa quinta-feira, 13 de julho de 2017 18:27
    quinta-feira, 13 de julho de 2017 18:27
  • que bom, mas onde que fica essas configurações avançadas?

    quinta-feira, 13 de julho de 2017 18:45
    Moderador
  • Então Welington na verdade era um problema nas configurações do GoogleChrome, não sei porque tenho que configurar assim rs, fui em configurações > abrir configurações de proxy > configurações da LAN > avançadas > "Não usar servidor proxy para endereços iniciados por". 
    quinta-feira, 13 de julho de 2017 19:09