none
Erro enviando e-mail - fluxo fechado RRS feed

  • Pergunta

  • Estou tentando enviar e-mail com meu código abaixo:

    protectedvoidEnviarEmail2(stringassunto, stringdestinatario)

    {

    nomeArquivo = FileUpLoad1.FileName;

    using(varclient = newWebClient())

    {

    storArray = FileUpLoad1.FileBytes;

    using(varpostStream = client.OpenWrite(string.Format("ftp://54.207.80.65/App_Data/{0}", nomeArquivo)))

    {

    postStream.Write(storArray, 0, storArray.Length);

    postStream.Close();

    }

    }

    stringdados = Encoding.Default.GetString(storArray);

    stringstrConteudoArquivoHtml = dados;

    MailMessagemailMessage = newMailMessage();

    mailMessage.IsBodyHtml = true;

    mailMessage.Body = HttpUtility.HtmlDecode(strConteudoArquivoHtml);

    varremetente = "assinaturas@dominio.com.br";

    mailMessage.From = newMailAddress(remetente, "ASSINATURAS TESTE");

     

    //destinatarios do e-mail, para incluir mais de um basta separar por ponto e virgula///

    varlistaEmail = destinatario;

    varemails = listaEmail.Split(';');

    //mailMessage.To.Add(new MailAddress(endereco));

    foreach(varendereco inemails)

    {

    mailMessage.To.Add(newMailAddress(endereco));

    }

     

    mailMessage.Subject = assunto;

    mailMessage.Priority = MailPriority.Low;

    // Anexa o arquivo do FileUpload ????

    // Cria o anexo para o e-mail

    if(storArray != null&& storArray.Length > 0)

    using(Streamstream = newMemoryStream(storArray))

    {

    varanexo = newAttachment(stream, nomeArquivo, "text/plain");// <- o ultimo parametro de Attachment é o mime type do seu anexo

    mailMessage.Attachments.Add(anexo);

    }

     

     

    //smtp do e-mail que irá enviar

    SmtpClientsmtpClient = newSmtpClient("SMTP.srml.com.br");

    smtpClient.EnableSsl = false;

    //credenciais da conta que utilizará para enviar o e-mail

    smtpClient.Credentials = newNetworkCredential("feira", "drsedA117");

    smtpClient.Port = 587;

    smtpClient.Send(mailMessage);

     

    }

    Erro de Servidor no Aplicativo '/'.

    Não é possível acessar um fluxo fechado.

    Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código. 

    Detalhes da Exceção: System.ObjectDisposedException: Não é possível acessar um fluxo fechado.

    Erro de Origem: 
    Linha 569:            smtpClient.Port = 587;
    Linha 570:
    Linha 571:            smtpClient.Send(mailMessage);
    Linha 572:            //return true;
    Linha 573:            //objStreamReader.Close();

    Arquivo de Origem: c:\ARTSIM\SGSIM\ControledeUsuarios\Mailing.aspx.cs    Linha: 571 

    Rastreamento de Pilha: 
    [ObjectDisposedException: Não é possível acessar um fluxo fechado.]
       System.IO.__Error.StreamIsClosed() +53
       System.IO.MemoryStream.Read(Byte[] buffer, Int32 offset, Int32 count) +12108967
       System.Net.Mime.MimePart.Send(BaseWriter writer, Boolean allowUnicode) +142
       System.Net.Mime.MimeMultiPart.Send(BaseWriter writer, Boolean allowUnicode) +300
       System.Net.Mail.Message.Send(BaseWriter writer, Boolean sendEnvelope, Boolean allowUnicode) +135
       System.Net.Mail.SmtpClient.Send(MailMessage message) +1441
    
    [SmtpException: Falha ao enviar email.]
       System.Net.Mail.SmtpClient.Send(MailMessage message) +1916
       ControledeUsuarios.Mailing.EnviarEmail2(String assunto, String destinatario) in c:\ARTSIM\SGSIM\ControledeUsuarios\Mailing.aspx.cs:571
       ControledeUsuarios.Mailing.btnEnviarEmail_Click(Object sender, EventArgs e) in c:\ARTSIM\SGSIM\ControledeUsuarios\Mailing.aspx.cs:606
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9671538
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +108
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1639
    


    Informações sobre a Versão: Microsoft .NET Framework Versão:4.0.30319; Versão do ASP.NET:4.6.79.0

    segunda-feira, 31 de agosto de 2015 20:39

Respostas

  • Ok, vamos lá. Explique o que faz a sua aplicação.

    Percebi que essa é a mesma dúvida de outro usuário do fórum. Qual a sua necessidade, tente ser claro, como funciona desde o inicio. O usuário entra, faz o upload de um arquivo através de um controle FileUpload. Tente detalhar seu cenário o mais completo possível para que alguém possa te ajudar.



    ROBERTOSLJUNIOR

    • Marcado como Resposta Marcos SJ sexta-feira, 11 de setembro de 2015 16:55
    sexta-feira, 4 de setembro de 2015 16:48

Todas as Respostas

  • COMO ENVIAR EMAIL PELO FTP ftp://50.20.8.32/App_Data/ ?

    protectedvoidEnviarEmail(stringassunto, stringdestinatario)

    {

    FileUpLoad1.SaveAs(Server.MapPath("~/App_Data/02/") + FileUpLoad1.FileName);

    StreamReaderobjStreamReader = newStreamReader(Server.MapPath("~/App_Data/02/") + FileUpLoad1.FileName, true);

    stringstrConteudoArquivoHtml = objStreamReader.ReadToEnd();

    objStreamReader.Close();

    MailMessagemailMessage = newMailMessage();

    mailMessage.Body = strConteudoArquivoHtml;

    mailMessage.Body = HttpUtility.HtmlDecode(strConteudoArquivoHtml);

    mailMessage.IsBodyHtml = true;

    stringremetente = "";

    remetente = "assinaturas@teste.com.br";

    mailMessage.From = newMailAddress(remetente,"ASSINATURAS TESTE");

    //destinatarios do e-mail, para incluir mais de um basta separar por ponto e virgula///

    varlistaEmail = destinatario;

    varemails = listaEmail.Split(';');

    //mailMessage.To.Add(new MailAddress(endereco));

    foreach(varendereco inemails)

    {

    mailMessage.To.Add(newMailAddress(endereco));

    }

     

     

    //mailMessage.To.Add(destinatario);

    //mailMessage.Bcc.Add("diego@artsim.com.br");

    mailMessage.Subject = assunto;

    mailMessage.Priority = MailPriority.High;

    // Cria o anexo para o e-mail

    MemoryStreamMS = newMemoryStream(FileUpLoad1.FileBytes);

    Attachmentanexo = newAttachment(MS,FileUpLoad1.FileName);

    mailMessage.Attachments.Add(anexo);

    objStreamReader.Close();

     

    //smtp do e-mail que irá enviar

    SmtpClientsmtpClient = newSmtpClient("smtp.teste.com.br");

    smtpClient.EnableSsl = false;

    //credenciais da conta que utilizará para enviar o e-mail

    smtpClient.Credentials = newNetworkCredential("feira", "redsdss117");

    smtpClient.Port = 587;

    smtpClient.Send(mailMessage);

    }

    Fico no aguardo.

    OBRIGADO.

    • Mesclado Marcos SJ terça-feira, 1 de setembro de 2015 13:31 Thread duplicada
    sexta-feira, 28 de agosto de 2015 06:49
  • pr_tecnologia,

    Este endereço "smtp.teste.com.br" já foi testado?

    Está funcionando?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 28 de agosto de 2015 15:33
  • Boa Tarde Marcos Roberto

    Esse SMTP é de exemplo.

    Mas o que eu uso esta funcionando sim.

    Esta em uso agora no momento.

    Aguardo retorno.

    Muito Obrigado.

    sexta-feira, 28 de agosto de 2015 19:55
  • Ok,

    Então qual seria o seu problema exatamente?

    Está ocorrendo algum erro?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 31 de agosto de 2015 16:43
  • Boa Tarde

    COMO ENVIAR EMAIL PELO FTP ftp://50.20.8.32/App_Data/ ?

    segunda-feira, 31 de agosto de 2015 16:51
  • Boas,

    Não vejo nenhum problema acontecendo, primeiramente venha com alguma coisa feita que tentamos ajudar você se der algum erro, fora isso, o fórum não é feito para how to.

    Atenciosamente, Roberto Alves


    segunda-feira, 31 de agosto de 2015 18:01
  • Olá pr_tecnologia,

    Tudo bem?

    Isto não é necessariamente um problema, isso é uma tarefa que você precisa executar em seu projeto.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 31 de agosto de 2015 18:02
  • Estou tentando enviar e-mail com meu código abaixo:

    protectedvoidEnviarEmail2(stringassunto, stringdestinatario)

    {

    nomeArquivo = FileUpLoad1.FileName;

    using(varclient = newWebClient())

    {

    storArray = FileUpLoad1.FileBytes;

    using(varpostStream = client.OpenWrite(string.Format("ftp://54.207.80.65/App_Data/{0}", nomeArquivo)))

    {

    postStream.Write(storArray, 0, storArray.Length);

    postStream.Close();

    }

    }

    stringdados = Encoding.Default.GetString(storArray);

    stringstrConteudoArquivoHtml = dados;

    MailMessagemailMessage = newMailMessage();

    mailMessage.IsBodyHtml = true;

    mailMessage.Body = HttpUtility.HtmlDecode(strConteudoArquivoHtml);

    varremetente = "assinaturas@dominio.com.br";

    mailMessage.From = newMailAddress(remetente, "ASSINATURAS TESTE");

     

    //destinatarios do e-mail, para incluir mais de um basta separar por ponto e virgula///

    varlistaEmail = destinatario;

    varemails = listaEmail.Split(';');

    //mailMessage.To.Add(new MailAddress(endereco));

    foreach(varendereco inemails)

    {

    mailMessage.To.Add(newMailAddress(endereco));

    }

     

    mailMessage.Subject = assunto;

    mailMessage.Priority = MailPriority.Low;

    // Anexa o arquivo do FileUpload ????

    // Cria o anexo para o e-mail

    if(storArray != null&& storArray.Length > 0)

    using(Streamstream = newMemoryStream(storArray))

    {

    varanexo = newAttachment(stream, nomeArquivo, "text/plain");// <- o ultimo parametro de Attachment é o mime type do seu anexo

    mailMessage.Attachments.Add(anexo);

    }

     

     

    //smtp do e-mail que irá enviar

    SmtpClientsmtpClient = newSmtpClient("SMTP.srml.com.br");

    smtpClient.EnableSsl = false;

    //credenciais da conta que utilizará para enviar o e-mail

    smtpClient.Credentials = newNetworkCredential("feira", "drsedA117");

    smtpClient.Port = 587;

    smtpClient.Send(mailMessage);

     

    }

    Erro de Servidor no Aplicativo '/'.

    Não é possível acessar um fluxo fechado.

    Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código. 

    Detalhes da Exceção: System.ObjectDisposedException: Não é possível acessar um fluxo fechado.

    Erro de Origem: 
    Linha 569:            smtpClient.Port = 587;
    Linha 570:
    Linha 571:            smtpClient.Send(mailMessage);
    Linha 572:            //return true;
    Linha 573:            //objStreamReader.Close();

    Arquivo de Origem: c:\ARTSIM\SGSIM\ControledeUsuarios\Mailing.aspx.cs    Linha: 571 

    Rastreamento de Pilha: 
    [ObjectDisposedException: Não é possível acessar um fluxo fechado.]
       System.IO.__Error.StreamIsClosed() +53
       System.IO.MemoryStream.Read(Byte[] buffer, Int32 offset, Int32 count) +12108967
       System.Net.Mime.MimePart.Send(BaseWriter writer, Boolean allowUnicode) +142
       System.Net.Mime.MimeMultiPart.Send(BaseWriter writer, Boolean allowUnicode) +300
       System.Net.Mail.Message.Send(BaseWriter writer, Boolean sendEnvelope, Boolean allowUnicode) +135
       System.Net.Mail.SmtpClient.Send(MailMessage message) +1441
    
    [SmtpException: Falha ao enviar email.]
       System.Net.Mail.SmtpClient.Send(MailMessage message) +1916
       ControledeUsuarios.Mailing.EnviarEmail2(String assunto, String destinatario) in c:\ARTSIM\SGSIM\ControledeUsuarios\Mailing.aspx.cs:571
       ControledeUsuarios.Mailing.btnEnviarEmail_Click(Object sender, EventArgs e) in c:\ARTSIM\SGSIM\ControledeUsuarios\Mailing.aspx.cs:606
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9671538
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +108
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1639
    

    • Mesclado Marcos SJ terça-feira, 1 de setembro de 2015 13:29 Thread Duplicada
    terça-feira, 1 de setembro de 2015 12:31
  • Marcos

    Esse código foi me passado pelo forum.

    Eu fiz a adaptação para que ele não fique com erro e rode.

    Porem esta dando esse erro.

    Obs: Esse código foi enviado por um usuário do forum.

    Se alguém puder me ajudar eu agradeço muito.

    Estou dependendo apenas disso para poder rodar minha aplicação.

    Obrigado

    terça-feira, 1 de setembro de 2015 14:38
  • Pessoal

    Eu ja tenho o código pronto para enviar e-mail fazendo upload pela pasta local e funciona perfeitamente.

    Porem meu provedor locaweb não permite que eu grave na pasta.

    Eu não posso trocar de provedor pois ja paguei por 1 ano.

    Então solicitei no forum a alternativa de colocar no ftp o qual foi enviado o código acima o qual eu adaptei.

    Porem esta dando erro.

    Eu ja procurei em vários códigos porem não achei nada ja que isso é pouco usado.

    É por isso que eu estou aqui pedindo por favor se alguém puder me ajudar eu agradeço muito.

    Obrigado.

    terça-feira, 1 de setembro de 2015 14:49
  • Olá

    Coloca um try catch para ver o q apanha no catch.

    terça-feira, 1 de setembro de 2015 14:49
  • Obrigado por responder Diogo

    Como esse código foi passado por outro usuário do forum eu não vou conseguir identificar ja que nunca usei upload de FTP.

    E se eu usar o try catch ai que fica pior para poder ver o erro.

    Tanto que eu nem coloco mais. pois muitas vezes passada direto sem erro e não executava a ação.

    Então se você souber e puder me ajudar eu agradeço muito.

    Observação: O código foi passa por outro usuário do forum eu apenas adaptei com meu SMTP e credenciais.

    O por que esta dando erro eu não sei identificar e por isso estou aqui pedindo ajuda de vcs.

    Muito Obrigado.

    terça-feira, 1 de setembro de 2015 15:58
  • Se comentar este foreach(varendereco inemails), continua a dar erro?
    terça-feira, 1 de setembro de 2015 16:03
  • Diogo eu não posso comentar

    foreach(varendereco inemails)

    {

    mailMessage.To.Add(newMailAddress(endereco));

    }

    Ja que esse é meu código que eu coloco os e-mails e funciona perfeitamente em meu código que envio sem o uso do ftp.

    Como ja disse eu apenas mudei a parte do upload dos arquivos de local para ftp de acordo com o post do usuário do forum.

    Se não conseguir entender e so copiar meu código colocar as credenciais SMTP, login, e-mail e senha que você vai ver o mesmo erro.

    No lugar do remetente coloque um e-mail.

    Fico no aguardo.

    Muito Obrigado.

    terça-feira, 1 de setembro de 2015 16:23
  • Olá pr_tecnologia,

    Entendo. O intuito do Fórum não é o de fornecer códigos ou o de basicamente ensinar usuários a programar. Quando você "cria" uma aplicação baseada em um código daqui e outro dali esteja pronto para enfrentar muitos erros pela frente que você não vai ter ideia de onde vem. De outra maneira o ideal seria entender a lógica necessária para criar as funcionalidades desejadas e programar isso conforme a sua necessidade. D contrário você vai fazer a coisa funcionar sem saber como e assim que um erro acontecer, você não saberá como resolver.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Marcos SJ quinta-feira, 3 de setembro de 2015 19:01
    • Não Marcado como Resposta Marcos SJ quinta-feira, 3 de setembro de 2015 19:52
    terça-feira, 1 de setembro de 2015 17:13
  • Estou tentando enviar e-mail com meu código abaixo:

    protectedvoidEnviarEmail2(stringassunto, stringdestinatario)

    {

    nomeArquivo = FileUpLoad1.FileName;

    using(varclient = newWebClient())

    {

    storArray = FileUpLoad1.FileBytes;

    using(varpostStream = client.OpenWrite(string.Format("ftp://54.207.80.65/App_Data/{0}", nomeArquivo)))

    {

    postStream.Write(storArray, 0, storArray.Length);

    postStream.Close();

    }

    }

    stringdados = Encoding.Default.GetString(storArray);

    stringstrConteudoArquivoHtml = dados;

    MailMessagemailMessage = newMailMessage();

    mailMessage.IsBodyHtml = true;

    mailMessage.Body = HttpUtility.HtmlDecode(strConteudoArquivoHtml);

    varremetente = "assinaturas@dominio.com.br";

    mailMessage.From = newMailAddress(remetente, "ASSINATURAS TESTE");

     

    //destinatarios do e-mail, para incluir mais de um basta separar por ponto e virgula///

    varlistaEmail = destinatario;

    varemails = listaEmail.Split(';');

    //mailMessage.To.Add(new MailAddress(endereco));

    foreach(varendereco inemails)

    {

    mailMessage.To.Add(newMailAddress(endereco));

    }

     

    mailMessage.Subject = assunto;

    mailMessage.Priority = MailPriority.Low;

    // Anexa o arquivo do FileUpload ????

    // Cria o anexo para o e-mail

    if(storArray != null&& storArray.Length > 0)

    using(Streamstream = newMemoryStream(storArray))

    {

    varanexo = newAttachment(stream, nomeArquivo, "text/plain");// <- o ultimo parametro de Attachment é o mime type do seu anexo

    mailMessage.Attachments.Add(anexo);

    }

     

     

    //smtp do e-mail que irá enviar

    SmtpClientsmtpClient = newSmtpClient("SMTP.srml.com.br");

    smtpClient.EnableSsl = false;

    //credenciais da conta que utilizará para enviar o e-mail

    smtpClient.Credentials = newNetworkCredential("feira", "drsedA117");

    smtpClient.Port = 587;

    smtpClient.Send(mailMessage);

     

    }

    Erro de Servidor no Aplicativo '/'.

    Não é possível acessar um fluxo fechado.

    Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código. 

    Detalhes da Exceção: System.ObjectDisposedException: Não é possível acessar um fluxo fechado.

    Erro de Origem: 
    Linha 569:            smtpClient.Port = 587;
    Linha 570:
    Linha 571:            smtpClient.Send(mailMessage);
    Linha 572:            //return true;
    Linha 573:            //objStreamReader.Close();

    Arquivo de Origem: c:\ARTSIM\SGSIM\ControledeUsuarios\Mailing.aspx.cs    Linha: 571 

    Rastreamento de Pilha: 
    [ObjectDisposedException: Não é possível acessar um fluxo fechado.]
       System.IO.__Error.StreamIsClosed() +53
       System.IO.MemoryStream.Read(Byte[] buffer, Int32 offset, Int32 count) +12108967
       System.Net.Mime.MimePart.Send(BaseWriter writer, Boolean allowUnicode) +142
       System.Net.Mime.MimeMultiPart.Send(BaseWriter writer, Boolean allowUnicode) +300
       System.Net.Mail.Message.Send(BaseWriter writer, Boolean sendEnvelope, Boolean allowUnicode) +135
       System.Net.Mail.SmtpClient.Send(MailMessage message) +1441
    
    [SmtpException: Falha ao enviar email.]
       System.Net.Mail.SmtpClient.Send(MailMessage message) +1916
       ControledeUsuarios.Mailing.EnviarEmail2(String assunto, String destinatario) in c:\ARTSIM\SGSIM\ControledeUsuarios\Mailing.aspx.cs:571
       ControledeUsuarios.Mailing.btnEnviarEmail_Click(Object sender, EventArgs e) in c:\ARTSIM\SGSIM\ControledeUsuarios\Mailing.aspx.cs:606
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9671538
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +108
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint
    • Mesclado Marcos SJ quinta-feira, 3 de setembro de 2015 19:52 Thread duplicada
    quarta-feira, 2 de setembro de 2015 14:37
  • O código abaixo tem que estar dentro do bloco using, como você colocou um MemoryStream dentro MailMessage, chamou o Dispose assim que saiu do bloco using(){}

    //smtp do e-mail que irá enviar

    SmtpClientsmtpClient = newSmtpClient("SMTP.srml.com.br");

    smtpClient.EnableSsl = false;

    //credenciais da conta que utilizará para enviar o e-mail

    smtpClient.Credentials = newNetworkCredential("feira""drsedA117");

    smtpClient.Port = 587;

    smtpClient.Send(mailMessage);

    quarta-feira, 2 de setembro de 2015 14:52
  • Boa Tarde Cesar Mendes

    Obrigado por responder

    Coloquei da forma que você postou.

    No meu notebook (local) esta dando certo.

    Porem quando executo no meu provedor locaweb esta dando esse erro:

    Server Error in '/' Application.

    Security Exception

    Description: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. 

    Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

    Source Error: 
    [No relevant source lines]

    Source File: App_Web_m2cfi3tu.0.cs    Line: 0 

    Stack Trace: 
    [SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
       System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
       System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) +31
       System.Security.CodeAccessPermission.Demand() +46
       System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) +637
       System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +60
       System.IO.FileStream..ctor(String path, FileMode mode) +55
       System.Web.HttpPostedFile.SaveAs(String filename) +94
       System.Web.UI.WebControls.FileUpload.SaveAs(String filename) +23
       ControledeUsuarios.Mailing.EnviarEmail(String assunto, String destinatario) in Mailing.aspx.cs:432
       ControledeUsuarios.Mailing.btnEnviarEmail_Click(Object sender, EventArgs e) in Mailing.aspx.cs:591
       System.EventHandler.Invoke(Object sender, EventArgs e) +0
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9628614
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6704
       System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +245
       System.Web.UI.Page.ProcessRequest() +72
       System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
       System.Web.UI.Page.ProcessRequest(HttpContext context) +58
       ASP.mailing_aspx.ProcessRequest(HttpContext context) in App_Web_m2cfi3tu.0.cs:0
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
    


    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34248

    quarta-feira, 2 de setembro de 2015 21:15
  • Lembrando que esse FTP não esta na locaweb e pode ser acessado por qualquer pessoa sem login e senha.

    Então seria erro de permissão do FTP.

    Você pode me ajudar ?

    Fico no aguardo

    Obrigado

    quarta-feira, 2 de setembro de 2015 21:16
  • Bom dia

    Estou com um erro no meu código C# para enviar e-mail com anexo usando FTP.

    Esta dando um erro de permissão o que acho bem estranho ja que meu ftp esta fora do meu provedor e totalmente liberado.

    privatebyte[] storArray = null;

    privatestringnomeArquivo = string.Empty;

    protectedvoidEnviarEmail2(stringassunto, stringdestinatario)

    {

    nomeArquivo = FileUpLoad1.FileName;

    using(varclient = newWebClient())

    {

    storArray = FileUpLoad1.FileBytes;

    using(varpostStream = client.OpenWrite(string.Format("ftp://54.207.80.65/App_Data/{0}", nomeArquivo)))

    {

    postStream.Write(storArray, 0, storArray.Length);

    postStream.Close();

    }

    }

    stringdados = Encoding.Default.GetString(storArray);

    stringstrConteudoArquivoHtml = dados;

    MailMessagemailMessage = newMailMessage();

    mailMessage.IsBodyHtml = true;

    mailMessage.Body = HttpUtility.HtmlDecode(strConteudoArquivoHtml);

    varremetente = "assinaturas@sgsim.com.br";

    mailMessage.From = newMailAddress(remetente, "ASSINATURAS ARTSIM");

     

    //destinatarios do e-mail, para incluir mais de um basta separar por ponto e virgula///

    varlistaEmail = destinatario;

    varemails = listaEmail.Split(';');

    //mailMessage.To.Add(new MailAddress(endereco));

    foreach(varendereco inemails)

    {

    mailMessage.To.Add(newMailAddress(endereco));

    }

     

    mailMessage.Subject = assunto;

    mailMessage.Priority = MailPriority.Low;

    // Cria o anexo para o e-mail

    if(storArray != null&& storArray.Length > 0)

    using(Streamstream = newMemoryStream(storArray))

    {

    varanexo = newAttachment(stream, nomeArquivo, "text/plain");// <- o ultimo parametro de Attachment é o mime type do seu anexo

    mailMessage.Attachments.Add(anexo);

    //smtp do e-mail que irá enviar

    SmtpClientsmtpClient = newSmtpClient("smtplw.com.br");

    smtpClient.EnableSsl = false;

    //credenciais da conta que utilizará para enviar o e-mail

    smtpClient.Credentials = newNetworkCredential("feiplar", "simartA117");

    smtpClient.Port = 587;

    smtpClient.Send(mailMessage);

    }

     

     

     

    }

    Server Error in '/' Application.

    Security Exception

    Description: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

    Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

    Source Error:
    [No relevant source lines]

    Source File: App_Web_gw05emfy.1.cs   Line: 0

    Stack Trace:
    [SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
       System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
       System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) +31
       System.Security.CodeAccessPermission.Demand() +46
       System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) +637
       System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +60
       System.IO.FileStream..ctor(String path, FileMode mode) +55
       System.Web.HttpPostedFile.SaveAs(String filename) +94
       System.Web.UI.WebControls.FileUpload.SaveAs(String filename) +23
       ControledeUsuarios.Mailing.EnviarEmail(String assunto, String destinatario) in Mailing.aspx.cs:432
       ControledeUsuarios.Mailing.btnEnviarEmail_Click(Object sender, EventArgs e) in Mailing.aspx.cs:591
       System.EventHandler.Invoke(Object sender, EventArgs e) +0
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9628614
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6704
       System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +245
       System.Web.UI.Page.ProcessRequest() +72
       System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
       System.Web.UI.Page.ProcessRequest(HttpContext context) +58
       ASP.mailing_aspx.ProcessRequest(HttpContext context) in App_Web_gw05emfy.1.cs:0
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
                       


    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34248

    Alguem pode me ajudar a entender o problema ?

    Fico no aguardo

    Muito Obrigado.

    • Mesclado Marcos SJ quinta-feira, 3 de setembro de 2015 19:50 Thread duplicada
    quinta-feira, 3 de setembro de 2015 13:50
  • Tenho um código para anexar arquivo ftp no meu e-mail.

    Porem ele só funciona localmente.

    No provedor da erro de permissão

    Eu creio que o código de anexar o arquivo ftp não esta correto.

    Tem como me ajudar ?

    Muito Obrigado.

    privatebyte[] storArray = null;

    privatestringnomeArquivo = string.Empty;

    protectedvoidEnviarEmail2(stringassunto, stringdestinatario)

    {

    nomeArquivo = FileUpLoad1.FileName;

    using(varclient = newWebClient())

    {

    storArray = FileUpLoad1.FileBytes;

    using(varpostStream = client.OpenWrite(string.Format("ftp://54.207.80.65/App_Data/{0}", nomeArquivo)))

    {

    postStream.Write(storArray, 0, storArray.Length);

    postStream.Close();

    }

    }

    stringdados = Encoding.Default.GetString(storArray);

    stringstrConteudoArquivoHtml = dados;

    MailMessagemailMessage = newMailMessage();

    mailMessage.IsBodyHtml = true;

    mailMessage.Body = HttpUtility.HtmlDecode(strConteudoArquivoHtml);

    varremetente = "assinaturas@sgsim.com.br";

    mailMessage.From = newMailAddress(remetente, "ASSINATURAS ARTSIM");

     

    //destinatarios do e-mail, para incluir mais de um basta separar por ponto e virgula///

    varlistaEmail = destinatario;

    varemails = listaEmail.Split(';');

    //mailMessage.To.Add(new MailAddress(endereco));

    foreach(varendereco inemails)

    {

    mailMessage.To.Add(newMailAddress(endereco));

    }

     

    mailMessage.Subject = assunto;

               

    // Cria o anexo para o e-mail

    if(storArray != null&& storArray.Length > 0)

    using(Streamstream = newMemoryStream(storArray))

    {

    varanexo = newAttachment(stream, nomeArquivo, "text/plain");// <- o ultimo parametro de Attachment é o mime type do seu anexo

    mailMessage.Attachments.Add(anexo);

    }

     

     

     

    }

    • Mesclado Marcos SJ segunda-feira, 7 de setembro de 2015 12:57 Thread duplicada
    sexta-feira, 4 de setembro de 2015 12:47
  • Como mudo meu código para enviar meu anexo por FTP ?

    if(storArray != null&& storArray.Length > 0)

    using(Streamstream = newMemoryStream(storArray))

    {

    varanexo = newAttachment(stream, nomeArquivo, "text/plain");// <- o ultimo parametro de Attachment é o mime type do seu anexo

    mailMessage.Attachments.Add(anexo);

    }

    • Mesclado Marcos SJ sexta-feira, 4 de setembro de 2015 17:31 Continuação da thread
    sexta-feira, 4 de setembro de 2015 14:48
  • Não existe enviar anexos por FTP.

    Um anexo nada mais é do que um arquivo que por sua vez é um array de byte[].

    Seu código simplesmente cria um fluxo utilizando os bytes de storArray e instancia uma nova classe Attachment.

    Qual o erro ou a dúvida?


    ROBERTOSLJUNIOR

    sexta-feira, 4 de setembro de 2015 14:54
  • Bom dia Roberto

    O código da certo quando rodo no meu notebook porem quando rodo no meu domínio da erro de permissão.

    Segue meu código completo e o erro:

    protectedvoidEnviarEmail2(stringassunto, stringdestinatario)

    {

    nomeArquivo = FileUpLoad1.FileName;

    using(varclient = newWebClient())

    {

    storArray = FileUpLoad1.FileBytes;

    using(varpostStream = client.OpenWrite(string.Format("ftp://54.207.80.65/App_Data/{0}", nomeArquivo)))

    {

    postStream.Write(storArray, 0, storArray.Length);

    postStream.Close();

    }

    }

    stringdados = Encoding.Default.GetString(storArray);

    stringstrConteudoArquivoHtml = dados;

    MailMessagemailMessage = newMailMessage();

    mailMessage.IsBodyHtml = true;

    mailMessage.Body = HttpUtility.HtmlDecode(strConteudoArquivoHtml);

    varremetente = "assinaturas@sgsim.com.br";

    mailMessage.From = newMailAddress(remetente, "ASSINATURAS ARTSIM");

     

    //destinatarios do e-mail, para incluir mais de um basta separar por ponto e virgula///

    varlistaEmail = destinatario;

    varemails = listaEmail.Split(';');

    //mailMessage.To.Add(new MailAddress(endereco));

    foreach(varendereco inemails)

    {

    mailMessage.To.Add(newMailAddress(endereco));

    }

     

    mailMessage.Subject = assunto;

    mailMessage.Priority = MailPriority.Low;

    // Cria o anexo para o e-mail

    if(storArray != null&& storArray.Length > 0)

    using(Streamstream = newMemoryStream(storArray))

    {

    varanexo = newAttachment(stream, nomeArquivo, "text/plain");// <- o ultimo parametro de Attachment é o mime type do seu anexo

    mailMessage.Attachments.Add(anexo);

    //smtp do e-mail que irá enviar

    SmtpClientsmtpClient = newSmtpClient("smtplw.com.br");

    smtpClient.EnableSsl = false;

    //credenciais da conta que utilizará para enviar o e-mail

    smtpClient.Credentials = newNetworkCredential("feiplar", "simartA117");

    smtpClient.Port = 587;

    smtpClient.Send(mailMessage);

    }

     

     

     

    }

    Erro:

    Server Error in '/' Application.

    Security Exception

    Description: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

    Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

    Source Error:
    [No relevant source lines]

    Source File: App_Web_gw05emfy.1.cs   Line: 0

    Stack Trace:
    [SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
       System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
       System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) +31
       System.Security.CodeAccessPermission.Demand() +46
       System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) +637
       System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +60
       System.IO.FileStream..ctor(String path, FileMode mode) +55
       System.Web.HttpPostedFile.SaveAs(String filename) +94
       System.Web.UI.WebControls.FileUpload.SaveAs(String filename) +23
       ControledeUsuarios.Mailing.EnviarEmail(String assunto, String destinatario) in Mailing.aspx.cs:432
       ControledeUsuarios.Mailing.btnEnviarEmail_Click(Object sender, EventArgs e) in Mailing.aspx.cs:591
       System.EventHandler.Invoke(Object sender, EventArgs e) +0
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9628614
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6704
       System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +245
       System.Web.UI.Page.ProcessRequest() +72
       System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
       System.Web.UI.Page.ProcessRequest(HttpContext context) +58
       ASP.mailing_aspx.ProcessRequest(HttpContext context) in App_Web_gw05emfy.1.cs:0
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
                       


    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34248

    sexta-feira, 4 de setembro de 2015 15:03
  • Ok, vamos lá. Explique o que faz a sua aplicação.

    Percebi que essa é a mesma dúvida de outro usuário do fórum. Qual a sua necessidade, tente ser claro, como funciona desde o inicio. O usuário entra, faz o upload de um arquivo através de um controle FileUpload. Tente detalhar seu cenário o mais completo possível para que alguém possa te ajudar.



    ROBERTOSLJUNIOR

    • Marcado como Resposta Marcos SJ sexta-feira, 11 de setembro de 2015 16:55
    sexta-feira, 4 de setembro de 2015 16:48
  • Ola Roberto

    O Usuário faz o upload do arquivo que vai ser enviado por e-mail como anexo e também vai no corpo do e-mail como e-mail marketing. Tenho que fazer pelo ftp ja que meu provedor não deixa eu gravar nas minha pastas (locaweb) como ja paguei por 1 ano não vou trocar. Esse código funciona localmente porem no provedor da o erro acima. acredito que o código esteja imcompleto ou ainda parte dele esta tentanto gravar no provedor  e não totalmente no FTP como eu preciso.

    Quem puder me ajudar eu agradeço muito.

    Obrigado.

    sábado, 5 de setembro de 2015 16:05
  • Olá pr_tecnologia (ricardoti2012),

    Tudo bem?

    Novamente peço que pare de criar threads duplicadas. Acredito que esta deve ser a quarta vez que mesclo esta thread, sem contar todas as outras que precisei fazer o mesmo. Você tem criado muitas threads com a mesma pergunta. O Fórum não trabalha desta maneira. Fazendo isso você deixa o Fórum bagunçado.

    Obrigado pela compreensão.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.




    • Editado Marcos SJ segunda-feira, 7 de setembro de 2015 15:01
    segunda-feira, 7 de setembro de 2015 13:00
  • Boa tarde,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 11 de setembro de 2015 16:55